pg_checksums

pg_checksums — ativa, desativa ou confere as somas de verificação dos arquivos de dados de uma instância do PostgreSQL

Sinopse

pg_checksums [opção...] [[ -D | --pgdata ]diretório_de_dados]

Descrição

O utilitário pg_checksums confere, ativa ou desativa as somas de verificação dos dados em uma instância do PostgreSQL. O servidor deve ser parado corretamente antes de executar o utilitário pg_checksums. Ao conferir as somas de verificação, o status de saída será zero se não houver erros de soma de verificação, e diferente de zero se pelo menos uma falha de soma de verificação for detectada. Ao ativar ou desativar as somas de verificação, o status de saída será diferente de zero se a operação falhar.

Ao conferir as somas de verificação, todos os arquivos da instância são analisados. Ao ativar as somas de verificação, cada bloco de arquivo de relação com uma soma de verificação alterada é reescrito no local. Desativar a soma de verificação apenas atualiza o arquivo pg_control.

Opções

Estão disponíveis as seguintes opções de linha de comando:

-D diretório_de_dados
--pgdata=diretório_de_dados

Especifica o diretório no qual a instância de banco de dados está armazenada.

-c
--check

Confere as somas de verificação. Este é o modo padrão, se nada mais for especificado.

-d
--disable

Desativa as somas de verificação.

-e
--enable

Ativa as somas de verificação.

-f filenode
--filenode=filenode

Só valida as somas de verificação na relação com o filenode filenode.

-N
--no-sync

Por padrão, o utilitário pg_checksums irá aguardar que todos os arquivos sejam escritos com segurança no disco. Esta opção faz com que o utilitário pg_checksums termine sem aguardar, o que é mais rápido, mas significa que uma falha subsequente do sistema operacional poderá deixar o diretório de dados atualizado corrompido. Geralmente, esta opção é útil para testes, mas não deve ser usada em uma instalação em produção. Esta opção não tem efeito ao usar --check.

-P
--progress

Ativa o relatório de progresso, fornecendo um relatório de progresso ao conferir ou ativar as somas de verificação.

--sync-method=método

Quando definido como fsync, que é o padrão, o utilitário pg_checksums irá abrir e sincronizar recursivamente todos os arquivos no diretório de dados. A procura por arquivos seguirá as ligações simbólicas para o diretório de WAL e para cada espaço de tabelas configurado.

No Linux, pode-se usar o syncfs em vez de solicitar ao sistema operacional que sincronize todo o sistema de arquivos que contém o diretório de dados, os arquivos de WAL e cada espaço de tabelas. Veja recovery_init_sync_method para obter informações sobre as precauções a serem tomadas ao usar o syncfs.

Esta opção não tem efeito quando é usado --no-sync.

-v
--verbose

Ativa a saída verbosa. Lista todos os arquivos conferidos.

-V
--version

Mostra a versão do utilitário pg_checksums, e termina.

-?
--help

Mostra a ajuda sobre os argumentos de linha de comando do utilitário pg_checksums, e termina.

Variáveis de ambiente

PGDATA

Especifica o diretório onde o agrupamento de bancos de dados está armazenado; pode ser sobreposta usando a opção -D.

PG_COLOR

Especifica se devem ser usadas cores nas mensagens de diagnóstico. Os valores possíveis são always, auto e never.

Notas

Ativar as somas de verificação em uma instância grande pode levar muito tempo. Durante esta operação, a instância ou outros programas que escrevem no diretório de dados não devem ser iniciados, ou poderá ocorrer perda de dados.

Ao usar uma configuração de replicação com ferramentas que executam cópias diretas de blocos de arquivo de relação (por exemplo, pg_rewind), ativar ou desativar as somas de verificação pode levar a corrupções de página na forma de somas de verificação incorretas, se a operação não for feita de modo consistente em todos os nós. Ao ativar ou desativar as somas de verificação em uma configuração de replicação, é recomendável parar todas as instâncias antes de trocá-las de forma consistente. Destruir todos os servidores em-espera, realizar a operação no servidor primário, e finalmente recriar os servidores em-espera do zero, também é seguro.

Se utilitário pg_checksums for interrompido, ou encerrado, durante a ativação ou desativação das somas de verificação, a configuração da soma de verificação dos dados da instância permanecerá inalterada, e o utilitário pg_checksums poderá ser executado novamente para realizar a mesma operação.

Exemplo

Exemplo 170. Exemplo do tradutor

Conferir as somas de verificação

Parar o servidor, conferir as somas de verificação dos arquivos de dados e reiniciar o servidor PostgreSQL 18 no Debian 12.

$ sudo systemctl stop postgresql@18-main
$ sudo su - postgres
$ /usr/lib/postgresql/18/bin/pg_checksums -D /var/lib/postgresql/18/main/
Operação de soma de verificação concluída
Files scanned:   4183
Blocks scanned:  16511
Bad checksums:  0
Versão da soma de verificação de dados: 1
$ exit
$ sudo systemctl start postgresql@18-main