pg_combinebackup

pg_combinebackup — reconstrói uma cópia de segurança completa a partir de uma cópia de segurança incremental e cópias de segurança dependentes

Sinopse

pg_combinebackup [opção...] [diretório_da_cópia_de_segurança...]

Descrição

O utilitário pg_combinebackup é usado para reconstruir uma cópia de segurança completa sintética a partir de uma cópia de segurança incremental e das cópias de segurança anteriores das quais ela depende.

Devem ser especificadas todas as cópias de segurança necessárias na linha de comando, da mais antiga para a mais recente. Ou seja, o primeiro diretório de cópia de segurança deve ser o caminho para a cópia de segurança completa e o último deve ser o caminho para a cópia de segurança incremental final que se deseja restaurar. A cópia de segurança reconstruída será escrita no diretório de saída especificado pela opção -o.

O utilitário pg_combinebackup irá tentar verificar se as cópias de segurança especificadas formam uma cadeia de cópia de segurança válida a partir da qual uma cópia de segurança completa correta possa ser reconstruída. Entretanto, ele não foi projetado para ajudar a controlar quais cópias de segurança dependem de quais outras cópias de segurança. Se for removida uma ou mais cópias de segurança anteriores das quais a cópia de segurança incremental depende, não será possível restaurar. Além disso, o utilitário pg_combinebackup só tenta verificar se as cópias de segurança têm a relação correta entre si, não se cada cópia de segurança individual está intacta; para esta finalidade, deve ser usado o utilitário pg_verifybackup.

Uma vez que a saída do utilitário pg_combinebackup é uma cópia de segurança completa sintética, ela poderá ser usada como entrada para uma futura chamada de pg_combinebackup. A cópia de segurança sintética completa seria especificada na linha de comando em vez da cadeia de cópias de segurança a partir da qual foi reconstruída.

Opções

-d
--debug

Escreve várias informações de registro de depuração em stderr.

-k
--link

Usa as ligações físicas em vez de copiar os arquivos para a cópia de segurança sintética. A reconstrução da cópia de segurança sintética poderá ser mais rápida (sem cópia de arquivos) e utilizar menos espaço em disco, mas é preciso ter cuidado ao usar o diretório de saída, porque qualquer modificação neste diretório (por exemplo, reiniciar o servidor) também poderá afetar os diretórios de entrada. Da mesma forma, alterações nos diretórios de entrada (por exemplo, iniciar o servidor com a cópia de segurança completa) poderá afetar o diretório de saída. Portanto, esta opção é mais adequada quando os diretórios de entrada são apenas cópias que serão removidas após a conclusão do pg_combinebackup.

Requer que as cópias de segurança de entrada e o diretório de saída estejam no mesmo sistema de arquivos.

Se não estiver disponível um manifesto de cópia de segurança, ou se este não contiver uma soma de verificação (checksum) do tipo correto, as ligações físicas ainda assim serão criadas, mas o arquivo será lido bloco por bloco para realizar o cálculo da soma de verificação.

-n
--dry-run

A opção -n/--dry-run instrui o utilitário pg_combinebackup a descobrir o que seria feito sem realmente criar o diretório de destino ou quaisquer arquivos de saída. É particularmente útil em combinação com a opção --debug.

-N
--no-sync

Por padrão, o utilitário pg_combinebackup irá aguardar até que todos os arquivos sejam escritos com segurança no disco. Esta opção faz com que o pg_combinebackup retorne sem esperar, o que é mais rápido, mas significa que uma falha subsequente do sistema operacional poderá corromper a cópia de segurança de saída. Em geral, esta opção é útil para testes, mas não deve ser usada ao criar uma instalação de produção.

-o diretório_de_saída
--output=diretório_de_saída

Especifica o diretório de saída no qual a cópia de segurança sintética completa deve ser escrita. No momento, este argumento é obrigatório.

-T diretório_antigo=diretório_novo
--tablespace-mapping=diretório_antigo=diretório_novo

Realoca o espaço de tabelas no diretório_antigo para o diretório_novo durante a cópia de segurança. O diretório_antigo é o caminho absoluto do espaço de tabelas tal como existe na cópia de segurança final especificado na linha de comando e o diretório_novo é o caminho absoluto a ser usado para o espaço de tabelas na cópia de segurança reconstruída. Se algum dos caminhos precisar conter um sinal de igual (=), este deverá ser precedido por uma contrabarra. Esta opção pode ser especificada várias vezes para vários espaços de tabela.

--clone

Usa a clonagem eficiente de arquivos (também conhecida como reflinks em alguns sistemas) em vez de copiar os arquivos para o novo diretório de dados, o que pode resultar em uma cópia quase instantânea dos arquivos de dados.

Se não estiver disponível um manifesto de cópia de segurança, ou se este não contiver uma soma de verificação (checksum) do tipo correto, será usada a clonagem de arquivo para copiar o arquivo, mas o arquivo será lido bloco por bloco para realizar o cálculo da soma de verificação.

A clonagem de arquivos só tem suporte em alguns sistemas operacionais e sistemas de arquivos. Se esta opção estiver selecionada, mas não for compatível, a execução do utilitário pg_combinebackup irá apresentar erro. No momento, esta opção tem suporte no Linux (kernel 4.5 ou posterior) com Btrfs e XFS (em sistemas de arquivos criados com suporte a reflink), e no macOS com APFS.

--copy

Realiza cópia regular de arquivos. É o padrão. (Veja também --copy-file-range, --clone e -k/--link.)

--copy-file-range

Usa a chamada de sistema copy_file_range para realizar uma cópia eficiente. Em alguns sistemas de arquivos, produz resultados semelhantes à opção --clone, compartilhando blocos físicos do disco, enquanto em outros sistemas pode até copiar blocos, mas por meio de um caminho otimizado. No momento, tem suporte no Linux e no FreeBSD.

Se não estiver disponível um manifesto de cópia de segurança, ou se este não contiver uma soma de verificação (checksum) do tipo correto, será usado copy_file_range para copiar o arquivo, mas o arquivo será lido bloco por bloco para realizar o cálculo da soma de verificação.

--manifest-checksums=algoritmo

Assim como o utilitário pg_basebackup, o pg_combinebackup escreve o manifesto de cópia de segurança no diretório de saída. Esta opção especifica o algoritmo de soma de verificação a ser aplicado a cada arquivo incluído no manifesto de cópia de segurança. No momento, os algoritmos disponíveis são NONE, CRC32C, SHA224, SHA256, SHA384 e SHA512. O padrão é CRC32C.

--no-manifest

Desativa a geração do manifesto de cópia de segurança. Se esta opção não for especificada, será escrito um manifesto de cópia de segurança para a cópia de segurança reconstruída no diretório de saída.

--sync-method=método

Quando definido como fsync, que é o padrão, o utilitário pg_combinebackup irá abrir e sincronizar recursivamente todos os arquivos no diretório de cópia de segurança. Quando é usado o formato simples, a busca por arquivos irá seguir as ligações simbólicas para o diretório do WAL e para cada espaço de tabelas configurado.

No Linux, pode ser usado o syncfs para solicitar ao sistema operacional que sincronize todo o sistema de arquivos que contém o diretório de cópia de segurança. Quando é usado o formato simples, o utilitário pg_combinebackup também irá sincronizar os sistemas de arquivos que contêm os arquivos do 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 é usada a opção --no-sync.

-V
--version

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

-?
--help

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

Limitações

O utilitário pg_combinebackup não recalcula as somas de verificação das páginas ao escrever no diretório de saída. Portanto, se alguma das cópias de segurança usadas ​​para a reconstrução foi feita com a verificação de integridade desativada, mas a cópia de segurança final foi feita com a verificação de integridade ativada, o diretório resultante poderá conter páginas com verificações de integridade inválidas.

Para evitar este problema, recomenda-se fazer uma nova cópia de segurança completa após alterar o estado da soma de verificação do agrupamento de bancos de dados (cluster) usando o utilitário pg_checksums. Caso contrário, se pode desativar e, opcionalmente, reativar as somas de verificação no diretório produzido pelo utilitário pg_combinebackup para corrigir o problema.

Variáveis de ambiente

Este utilitário, assim como a maioria dos outros utilitários do PostgreSQL, usa as variáveis ​​de ambiente que têm suporte na libpq (veja Variáveis ​​de ambiente).

A variável de ambiente PG_COLOR especifica se devem ser usadas cores nas mensagens de diagnóstico. Os valores possíveis são always, auto e never.

Veja também

pg_basebackup