8.3.4.3.2. Execução de backup de arquivamento contínuo
Para realizar um backup do banco de dados e restaurar usando o método de arquivamento contínuo, siga estes passos:
8.3.4.3.2.1. Fazendo um backup básico
Para realizar um backup de base, use o pg_basebackup que pode criar um backup básico na forma de arquivos individuais ou de um arquivo tar
.
Para utilizar o backup de base, é necessário manter todos os arquivos do segmento WAL gerados durante e após o backup do sistema de arquivos. O processo de backup básico cria um arquivo de histórico de backup que é armazenado na área de arquivo WAL e é nomeado após o primeiro arquivo de segmento WAL que você precisa para o backup do sistema de arquivos. Quando você tiver arquivado com segurança o backup do sistema de arquivos e os arquivos de segmentos WAL usados durante o backup, que são especificados no arquivo de histórico de backup, você pode excluir todos os segmentos WAL arquivados com nomes numericamente menos, porque eles não são mais necessários para recuperar o backup do sistema de arquivos. Entretanto, considere manter vários conjuntos de backup para ter certeza de que você pode recuperar seus dados.
O arquivo de histórico de backup é um pequeno arquivo de texto, que contém a cadeia de etiquetas que você deu a pg_basebackupos horários de início e fim, e os segmentos WAL do backup. Se você usou a cadeia de etiquetas para identificar o arquivo de despejo associado, então o arquivo de histórico arquivado é suficiente para lhe dizer qual arquivo de despejo restaurar.
Com o método de arquivamento contínuo, você precisa manter todos os arquivos WAL arquivados de volta à sua última base de backup. Portanto, a freqüência ideal de backups de base depende:
- O volume de armazenamento disponível para arquivos WAL arquivados.
A duração máxima possível da recuperação de dados em situações em que a recuperação é necessária.
Em casos com longo período desde o último backup, o sistema reproduz mais segmentos WAL, e a recuperação, portanto, leva mais tempo.
Para mais informações sobre como fazer um backup básico, consulte a Documentação do PostgreSQL.
8.3.4.3.2.2. Restaurando o banco de dados usando um arquivo de backup contínuo
Para restaurar um banco de dados usando um backup contínuo:
Pare o servidor:
# systemctl stop postgresql.service
Copiar os dados necessários para um local temporário.
De preferência, copie todo o diretório de dados do cluster e quaisquer tablespaces. Note que isto requer espaço livre suficiente em seu sistema para manter duas cópias de seu banco de dados existente.
Se você não tiver espaço suficiente, salve o conteúdo do diretório
pg_wal
do cluster, que pode conter logs que não foram arquivados antes da queda do sistema.- Remova todos os arquivos e subdiretórios existentes sob o diretório de dados do cluster e sob os diretórios raiz de quaisquer tablespaces que você estiver usando.
Restaure os arquivos do banco de dados a partir do backup de seu sistema de arquivos.
Certifique-se disso:
-
Os arquivos são restaurados com a propriedade correta (o usuário do sistema de banco de dados, não
root
) - Os arquivos são restaurados com as permissões corretas
-
Os links simbólicos no subdiretório
pg_tblspc/
foram restaurados corretamente
-
Os arquivos são restaurados com a propriedade correta (o usuário do sistema de banco de dados, não
Remover quaisquer arquivos presentes no subdiretório
pg_wal/
Estes arquivos resultaram do backup do sistema de arquivos e são, portanto, obsoletos. Se você não arquivou
pg_wal/
, recrie-o com as devidas permissões.-
Copie os arquivos não arquivados do segmento WAL que você salvou no passo 2 em
pg_wal/
se houver tais arquivos. -
Criar o arquivo de comando de recuperação
recovery.conf
no diretório de dados do cluster. Inicie o servidor:
# systemctl start postgresql.service
O servidor entrará no modo de recuperação e procederá à leitura dos arquivos WAL arquivados de que necessita.
Se a recuperação for encerrada devido a um erro externo, o servidor pode simplesmente ser reiniciado e ele continuará a recuperação. Quando o processo de recuperação é concluído, o servidor renomeia
recovery.conf
pararecovery.done
para evitar a reentrada acidental no modo de recuperação mais tarde, quando o servidor inicia as operações normais do banco de dados.Verifique o conteúdo do banco de dados para ter certeza de que o banco de dados se recuperou para o estado exigido.
Se o banco de dados não tiver se recuperado para o estado exigido, volte ao passo 1. Se o banco de dados se recuperou para o estado exigido, permita que os usuários se conectem restaurando o arquivo
pg_hba.conf
para o estado normal.
Para mais informações sobre a restauração usando o backup contínuo, consulte a Documentação do PostgreSQL.