O PostgreSQL é um sistema de banco de dados relacional de objetos de código aberto e poderoso que usa e estende a linguagem SQL combinada com muitos recursos que armazenam e dimensionam com segurança os workloads de dados mais complicados.
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 a DR usam os comandos
pg_start_backup(label)
epg_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 a DR usam os comandos de backup baseados em arquivos
pg_dump
do PostgreSQL. O comandopg_dump
não tem uma opção para capturar mudanças incrementais de um banco de dados. Portanto, cada backup é um backup completo de despejo de banco de dados.O restabelecimento do banco de dados recupera o banco de dados substituindo fisicamente a área de dados.
Backup de registro do PostgreSQL: durante um backup de registro, o Backup e a DR copiam fisicamente todos os WALs do PostgreSQL (
WriteAheadLog
). Para limpar os registros, o Backup e a DR usam um comando no nível do SO.
Como funciona: backup e DR baseado em volume com CBT do Linux
Somente os blocos alterados são rastreados no bitmap: sem cópia na gravação, sem operações de E/S intensas.
As etapas a seguir descrevem o processo de backup e recuperação de dados:
O agente de backup e DR tem CBT para rastrear blocos alterados na área de dados do banco de dados.
O agente chama a API do banco de dados para congelar ou pausar o banco de dados para backup de dados.
O agente cria um snapshot de LVM da área de dados do banco de dados e sintetiza um bitmap.
Chame a API do agente para descongelar o banco de dados.
O agente copia os blocos alterados para o dispositivo de backup/recuperação, que exclui o snapshot e cataloga o backup.
O appliance emite um snapshot interno e sintetiza um backup virtual completo de ponto em tempo.
Para recuperação de dados, o Backup e a DR montam instantaneamente um disco de preparação gravável e colocam o banco de dados on-line.
O comando de suspensão ou de suspensão é 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 de ativação 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 para realizar o backup e a recuperação de dados com imagens de backup baseadas em arquivos:
O agente de backup e DR é implantado no servidor de banco de dados.
Monte o disco de preparação no servidor de banco de dados.
Invocar o backup completo usando o comando de backup de despejo, gravando o backup no disco montado.
O backup e o DR fazem um snapshot interno. Os backups de registro são feitos de maneira semelhante diretamente no sistema de arquivos em qualquer programação que você configurar.
Para recuperação de dados, o backup e a DR montam o disco de preparação no servidor de banco de dados e iniciam a operação de restauração do banco de dados. Os registros podem ser reproduzidos a qualquer momento após a restauração do banco de dados.
A seguir
Preparar o banco de dados para backup e DR
Outra documentação sobre backup e DR para PostgreSQL
- Backup e DR para PostgreSQL
- Preparar o banco de dados para backup e DR
- Adicionar um host de banco de dados PostgreSQL e descobrir bancos de dados
- Definir modelos de políticas e perfis de recursos
- Definir detalhes e configurações do aplicativo
- Verificar o formato do disco de preparação e o método de backup
- Proteger o banco de dados PostgreSQL e os registros dele
- Montar um banco de dados PostgreSQL
- Recuperar backups do PostgreSQL
- Criar um fluxo de trabalho de backup e DR do PostgreSQL