Serviço de backup e DR para PostgreSQL em um dispositivo de backup/recuperação

O PostgreSQL é um sistema de banco de dados relacional de objetos de código aberto que usa e estende a linguagem SQL combinada com muitos recursos que armazenam e escalonam com segurança as cargas de trabalho de dados mais complicadas.

API de backup do PostgreSQL usada pelo Backup e DR

  • Backups no nível do volume (rastreamento de blocos de mudança do Linux e snapshot do LVM): o Backup e DR usa os comandos pg_start_backup(label) e pg_stop_backup() do PostgreSQL ao realizar backups com o rastreamento de blocos de mudança do Linux e o snapshot do LVM.

  • Backups completos e incrementais (tradicionais baseados em arquivos): o Backup e DR usa os comandos de backups baseados em arquivos pg_dump do PostgreSQL. O comando pg_dump não tem uma opção para capturar mudanças incrementais de um banco de dados. Portanto, cada backup é um backup completo do banco de dados.

    A restauração do banco de dados o recupera substituindo fisicamente a área de dados.

  • Backup de registros do PostgreSQL: durante um backup de registros, o Backup e DR copia fisicamente todos os WALs do PostgreSQL (WriteAheadLog). Para limpar os registros, o Backup e DR usa um comando no nível do SO.

Como funciona: backup baseado em volume do Backup e DR com CBT do Linux

Somente os blocos alterados são rastreados no bitmap: sem cópia na gravação, sem operações com uso intenso de E/S.

As etapas a seguir descrevem o processo de backup e recuperação de dados:

  1. O agente do Backup e DR tem CBT para rastrear blocos alterados na área de dados do banco de dados.

  2. O agente chama a API do banco de dados para congelar ou pausar o banco de dados para backup de dados.

  3. O agente cria um snapshot do LVM da área de dados do banco de dados e sintetiza um bitmap.

  4. O agente chama a API do banco de dados para descongelar o banco de dados.

  5. O agente copia os blocos alterados para o dispositivo de backup/recuperação, que exclui o snapshot e cataloga o backup.

  6. O dispositivo emite um snapshot interno e sintetiza um backup completo virtual pontual.

  7. Para a recuperação de dados, o Backup e DR monta instantaneamente um disco de preparação regravável e coloca o banco de dados on-line.

O comando de inatividade ou não inatividade é executado no primário para um job de snapshot no nível do volume:

select pg_start_backup(<label>);
select pg_stop_backup();

Os comandos de inatividade e não inatividade são executados em um nó de espera para um job de snapshot no nível do volume:

Se a versão do PostgreSQL for 10.x ou mais recente:

select pg_wal_replay_pause();
select pg_wal_replay_resume();

Se a versão do PostgreSQL for 9.x:

select pg_xlog_replay_pause();
select pg_xlog_replay_resume();

Como funciona: backup baseado em arquivos

As etapas a seguir descrevem o processo de backup e recuperação de dados com backups baseados em arquivos:

  1. O agente do Backup e DR é implantado no servidor de banco de dados.

  2. Monte o disco de preparação no servidor de banco de dados.

  3. Invoque o backup completo usando o comando de backup de despejo, gravando o backup no disco montado.

  4. O Backup e DR faz um snapshot interno. Os backups de registros são feitos de maneira semelhante diretamente do sistema de arquivos em qualquer programação configurada.

  5. Para a recuperação de dados, o Backup e DR monta instantaneamente o disco de preparação no servidor de banco de dados e inicia a operação de restauração do banco de dados. Os registros podem ser reproduzidos em qualquer momento após a restauração do banco de dados.

A seguir

Preparar o banco de dados para o Backup e DR

Outra documentação do Backup e DR para PostgreSQL