Como corrigir o conflito de backup e limpeza entre UpdraftPlus e WP Optimize no WordPress
O que é conflito de backup entre UpdraftPlus e WP Optimize?
O conflito entre UpdraftPlus e WP Optimize aparece quando as rotinas de backup e de limpeza do banco de dados disputam o mesmo intervalo de tempo no WordPress. O UpdraftPlus tira uma copia consistente do banco e dos arquivos em intervalos agendados (a cada 2, 4 ou 8 horas, diario, semanal, quinzenal ou mensal, segundo a documentação da TeamUpdraft). O WP Optimize, do mesmo fabricante, faz a faxina do banco: remove revisoes de posts, rascunhos automaticos, comentarios de spam, itens na lixeira e transients expirados, e roda OPTIMIZE TABLE para reduzir o overhead das tabelas.
O problema não e um bug de código, e uma corrida de agendamento. Quando a limpeza do WP Optimize cai dentro da janela em que o UpdraftPlus esta copiando o banco, o backup pode capturar tabelas no meio da otimização, sair sem as linhas que o WP Optimize acabou de apagar, ou registrar erro de tabela travada. Como os dois agendamentos dependem do wp-cron do WordPress, que so dispara quando alguem acessa o site, as duas tarefas podem ser empurradas para o mesmo acesso e executar quase juntas.
Como identificar
- O log do UpdraftPlus registra a tarefa com aviso parecido com ‘The backup operation seems to have run out of time’ ou ‘A PHP fatal error occurred’ em backups que antes terminavam limpos.
- O backup do banco gerado pelo UpdraftPlus fica menor que o esperado ou não contem revisoes e dados que existiam pouco antes da limpeza do WP Optimize.
- O WP Optimize mostra a otimização concluida, mas o relatório do UpdraftPlus aponta backup incompleto ou tabela ausente no mesmo intervalo.
- Mensagem de banco do tipo ‘Table is marked as crashed’ ou erro de tabela travada (lock) surge logo após uma janela em que limpeza e backup rodaram juntos.
- Os horarios de execução de UpdraftPlus e WP Optimize no painel de cada plugin caem no mesmo intervalo do dia, com sobreposicao visivel nos logs.
Como prevenir
- Nunca agende a limpeza do WP Optimize e o backup do UpdraftPlus no mesmo horario: rode a limpeza primeiro e o backup depois, com folga de pelo menos uma hora entre eles.
- Troque o wp-cron padrão do WordPress por um cron real do servidor para que cada tarefa execute na hora marcada e não se empilhe em um único acesso ao site.
- Mantenha a frequencia da limpeza igual ou menor que a do backup, para que nenhum dado seja apagado antes de entrar em uma copia integra.
- Revise os logs do UpdraftPlus e do WP Optimize periodicamente para confirmar que as janelas de execução continuam separadas após atualizações dos plugins.
Causa
- Os agendamentos do UpdraftPlus e do WP Optimize estão configurados para o mesmo intervalo (por exemplo, ambos diarios sem hora fixa definida), fazendo a limpeza do banco cair dentro da janela em que o backup copia as tabelas.
- O WP Optimize esta com a limpeza automática agendada (revisoes, transients, spam e lixeira) e roda OPTIMIZE TABLE enquanto o UpdraftPlus le o banco, deixando o dump do backup com tabelas em estado intermediario.
- Os dois plugins dependem do wp-cron do WordPress, que so dispara em acesso ao site; um pico de visitas empilha backup e limpeza no mesmo disparo de cron e as tarefas executam quase simultaneamente.
- A regra de retencao da limpeza do WP Optimize apaga revisoes e rascunhos antes do backup terminar, de modo que o UpdraftPlus grava uma copia já sem esses dados e o restore posterior vem incompleto.
- Em tabelas MyISAM, o OPTIMIZE TABLE do WP Optimize aplica lock de escrita na tabela durante a otimização; se o UpdraftPlus tenta ler a mesma tabela nesse instante, o backup registra erro de tabela travada.
Como resolver
- Confira os horarios atuais dos dois plugins: Abra o agendamento de cada plugin e anote o intervalo configurado. No UpdraftPlus o agendamento fica em Configurações e no WP Optimize fica na aba de agendamento da limpeza. O objetivo e enxergar onde os dois se sobrepoem.
Painel WP -> Configurações -> UpdraftPlus Backups -> aba Configurações -> veja o intervalo de Arquivos e de Banco de Dados Painel WP -> WP-Optimize -> Banco de Dados -> aba Agendar -> veja o horario e a frequencia da limpeza - Separe os agendamentos em janelas diferentes: Coloque a limpeza do WP Optimize e o backup do UpdraftPlus em horarios distintos, com folga entre eles. Rode primeiro a limpeza e so depois o backup, para o UpdraftPlus copiar um banco já otimizado e estavel. Na versão Premium do UpdraftPlus você escolhe a hora exata de inicio.
WP-Optimize -> agende a limpeza para um horario de baixo tráfego (ex.: 02:00) UpdraftPlus -> agende o backup do banco para depois da limpeza (ex.: 04:00), nunca no mesmo horario - Desligue um real wp-cron por horario fixo: Como o wp-cron padrão so dispara em acesso ao site, troque-o por um cron real do servidor para que cada tarefa rode na hora marcada e não se empilhe. Desabilite o wp-cron interno no wp-config.php e crie um agendamento de sistema chamando o wp-cron.php.
Edite wp-config.php e adicione a linha de constante DISABLE_WP_CRON (veja o bloco de código abaixo) No painel da hospedagem crie um cron que acesse https://seusite.com/wp-cron.php a cada hora - Faça um backup manual e valide o conteúdo: Depois de separar os horarios, dispare um backup manual no UpdraftPlus e confira no log se ele terminou sem aviso de tempo esgotado ou tabela travada. Baixe o backup do banco e confirme que as tabelas estão presentes e completas.
UpdraftPlus -> aba Backup / Restaurar -> botão Fazer backup agora -> marque Banco de Dados Acompanhe o log até aparecer 'The backup apparently succeeded and is now complete' - Reative a limpeza automática de forma escalonada: Com os horarios separados e validados, mantenha a limpeza do WP Optimize em frequencia menor que a do backup, para nunca apagar dados que ainda não entraram em uma copia. Revise os logs por alguns dias para confirmar que não ha mais sobreposicao.
WP-Optimize -> mantenha a limpeza em frequencia igual ou menor que a do backup UpdraftPlus -> aba Backups existentes -> confirme backups completos por vários dias seguidos
<?php
// wp-config.php: desliga o wp-cron interno para usar um cron real do servidor.
// Adicione esta linha ANTES de /* That's all, stop editing! */
define( 'DISABLE_WP_CRON', true );
/*
* Depois, crie no painel da hospedagem um cron de sistema que rode na hora marcada:
* */15 * * * * wget -q -O - https://seusite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
* Assim backup (UpdraftPlus) e limpeza (WP Optimize) executam nos horarios
* agendados, sem se empilharem em um unico acesso ao site.
*/














