Perguntas Frequentes
Usuário
Como posso redefinir a senha do administrador?
A senha do administrador pode ser redefinida executando o comando reset-admin-password no servidor do Immich.
Como posso ver uma lista de todos os usuários no Immich?
Você pode ver a lista de todos os usuários executando o comando list-users no servidor do Immich.
Aplicativo Móvel
Qual é a diferença entre os ícones de nuvem no aplicativo móvel?
Ícone | Descrição |
---|---|
O arquivo está disponível apenas no servidor e foi carregado de outro dispositivo (como o cliente web) ou foi excluído deste dispositivo após o upload | |
O arquivo está disponível apenas localmente e ainda não foi feito backup | |
O arquivo foi carregado a partir deste dispositivo e agora está feito backup no servidor; o arquivo original ainda está no dispositivo |
Não consigo fazer login no aplicativo após uma atualização. O que posso fazer?
Verifique se o aplicativo móvel e o servidor estão na mesma versão (maior e menor).
Atualizações da loja de aplicativos às vezes levam mais tempo porque as lojas (Google Play Store e Apple App Store) precisam aprovar a atualização primeiro, e isso pode levar algum tempo.
Se ainda não conseguir fazer login no aplicativo, tente o seguinte:
- Verifique os registros móveis
- Certifique-se de que as credenciais de login est ão corretas fazendo login no aplicativo web
Por que o backup em primeiro plano para quando eu navego para fora do aplicativo? Não deveria transferir o trabalho para o backup em segundo plano?
Backup em primeiro plano e backup em segundo plano são dois mecanismos separados. Eles não se comunicam ou interagem entre si.
O backup em primeiro plano é controlado pela ação do usuário, enquanto o backup em segundo plano é controlado pelo sistema operacional do seu dispositivo. Quando o aplicativo é colocado em segundo plano, a invocação de tarefas em segundo plano é delegada ao agendador do sistema operacional do dispositivo. Ele decide quando a tarefa em segundo plano pode ser executada e por quanto tempo.
Os comportamentos diferem com base no fabricante do seu dispositivo e sistema operacional, mas na maioria dos casos estão relacionados a políticas de economia de bateria.
Por que o backup em segundo plano no iOS não está funcionando?
No iOS (iPhone e iPad), o sistema operacional determina se um aplicativo específico pode invocar tarefas em segundo plano com base em vários fatores, a maioria dos quais o aplicativo Immich não tem controle. Para aumentar a probabilidade de que a tarefa de backup em segundo plano seja executada, siga as etapas abaixo:
- Ative a Atualização em Segundo Plano para o Immich nas configurações do iOS em
Configurações > Geral > Atualização em Segundo Plano
. - Desative Modo de Economia de Energia quando não for necessário, pois isso pode impedir que aplicativos sejam executados em segundo plano.
- Desative a Atualização em Segundo Plano para aplicativos que não precisam executar tarefas em segundo plano. Isso reduzirá a competição para a invocação de tarefas em segundo plano para o Immich.
- Use o aplicativo Immich com mais frequência.
Por que os recursos no aplicativo móvel não funcionam com um certificado autoassinado, autenticação básica, cabeçalhos personalizados ou TLS mútuo?
Esses recursos de rede são experimentais. Muitas vezes eles não funcionam com reprodução de vídeo, upload ou download de arquivos, e outros recursos. Muitas dessas limitações estão documentadas em #15230. Em vez desses recursos experimentais, recomendamos usar o recurso de troca de URL, uma VPN ou um certificado SSL confiável gratuito para seu domínio.
Não estamos desenvolvendo esses recursos ativamente e não podemos oferecer suporte, mas aceitamos contribuições para melhorá-los. Por favor, discuta qualquer grande PR com nossa equipe de desenvolvimento para garantir que seu tempo não seja desperdiçado.
Por que o aplicativo móvel ainda não foi atualizado?
As lojas de aplicativos podem levar alguns dias para aprovar novas versões do aplicativo. Se você estiver impaciente, os APKs do Android podem ser baixados das versões do GitHub.
Arquivos
O Immich altera o arquivo?
Não, o Immich não modifica os arquivos originais.
Todos os metadados editados são salvos em arquivos laterais .xmp
e no banco de dados.
No entanto, o Immich excluirá os arquivos originais que foram enviados para a lixeira quando a lixeira for esvaziada na interface do Immich.
Por que os nomes dos meus arquivos aparecem como uma string aleatória no gerenciador de arquivos?
Quando o Template de Armazenamento está desativado (padrão), o Immich salva os nomes dos arquivos como uma string aleatória (também conhecida como UUIDs aleatórios) para evitar nomes de arquivos duplicados. Para recuperar os nomes originais dos arquivos, você deve ativar o Template de Armazenamento e, em seguida, executar o trabalho de MIGRAÇÃO DO TEMPLATE DE ARMAZENAMENTO. Recomenda-se ler sobre o Template de Armazenamento antes da ativação.
Posso adicionar minha biblioteca de fotos existente?
Sim, com uma Biblioteca Externa.
O que acontece com os arquivos existentes após eu escolher um novo Template de Armazenamento?
As alterações no template só serão aplicadas a novos arquivos. Para aplicar retroativamente o template a arquivos que já foram carregados, execute o trabalho de Migração de Armazenamento, disponível na página Trabalhos.
Por que somente as fotos e não os vídeos estão sendo carregados no Immich?
Isso geralmente acontece ao usar um proxy reverso na frente do Immich. Certifique-se de configurar seu proxy reverso para permitir solicitações grandes. Além disso, verifique o espaço no disco do seu proxy reverso. Em alguns casos, os proxies armazenam solicitações em cache no disco antes de encaminhá-las, e se o espaço no disco acabar, a solicitação falhará.
Se você estiver usando Cloudflare Tunnel, saiba que eles definem um tamanho máximo de arquivo de 100 MB que não pode ser alterado. Às vezes, arquivos maiores que isso podem funcionar, potencialmente até 1 GB. No entanto, o limite oficial é de 100 MB. Se você estiver enfrentando problemas, recomendamos mudar para outra forma de implantação de rede.
Por que algumas fotos armazenadas no sistema de arquivos aparecem com a data errada?
Existem alguns cenários diferentes que podem levar a essa situação. A solução é executar novamente o trabalho de migração de armazenamento. O trabalho é automaticamente executado uma vez por arquivo após o upload. Se a extração de metadados falhou originalmente, os trabalhos foram limpos/cancelados, etc., o trabalho pode não ter sido executado automaticamente na primeira vez.
Como posso ocultar fotos da linha do tempo?
Você pode arquivá-las.
Como posso fazer backup dos dados do Immich?
Veja Backup e Restauração.
O Immich suporta a leitura de metadados de marcação facial existentes?
Sim, ele cria novas faces e pessoas a partir dos metadados dos arquivos importados. Para detalhes veja a solicitação de recurso #4348 e o PR #6455.
O Immich suporta a filtragem de imagens NSFW?
Não, atualmente não. Há uma solicitação de recurso aberta no Github.
Por que há tantos trabalhos de geração de miniaturas?
Há três trabalhos de miniaturas para cada arquivo:
- Desfocado (thumbhash)
- Pré-visualização (Webp)
- Miniatura (Jpeg)
Além disso, há trabalhos adicionais para miniaturas de pessoas (faces).
Por que arquivos do WhatsApp não aparecem com a data correta?
Arquivos enviados no WhatsApp são salvos sem metadados no arquivo. Portanto, o Immich não tem como saber a data original do arquivo quando os arquivos são carregados a partir do WhatsApp, não pela ordem de chegada no dispositivo. Veja #9116.
O que acontece se um arquivo existir em mais de uma conta?
Não há exigências para que os arquivos sejam exclusivos entre os usuários. Se vários usuários carregarem a mesma imagem, ela será processada como se fosse um arquivo distinto, e os trabalhos serão executados e as miniaturas serão geradas de acordo.
Por que vídeos HDR aparecem desbotados no player Immich, mas parecem normais após o download?
O Immich usa um player com problemas conhecidos na exibição de cores HDR. Estamos experimentando um player diferente que oferece melhores perfis de cores para conteúdo HDR para futuras melhorias.
Por que o Immich transcodifica meus vídeos para uma qualidade inferior?
O Immich sempre mantém seus arquivos originais. Além disso, ele gera uma versão transcodificada por motivos de compatibilidade e desempenho.
Como posso excluir vídeos transcodificados sem excluir o original?
A versão transcodificada de um arquivo pode ser excluída configurando uma política de transcodificação que a torne desnecessária e, em seguida, executando um trabalho de transcodificação para esse arquivo. Isso pode ser feito por arquivo iniciando um trabalho de transcodificação para um único arquivo com o botão Atualizar vídeos codificados nas opções do visualizador de arquivos ou para todos os arquivos ao executar trabalhos de transcodificação para todos os arquivos na página de administração.
Para atualizar a política de transcodificação, navegue até Administração > Configurações de Transcodificação de Vídeo > Política de Transcodificação e selecione uma política no menu suspenso. Essa política determinará se uma transcodificação existente será excluída ou substituída no trabalho de transcodificação. Se um vídeo deve ser transcodificado de acordo com esta política, uma transcodificação existente é substituída. Caso contrário, ela é excluída.
Por exemplo, digamos que você tenha transcodificações existentes com a política "Vídeos com resolução superior ao normal ou não no formato desejado" e mude para uma política mais restrita: "Vídeos não no formato desejado". Se um arquivo foi transcodificado apenas devido à sua resolução, executar um trabalho de transcodificação para ele excluirá a transcodificação existente. Isso ocorre porque a resolução não é mais parte da política de transcodificação e a transcodificação é desnecessária. Da mesma forma, se você definir a política para "Não transcodificar nenhum vídeo" e executar trabalhos de transcodificação para todos os arquivos, isso excluirá todas as transcodificações existentes, pois elas são desnecessárias.
É possível comprimir imagens durante o backup?
Não. Nosso princípio de design é que os arquivos originais devem sempre permanecer intactos.
Como montar um volume CIFS/Samba no Docker?
Se você não puder ou preferir não montar o Samba no host (como em ambientes Windows), pode montar o volume diretamente no Docker.
Abaixo está um exemplo no docker-compose.yml
.
Altere seu nome de usuário, senha, IP local e nome da pasta compartilhada, e veja abaixo onde está a linha - originals:/usr/src/app/originals
,
correspondente à seção onde o volume originals
foi criado. Você pode nomear como preferir e mapear para o contêiner do Docker à sua escolha.
Por exemplo, você poderia substituir originals:
por Fotos:
e mudar - originals:/usr/src/app/originals
para Photos:/usr/src/app/photos
.
...
services:
immich-server:
...
volumes:
# Não edite a próxima linha. Para mudar o local de armazenamento da mídia no seu sistema, edite o valor de UPLOAD_LOCATION no arquivo .env
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
+ - originals:/usr/src/app/originals
...
volumes:
model-cache:
+ originals:
+ driver_opts:
+ type: cifs
+ o: 'iocharset=utf8,username=USERNAMEHERE,password=PASSWORDHERE,rw' # mude para `ro` se desejar somente leitura
+ device: '//localipaddress/sharename'
Álbuns
Posso manter minha estrutura de álbuns existente ao importar itens para o Immich?
Sim, utilizando o CLI do Immich juntamente com a flag --album
.
Existe uma forma de reorganizar fotos dentro de um álbum?
Ainda não. Para atualizações sobre esse recurso planejado, acompanhe a discussão no GitHub.
Biblioteca Externa
Posso adicionar uma biblioteca externa enquanto mantenho a estrutura de álbuns existente?
Ainda não implementamos um mecanismo oficial para criação de álbuns a partir de bibliotecas externas, mas existem alguns atalhos sugeridos pela comunidade para ajudar você a alcançar este objetivo.
O que acontece com duplicatas em bibliotecas externas?
A verificação de duplicatas existe apenas para bibliotecas de upload, usando o hash do arquivo. Além disso, a verificação de duplicatas não é global, mas por biblioteca. Portanto, é possível que o mesmo arquivo apareça duas vezes na linha do tempo, especialmente em bibliotecas externas.
Por que minhas edições de arquivos não estão sendo salvas em bibliotecas externas de somente leitura?
Imagens em bibliotecas externas de leitura e escrita (padrão) podem ser editadas normalmente.
Em bibliotecas de somente leitura (:ro
no docker-compose.yml
), o Immich não consegue criar os arquivos .xmp
de metadados para armazenar as edições feitas nos arquivos.
Por essa razão, os metadados (timestamp, localização, descrição, classificação com estrelas, etc.) não podem ser editados em arquivos de bibliotecas externas de somente leitura.
Como são tratadas as exclusões de arquivos em bibliotecas externas?
O Immich tentará excluir os arquivos originais que foram movidos para a lixeira quando ela for esvaziada.
Em bibliotecas externas de leitura e escrita (padrão), o Immich exclui o arquivo original.
Em bibliotecas de somente leitura (:ro
no docker-compose.yml
), os arquivos ainda podem ser movidos para a lixeira na interface.
No entanto, ao esvaziar a lixeira, os arquivos reaparecerão na linha do tempo principal, pois o Immich não consegue excluir o arquivo original.
Aprendizado de Máquina
Como funciona a busca inteligente?
O Immich usa modelos CLIP. Um modelo de ML converte cada imagem em um "embedding", que é essencialmente uma sequência de números que codifica semanticamente o conteúdo da imagem. O mesmo acontece com o texto que você insere ao realizar uma busca, e o embedding do texto é então comparado aos das imagens para encontrar aquelas mais semelhantes. Assim, não há "tags", "rótulos" ou "descrições" gerados para visualização. Para mais informações sobre o CLIP e suas capacidades, leia aqui.
Como funciona o reconhecimento facial?
Consulte Como funciona o reconhecimento facial para obter detalhes.
Como posso desativar o aprendizado de máquina?
Desativar o aprendizado de máquina resultará em uma experiência ruim ao buscar e na página de "Explorar", já que essas funcionalidades dependem dele para funcionar como esperado.
O aprendizado de máquina pode ser desativado em Administração > Configurações > Configurações de Aprendizado de Máquina, seja completamente ou por tipo de modelo. Por exemplo, você pode escolher desativar a busca inteligente com CLIP, mas manter o reconhecimento facial ativado. Isso significa que o serviço de aprendizado de máquina processará apenas os trabalhos habilitados.
No entanto, desativar todos os trabalhos não desativará o serviço de aprendizado de máquina em si. Para evitar que ele seja iniciado, comente a seção immich-machine-learning
no arquivo docker-compose.yml.
Estou recebendo erros sobre modelos corrompidos ou falha ao fazer o download. O que devo fazer?
Você pode excluir o volume de cache de modelos, onde os modelos são baixados. Isso dará ao serviço um ambiente limpo para baixar o modelo novamente. Se os modelos estiverem falhando completamente ao serem baixados, você pode baixá-los manualmente do Hugging Face e colocá-los na pasta de cache.
Posso usar um modelo CLIP personalizado?
Não, isso não é suportado. Apenas modelos listados na página do Hugging Face são compatíveis. Fique à vontade para solicitar um recurso caso haja algum modelo não listado que você queira adicionar.
Quero poder buscar em outros idiomas além do inglês. Como fazer isso?
Você pode mudar para um modelo CLIP multilíngue. Consulte aqui para instruções.
O Immich suporta reconhecimento facial em vídeos?
O recurso de aprendizado de máquina do Immich opera na miniatura gerada. Se um rosto estiver visível na miniatura de um vídeo, ele será identificado pelo reconhecimento facial. A varredura do vídeo inteiro para encontrar rostos pode ser implementada no futuro.
O Immich possui reconhecimento de animais?
Não.
Você pode usar Busca Inteligente para isso em certa medida. Por exemplo, se você tem um Golden Retriever e um Chihuahua, digite essas palavras na busca inteligente e veja os resultados.
Estou recebendo muitos "rostos" que não são rostos, o que posso fazer?
Você pode aumentar o MIN DETECTION SCORE para 0.8 para ajudar a evitar miniaturas ruins. Ajustar o score muito alto (acima de 0.9) pode filtrar muitos rostos reais dependendo da biblioteca usada. Se você quiser apenas esconder rostos específicos, pode ajustar a configuração 'MIN FACES DETECTED' no painel de administração para aumentar o critério do que o algoritmo considera um "rosto principal" para aquela pessoa, reduzindo as chances de miniaturas ruins serem escolhidas.
O volume immich_model-cache ocupa muito espaço, qual pode ser o problema?
Se você instalou vários modelos e optou por não usar alguns deles, pode valer a pena excluir os modelos antigos que estão em immich_model-cache. Para fazer isso, você pode montar o cache de modelos e remover os modelos indesejados.
Passos
docker run -it --rm -v immich_model-cache:/mnt-models alpine sh
cd /mnt-models
ls clip/ facial-recognition/
# rm -r clip/ABC facial-recognition/DEF # excluir modelos não utilizados
Desempenho
Por que o Immich é lento em sistemas com pouca memória como o Raspberry Pi?
O Immich utiliza opcionalmente transcodificação e aprendizado de máquina para diversos recursos. No entanto, isso pode ser pesado para rodar em um Raspberry Pi. Você pode mitigar isso ou hospedar o contêiner de aprendizado de máquina do Immich em um sistema mais poderoso, ou desativar completamente o aprendizado de máquina.
Posso reduzir o uso de CPU e RAM?
O backup inicial é o mais intensivo devido ao número de trabalhos em execução. Os mais intensivos em CPU são os de transcodificação e aprendizado de máquina (Busca Inteligente, Detecção de Rostos) e, em menor grau, geração de miniaturas. Aqui estão algumas maneiras de reduzir o uso de CPU:
- Reduza a concorrência de trabalho para esses trabalhos para 1.
- Em Configurações > Configurações de Transcodificação > Threads, defina o número de threads para um valor baixo como 1 ou 2.
- Em Configurações > Configurações de Aprendizado de Máquina > Reconhecimento Facial > Nome do Modelo, você pode mudar o modelo de reconhecimento facial para
buffalo_s
em vez debuffalo_l
. O primeiro é um modelo menor e mais rápido, embora não tão bom.- Para que o reconhecimento facial funcione corretamente em novas imagens, você deve executar novamente o trabalho de detecção de rostos para todas as imagens após esta alteração.
- No nível do contêiner, você pode definir restrições de recursos para reduzir ainda mais o uso.
- Recomenda-se aplicar essas restrições após tomar algumas das medidas aqui para um melhor desempenho.
- Se essas mudanças não forem suficientes, consulte acima para instruções sobre como desativar o aprendizado de máquina.
Posso limitar o uso de CPU e RAM?
Por padrão, um contêiner não tem restrições de recursos e pode usar tanto quanto permitido pelo kernel do host. Para limitar isso, você pode adicionar o seguinte ao bloco docker-compose.yml
de qualquer contêiner que deseja limitar recursos.
docker-compose.yml
deploy:
resources:
limits:
# Número de threads da CPU
cpus: '1.00'
# Gigabytes de memória
memory: '1G'
Para mais detalhes, você pode consultar a documentação original do Docker ou usar este guia.
Note que as restrições de memória funcionam encerrando o contêiner, o que pode introduzir instabilidade se configurado muito baixo.
Como posso aumentar a velocidade do aprendizado de máquina?
Este conselho aumenta o throughput, não a latência. Isso significa que as tarefas de Busca Inteligente serão processadas mais rapidamente, mas não fará a busca ser mais rápida.
Você pode aumentar o throughput aumentando a concorrência de trabalhos para tarefas de aprendizado de máquina (Busca Inteligente, Detecção de Rostos). Com maior concorrência, o host trabalhará em mais itens em paralelo. Você pode fazer isso navegando até Administração > Configurações > Configurações de Trabalho e aumentando a concorrência conforme necessário.
Em uma máquina normal, 2 ou 3 trabalhos simultâneos provavelmente podem maximizar a CPU. A velocidade e latência do armazenamento podem rapidamente se tornar o fator limitante além disso, especialmente ao usar HDDs.
A simultaneidade pode ser aumentada mais confortavelmente com uma GPU, mas ainda não deve ser superior a 16 na maioria dos casos.
Não exagere na simultaneidade dos trabalhos porque você provavelmente está sobrecarregando o servidor.
Meu servidor mostra Status do Servidor Off-line | Versão Desconhecida. O que posso fazer?
Você precisa habilitar WebSockets no seu proxy reverso.
Docker
Como posso ver os logs do Immich?
Os componentes do Immich são geralmente implantados usando Docker. Para ver os logs dos contêineres Docker implantados, você pode usar o Docker CLI, especificamente o comando docker logs
. Para exemplos, veja Ajuda do Docker.
Como posso reduzir a verbosidade do log do Redis?
Para diminuir os logs do Redis, você pode adicionar a seguinte linha à seção redis:
do arquivo docker-compose.yml
:
command: redis-server --loglevel warning
Como posso executar o Immich como um usuário não root?
Você pode alterar o usuário no contêiner configurando o argumento user
no arquivo docker-compose.yml
para cada serviço.
Você pode precisar adicionar pontos de montagem ou volumes Docker para os seguintes caminhos internos no contêiner:
immich-machine-learning:/.config
immich-machine-learning:/.cache
redis:/data
O usuário/grupo não root precisa de acesso de leitura/escrita aos pontos de montagem de volume, incluindo UPLOAD_LOCATION
e /cache
para aprendizado de máquina.
O elemento de volume no nível superior do Docker Compose não suporta acesso não-root; todos os volumes acima devem ser montagens de volumes locais.
Para um sistema mais endurecido, você pode adicionar o seguinte bloco a cada contêiner.
docker-compose.yml
security_opt:
# Impedir escalonamento de privilégios após o contêiner ser iniciado
- no-new-privileges:true
cap_drop:
# Impedir acesso ao tráfego de rede bruto
- NET_RAW
Como posso purgar dados do Immich?
Os dados do Immich são fornecidos em duas formas:
- Metadados armazenados em um banco de dados Postgres, localizado na pasta
DB_DATA_LOCATION
(anteriormente volume Dockerpg_data
). - Arquivos (originais, miniaturas, perfil, etc.), armazenados na pasta
UPLOAD_LOCATION
, mais informações.
Isso destruirá seu banco de dados e redefinirá sua instância, significando que você começará do zero.
docker compose down -v
Após remover os contêineres e volumes, há alguns diretórios que precisam ser excluídos para redefinir o Immich para uma nova instalação. Depois que eles forem excluídos, o Immich pode ser iniciado novamente e será uma instalação nova.
DB_DATA_LOCATION
contém o banco de dados, informações de mídia e configurações.UPLOAD_LOCATION
contém toda a mídia carregada para Immich.
Se você usar o portainer, desligue o stack no portainer. Vá para a seção de volumes e remova todos os volumes relacionados ao Immich, depois reinicie o stack.
Por que o serviço de aprendizado de máquina relata falhas nos trabalhadores?
Se o erro disser que o trabalhador está saindo, então isso é normal. Esta é uma funcionalidade destinada a reduzir o consumo de RAM quando o serviço não está sendo usado.
Existem algumas razões pelas quais isso pode acontecer.
Se o erro mencionar SIGKILL ou código de erro 137, isso provavelmente significa que o serviço está sem memória. Considere aumentar a RAM do servidor ou mover o serviço para um servidor com mais RAM.
Se mencionar SIGILL (note a ausência de um K) ou código de erro 132, isso provavelmente significa que a CPU do seu servidor é incompatível com o Immich.
Banco de Dados
Por que estou recebendo erros de propriedade do banco de dados?
Se você receber erros de banco de dados como FATAL: data directory "/var/lib/postgresql/data" has wrong ownership
ao iniciar o banco de dados, isso provavelmente se deve a um problema com seu sistema de arquivos.
Sistemas de arquivos NTFS e ex/FAT/32 não são suportados. Veja aqui para mais detalhes.
Como posso verificar a integridade do meu banco de dados?
Checksums de banco de dados estão ativados por padrão para novas instalações desde a versão v1.104.0. Você pode verificar se estão ativados executando o seguinte comando.
Um resultado de on
significa que os checksums estão ativados.
Verificar se os checksums estão ativados
docker exec -it immich_postgres psql --dbname=postgres --username=<DB_USERNAME> --command="show data_checksums"
data_checksums
----------------
on
(1 linha)
Se os checksums estiverem ativados, você pode verificar o status do banco de dados com o seguinte comando. Um resultado normal são todos 0
s.
Verificar corrupção no banco de dados
docker exec -it immich_postgres psql --dbname=postgres --username=<DB_USERNAME> --command="SELECT datname, checksum_failures, checksum_last_failure FROM pg_stat_database WHERE datname IS NOT NULL"
datname | checksum_failures | checksum_last_failure
-----------+-------------------+-----------------------
postgres | 0 |
immich | 0 |
template1 | 0 |
template0 | 0 |
(4 linhas)
Você também pode escanear a estrutura de arquivos do banco de dados Postgres em busca de erros:
Escanear erros de estrutura de arquivos
docker exec -it immich_postgres pg_amcheck --username=<DB_USERNAME> --heapallindexed --parent-check --rootdescend --progress --all --install-missing
Um resultado normal terminará algo assim e retornará com um código de saída 0
:
7470/8832 relations (84%), 730829/734735 pages (99%)
8425/8832 relations (95%), 734367/734735 pages (99%)
8832/8832 relations (100%), 734735/734735 pages (100%)
Se for detectada corrupção, você deve imediatamente fazer um backup antes de realizar qualquer outra ação no banco de dados.
Para fazer isso, você pode precisar configurar a flag zero_damaged_pages=on
no servidor de banco de dados para permitir que o pg_dumpall
seja bem-sucedido.
Após realizar o backup, o próximo passo recomendado é restaurar o banco de dados de um backup saudável feito antes de detectar corrupção.
O dump do banco de dados danificado pode ser usado para recuperar manualmente quaisquer alterações feitas desde o último backup, se necessário.
As causas de possíveis corrupções são muitas, mas podem incluir desligamentos inesperados ou desmontagens, uso de um compartilhamento de rede para dados do Postgres, ou um meio de armazenamento ruim, como um cartão SD ou HDD/SSD com falha.