Algum tempo por volta do início de março, meus backups do Discourse deixaram de ocorrer.
As configurações não foram alteradas, embora possa ter havido (provavelmente houve) uma atualização do Discourse.
Os backups são feitos para armazenamento local e, além de ter alterado o número máximo de backups para 3 e a frequência de backups para 3, todas as demais configurações estão nos valores padrão.
Posso fazer um backup manual, e isso funciona, embora eu note que, ao fazê-lo, o backup agora é um arquivo .sql.gz, enquanto anteriormente era um arquivo .tar.gz.
No entanto, os backups automáticos não são executados, parecem ser executados, e não recebo nenhum relatório de erro. A seção de Backups mostra “Nenhum backup disponível.” (incluindo o backup manual que fiz há alguns dias, que agora desapareceu), e Backups ➤ Logs diz “Ainda não há logs…”.
Tentei reiniciar o servidor (todo o Droplet da DigitalOcean), mas isso não resultou na retomada dos backups.
A versão indica que estou atualizado com a 2.6.3 (uso a branch estável, não a branch mais recente).
Isso é esperado, desde que todos os seus uploads estejam armazenados no S3. Nesse caso, o arquivo de backup é apenas um dump de banco de dados comprimido.
Por favor, verifique /logs. Existem erros que possam estar relacionados aos backups?
Além disso, verifique /u/system/messages/sent para ver se o sistema enviou alguma MP sobre backups falhos. Havia um bug que impedia os administradores de receber notificações sobre essas MPs em algumas circunstâncias.
É um pouco preocupante que o backup manual também tenha desaparecido. Não tenho certeza de como isso poderia acontecer, já que você definiu maximum_backups como 3. Você configurou algum tipo de cronjob ou script que move/exclui backups ou não funciona com a nova extensão de arquivo (sql.gz em vez de tar.gz)?
Os arquivos de backup realmente não estão lá? O que ls /var/discourse/shared/standalone/backups/default retorna?
Isso é normal. Os logs mostram apenas a saída dos backups manuais.
Acabei de verificar, não houve alterações relevantes no código de backup desde o lançamento da versão 2.6.
Nenhum dos meus uploads está armazenado no S3; todos estão armazenados localmente.
Não que eu tenha visto. Vejo a habitual confusão de TypeErrors, mas sempre os vejo. Pesquisar por “backup” não encontra nada, exceto TypeErrors relacionados a páginas da web de tópicos do fórum que, por acaso, contêm a palavra “backup”.
Ah, olhe, há várias mensagens de “Backup falhou” — por que não estou sendo alertado sobre elas?
Ok, bem, não sei por que nunca recebo um relatório delas, mas isso gera o erro:
[2021-04-08 03:35:35] Removendo o diretório temporário ‘/var/www/discourse/tmp/backups/default/2021-04-08-033313’…
[2021-04-08 03:35:35] Comprimindo o arquivo com gzip, isso pode levar algum tempo…
[2021-04-08 03:38:49] EXCEÇÃO: lib/discourse.rb:92:in `exec’: Falha ao comprimir o arquivo com gzip.
gzip: /var/www/discourse/public/backups/default/keyboard-maestro-discourse-2021-04-08-033313-v20201116132948.tar.gz: Sem espaço no dispositivo
Na verdade, isso é um script externo — ele copia o backup para outra máquina para armazenamento permanente e o deleta para liberar espaço no servidor (embora, aparentemente, não seja espaço suficiente).
Então, as perguntas restantes:
Por que não recebo nenhum alerta sobre essas mensagens de erro?
Por que o backup manual é um arquivo .sql.gz, enquanto o backup real é um .tar.gz (ambos deveriam incluir os uploads, que são locais)?
Por que o backup manual funciona, mas o backup automático fica sem espaço (provavelmente relacionado; talvez o backup manual não esteja realmente incluindo os uploads e, portanto, seja menor, embora pareça ter o tamanho correto)?
E a pergunta óbvia — como vou criar espaço extra no servidor? [Edição: ok, executando ./launcher cleanup liberei 15 GB de espaço, o que deve resolver a diferença].
Ok, pelo menos agora sei qual é o problema. Gostaria muito de saber a resposta à primeira pergunta, já que obviamente deveria estar recebendo avisos sobre isso. Para quem esses erros são enviados por e-mail ou quem é alertado sobre essas mensagens? Como posso garantir que ficarei sabendo delas no futuro?