Tentando fazer um backup incremental de hora em hora de um único servidor Postgres (Win7 64).
Tenho a seguinte configuração em postgresql.conf
:
max_wal_senders = 2
wal_level = archive
archive_mode = on
archive_command = 'copy "%p" "c:\\postgres\\foo\\%f"'
(reiniciar)
Eu fiz um backup básico compg_basebackup -U postgres -D ..\foo -F t -x
O que criou um base.tar
arquivo grande na foo
pasta e adicionou alguns arquivos de 16.384 KB, que presumo serem WALs.
O que não entendo é por que os WALs foo
não mudam . Os WALs em data/pg_xlog
mudança. O pg não deveria copiá-los? Como decide fazê-lo?
Talvez eu precise definir archive_timeout=3600
?
Já vi vários sites (listas de discussão da pg, página do postgres do bacula) que dizem que você precisa chamar pg_start_backup() e pg_stop_backup(), mas acredito que essas não sejam necessárias. Isso é verdade?
Perguntas secundárias:
Com que frequência os WALs
data/pg_xlog
são escritos? O que aciona uma gravação?Parece atualizar um WAL se eu fizer algum DML
\q
em psql. Ou edite uma tabela no pgAdmin e feche a janela. Achei que iria escrever no commit.Melhores Práticas? pg_basebackup uma vez por semana? Arquivar WALs na mesma máquina do PG ou em uma máquina remota?
Existe uma ferramenta que vai te ajudar muito, WAL-E . Ele fornece um
archive_command
erestore_command
para PITR para S3.Não há comandos para fazer backups lógicos incrementais ou diferenciais .
pg_dump
não pode receber um incremental ou diferencial. A única maneira de fazer isso é por meio do arquivamento de log.Em teoria, você poderia fazer um novo backup completo, fazer uma comparação binária entre ele e o último backup e fazer upload do diff. Isso me parece uma maneira frágil e ineficiente de fazer as coisas, e eu realmente não a recomendaria.
Além disso, o PgBarman oferece suporte à integração com S3 por meio de scripts de gancho e automatizará grande parte da rotação e gerenciamento de backup para você. Novamente, isso pode não ser uma opção no Windows.
Você deseja fazer um backup incremental da pasta de arquivo para armazenamento remoto.
Se você precisar restaurar a partir do backup, o cenário básico é que você precisaria do backup básico como ponto de partida e de todo o conteúdo da pasta de arquivo para reproduzir a atividade transacional que ocorreu entre o ponto de partida e a falha.
Além disso, para evitar que os arquivos na pasta de arquivamento se acumulem para sempre, você deseja fazer um novo backup básico de tempos em tempos e excluir os arquivos que foram arquivados antes do novo backup básico.