O monitoramento que eu já tinha mantinha o banco de dados acordado e cobrando
O banco de dados caiu e eu não sabia. Essa foi a pior parte. Ele estava completamente fora do ar, e a única razão pela qual eu descobri foi um e-mail da empresa que hospeda o banco, avisando do problema. Eles me avisaram antes do meu próprio sistema.
Em 16/10/26, a hospedagem pausou o banco de dados porque ele passou de um limite do plano gratuito. A causa foi uma das nossas tarefas automáticas, que vinha salvando as mesmas informações várias vezes até acabar a cota mensal do plano. Se você quiser a versão técnica daquele dia, ela está neste relato (Ler em inglês).
A solução óbvia
O que era preciso era um monitoramento melhor, para eu não ter que ficar sabendo de uma queda pela empresa de hospedagem.
E tinha que ser um monitoramento esperto, daqueles que não consomem nenhum dos meus recursos.
No que eu não tinha pensado
Alguns dias depois, fizemos uma auditoria das tarefas agendadas de um segundo banco de dados, de outro projeto. Esse também tinha gastado toda a cota gratuita do mês.
Duas coisas causavam isso. Uma era um verificador de status que acessava uma página a cada 10 minutos para garantir que o site estava no ar. A outra era uma sincronização que rodava a cada 15 minutos para manter as páginas de contabilidade atualizadas.
As duas acessavam o banco de dados a cada execução.
Por que isso importa
Eu não tinha percebido que o banco dormir era um problema. Isso nem estava na minha cabeça como um limite. Estou acostumado a trabalhar com servidores dedicados, onde uma máquina ociosa que recebe verificações o tempo todo não custa nada a mais, então nunca pensei na frequência com que eu perguntava.
Esse tipo de banco de dados funciona de outro jeito. Ele só custa dinheiro enquanto está acordado, e dorme quando ninguém se conecta por um tempo. Cada verificação acorda o banco, e ele fica acordado por pelo menos cinco minutos depois. A nossa estimativa, aproximada e não medida, é de pelo menos 8 horas acordado por dia só por causa da sincronização de 15 minutos. O monitoramento que eu já tinha era parte do que mantinha o banco acordado e cobrando.
Foi mais uma surpresa para mim. O hábito que eu trouxe dos servidores sempre ligados simplesmente não serviu aqui.
O que fizemos
Na tarde de 19/10/26, desligamos o verificador de status por volta das 13:18 e a sincronização por volta das 13:37. O plano para a sincronização é rodá-la só quando alguém abrir a página que precisa dela, mostrando “atualizando em segundo plano” enquanto ela trabalha. Essa parte ainda não foi construída. Até lá, as páginas de contabilidade não se atualizam sozinhas, e uma pessoa roda a sincronização manualmente quando for necessário.
Para a verificação de status, o plano é uma checagem que nunca pergunta nada ao banco de dados.
Registramos três acompanhamentos com data: verificações de uso em 20/10/26 e 22/10/26, e a volta ao plano gratuito em 01/11/26. O uso caindo é a única prova de que o banco finalmente está dormindo. Ainda não medimos o resultado, então não vou afirmar que houve economia.
O que ainda cabe a uma pessoa decidir
Um computador executa uma verificação em um temporizador para sempre. Ele não pergunta se o temporizador vale a pena. Essa pergunta continua sendo de uma pessoa: com que frequência eu preciso saber, e quanto custa cada olhada?
O que levar disso
Antes de adicionar uma verificação, uma sincronização ou um lembrete, pergunte quanto custa cada vez que ele roda. Se você está acostumado com serviços que custam o mesmo, usando ou não, não presuma que o novo funciona assim. Os detalhes técnicos desta segunda história estão neste relato (Ler em inglês).
O verificador rodava a cada 10 minutos e a sincronização a cada 15, e as duas acordavam o banco de dados a cada vez. As duas estavam desligadas por volta das 13:37 de 19/10/26, e as verificações de uso com data que registramos vão nos dizer se o banco finalmente dorme.