Backups e replicação são duas coisas diferentes.
Backups fornecem um instantâneo dos dados em um determinado ponto. Eles fornecem um ponto de restauração.
Replicação é distribuir cada ação para um sistema diferente para que você a tenha em mais de um local. Exclusões também são replicadas.
Se você realmente deseja tolerância a falhas, você precisa ter ambos. (E mais…)
Portanto, a replicação apenas resolve o problema de ter dados atuais em vários lugares. Backups fornecem o método para restaurar um sistema para um determinado ponto no tempo.
O Discourse usa 2 mecanismos para armazenamento:
- Banco de dados PostgreSQL para tudo, exceto arquivos anexados
- Arquivos anexados armazenados no sistema local ou no S3
Para fazer backup e/ou replicar os dados armazenados no banco de dados PostgreSQL, você pode consultar a documentação do PostgreSQL sobre como fazer isso. Sobre backups, e replicação.
Arquivos anexados são um pouco mais complicados. Se você os armazena no S3, pode usar backups do S3. Para arquivos armazenados localmente, você pode usar várias opções de sistema local.
Criar backups completos é uma tarefa pesada, dependendo da quantidade de dados. Portanto, não é fácil fazer isso com mais frequência. O procedimento de backup padrão do Discourse é criar backups completos. Se você realmente deseja reduzir o risco de perder dados, precisa procurar outras opções.
Uma opção pode ser fornecida pelo seu serviço de hospedagem: snapshots de volume. Isso fornece uma maneira de fazer uma cópia “instantânea” dos dados armazenados em um volume. Isso permite que você restaure o volume para aquele momento. Snapshots de volume também podem estar disponíveis dentro do sistema operacional, dependendo do sistema de arquivos usado. (O btrfs suporta isso, por exemplo.)
Além disso, a documentação do PostgreSQL também aborda a criação de backups mais contínuos do banco de dados, permitindo uma excelente recuperação pontual do banco de dados. (Não se esqueça de enviar os backups para outro local.) Isso é muito mais rápido do que backups completos.
Para backups de anexos mais granulares, você pode usar várias ferramentas de backup que permitem gerenciar backups completos + diferenciais. Por exemplo, duplicity. Ou você poderia usar rsync (sem exclusão). Entre os snapshots, você ainda poderia perder arquivos. Usar S3 sem exclusão seria mais seguro, pois os arquivos já estão em outro sistema.
Para concluir. O mecanismo de backup padrão do Discourse não é adequado para uma programação de backup mais frequente. Se você deseja ter mais backups, use uma combinação dos recursos padrão de backup/replicação do PostgreSQL, S3, snapshots de volume, etc.
No meu site, não uso o sistema de backup do Discourse para backups regulares. Ainda tenho backups diários, mas uso uma combinação de configurações de pg_dumps e duplicity (coordenadas via backupninja).