Question: Can Postgres be setup on a 10GB or 100GB sized system to not use special backup software, but instead just use traditional filesystem backup software (filesystem snapshots?) and has a reasonable method of recovery using this method?
Sim, se os instantâneos do sistema de arquivos forem atômicos . Isso é extremamente importante. Você deve ter um snapshot atômico , você não pode simplesmente copiar o diretório de dados diretamente. O método usual é fazer um snapshot com uma SAN, um gerenciador de volume lógico, um sistema de arquivos com captura de snapshot, etc, e montá-lo em outro caminho, depois fazer o backup. Então você está usando um script de pré e pós-backup.
Aqui, "atômico" é usado em seu significado de ciência da computação, de indivisível, um único momento no tempo em que tudo é antes ou depois daquele momento. No caso de um instantâneo, significa um instante no tempo, o estado do armazenamento naquele momento específico.
Entendo que o Serviço de Cópias de Sombra de Volume da Microsoft (para Windows) é apenas atômico no nível do arquivo, portanto você não pode usar sistemas de backup que dependam dele para consistência.
Se você não estiver realmente usando um instantâneo do sistema de arquivos, apenas copiando os dados no sistema de arquivos ao vivo, ainda é possível fazer isso, mas é necessário executar etapas adicionais. De acordo com a documentação , você pode informar ao PostgreSQL que o backup é ocorrendo, e ele entrará em um modo sem sobrescrever que torna os backups seguros enquanto está em execução. No entanto, para restaurar esse backup, você precisa de arquivos que sejam gravados após o script de pós-backup que chama pg_stop_backup()
runs . A maneira mais fácil de ter certeza de que você tem esses arquivos é garantir que arquivamento do WAL está ativado; caso contrário, você precisará de alguns ganchos de script extras em seu sistema de backup para anexá-los ao backup.
Usecase 1: to avoid special backup approach when using Postgres and just use normal file system. No downtime, or < 5 seconds.
Para isso, basta usar pg_dump
ou pg_basebackup
. Não requer tempo de inatividade e é simples.
Qualquer sistema de backup decente suporta ganchos pré e pós-backup que facilitam isso.
Usecase 1: to avoid special backup approach when using Postgres and just use normal file system. No downtime, or < 5 seconds.
Para isso você vai querer snapshots atômicos, e você precisará ter certeza de que as imagens estão no mesmo snapshot que o PostgreSQL.
Caso contrário, você arrisca inconsistências onde o sistema de arquivos e o banco de dados não combinam muito bem.