# Como corrigir o backup de banco de dados grande que falha no UpdraftPlus

O UpdraftPlus que não faz backup de banco grande trava numa tabela pesada (em geral wp_posts ou wp_options), expira por falta de memória PHP ou para porque o scheduler do WordPress não consegue agendar a retomada. O backup fica preso na mesma porcentagem e nunca chega ao arquivo final.

## O que é a falha de backup de banco grande no UpdraftPlus?

O UpdraftPlus faz o backup do banco lendo cada tabela e gravando um dump compactado em wp-content/updraft. Em sites grandes, esse dump precisa de memória e tempo para ler tabelas pesadas e fechar o zip. Quando o backup do banco não conclui, o processo para no meio: ou a memória PHP estoura ao ler uma tabela grande, ou o servidor corta a execução antes do fim e o scheduler do WordPress não retoma o trabalho. O resultado e um backup do banco incompleto, sem o arquivo db.gz final.

## Como identificar

- O backup trava numa porcentagem fixa durante a etapa do banco e nunca avanca (ex.: para em "Creating database backup" ou na tabela wp_posts).
- O log do UpdraftPlus registra "fatal error: allowed memory size of ... bytes exhausted" enquanto le uma tabela do banco.
- O log mostra a mensagem "The backup apparently succeeded and is now complete" nunca aparecendo, com a tarefa reiniciando do zero a cada retomada.
- Falta o arquivo backup_...-db.gz na lista do UpdraftPlus, mesmo com os arquivos de plugins, temas e uploads concluidos.

**Antes de começar:** Edite o wp-config.php sempre com uma copia do arquivo original salva localmente: um erro de digitacao numa constante PHP derruba o site inteiro com erro crítico, e a copia e o que permite voltar atras em segundos.

## Como prevenir

- Otimize o banco em rotina (revisoes, transients e lixeira) para manter wp_posts e wp_options enxutos e o dump leve.
- Mantenha WP_MEMORY_LIMIT em 256M ou mais no wp-config.php do site, dentro do teto de memória PHP da hospedagem.
- Deixe o split de arquivos do UpdraftPlus em um valor que o servidor aguente fechar (ex.: 200M) em vez do padrão de 1Gb.

Erros relacionados

- [Como corrigir o erro de tamanho de backup que excede o limite no UpdraftPlus](https://full.services/wp-fixer/corrigir-tamanho-backup-limite-updraftplus/)
- [Como corrigir backup que falha no UpdraftPlus](https://full.services/wp-fixer/corrigir-backup-falho-updraftplus/)
- [Como corrigir backup do WordPress que falha ao restaurar](https://full.services/wp-fixer/corrigir-backup-falha-restaurar-wordpress/)

## Causa

- Memória PHP insuficiente para ler uma tabela grande do banco: o WP_MEMORY_LIMIT esta abaixo de 256M e o UpdraftPlus estoura ao processar wp_posts ou wp_postmeta.
- Tabela inchada por dados que não foram limpos: revisoes, lixeira, spam e transients acumulados em wp_options e wp_posts deixam o dump grande demais para fechar em uma execução.
- Scheduler do WordPress sem retomada: loopback bloqueado pela hospedagem ou DISABLE_WP_CRON em wp-config.php impede o UpdraftPlus de reagendar a continuacao quando o servidor corta o tempo.
- Limite de tempo do servidor (max_execution_time baixo ou timeout do webserver) encerra o processo PHP antes de o dump do banco terminar de gravar.
- Tamanho do arquivo único acima do que a hospedagem aceita: o split do UpdraftPlus em Expert settings esta no padrão de 1Gb e o servidor barra o dump antes de fecha-lo.

## Como resolver

1. Suba o limite de memória do WordPress: Aumente o limite de memória para o UpdraftPlus conseguir ler tabelas grandes sem estourar. Edite o wp-config.php pelo gerenciador de arquivos ou FTP e adicione a constante antes da linha que pede para parar de editar.

```
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
```

2. Limpe e otimize o banco antes do backup: Reduza o tamanho das tabelas removendo revisoes, lixeira, spam e transients. Pelo WP-Optimize, va em WP-Optimize -> Database e rode todas as otimizacoes selecionadas para encolher wp_posts e wp_options antes de tentar o backup de novo.

```
WP-Optimize -> Database -> Run all selected optimizations
wp transient delete --all
wp post delete $(wp post list --post_status=trash --format=ids) --force
```

3. Garanta a retomada do backup pelo scheduler: O UpdraftPlus depende do cron do WordPress para retomar o trabalho quando o servidor corta o tempo. Se o loopback estiver bloqueado, force o cron alternativo no wp-config.php para a retomada acontecer.

```
define( 'ALTERNATE_WP_CRON', true );
```

4. Divida o backup em arquivos menores: Em UpdraftPlus -> Settings -> Expert settings, baixe o limite de divisao do arquivo (padrão de 1Gb) para algo como 200M. Arquivos menores fecham antes do servidor cortar o tempo e contornam limites de tamanho da hospedagem.

```
UpdraftPlus -> Settings -> Expert settings -> Split archives every: 200 MB
```

5. Confira memória e tempo no Site Health: Verifique os valores reais aplicados antes de concluir. Em Tools -> Site Health -> Info, confira WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT e o max_execution_time do servidor para confirmar que a folga foi aplicada de fato.

```
Tools -> Site Health -> Info -> WordPress Constants
```


## Código

```php
// wp-config.php — folga de memoria + retomada do backup do UpdraftPlus
// Cole acima da linha: /* Isso e tudo, pare de editar! */

define( 'WP_MEMORY_LIMIT', '256M' );      // memoria para ler tabelas grandes
define( 'WP_MAX_MEMORY_LIMIT', '512M' );  // teto para tarefas pesadas (backup)
define( 'ALTERNATE_WP_CRON', true );      // garante a retomada quando o loopback e bloqueado
```

## Perguntas frequentes

### Por que o UpdraftPlus trava sempre na tabela wp_posts?

Porque wp_posts guarda posts, páginas e revisoes e costuma ser a maior tabela do banco. Quando a memória PHP não da conta de le-la, o backup para ali. Suba o WP_MEMORY_LIMIT para 256M e limpe revisoes e lixeira com o WP-Optimize para reduzir o tamanho da tabela.

### Aumentar a memória PHP resolve o backup do banco grande?

Na maioria dos casos de tabela pesada, sim. Ler e compactar um banco grande consome memória, e o UpdraftPlus estoura quando o limite e baixo. Subir o WP_MEMORY_LIMIT para 256M ou mais no wp-config.php, dentro do teto da hospedagem, da folga para o dump concluir sem o erro de memória esgotada.

### O backup do banco reinicia do zero a cada tentativa. O que fazer?

Isso indica que o scheduler do WordPress não consegue retomar o trabalho quando o servidor corta o tempo, geralmente por loopback bloqueado. Adicione ALTERNATE_WP_CRON como true no wp-config.php para o UpdraftPlus reagendar a continuacao em vez de comecar tudo de novo.

### Devo dividir o backup em arquivos menores?

Sim, em sites grandes. No UpdraftPlus o split padrão comeca um novo arquivo a cada 1Gb. Baixar esse valor em Expert settings para algo como 200M faz cada arquivo fechar antes de o servidor cortar o tempo e contorna limites de tamanho de arquivo da hospedagem.

### Como limpo o banco para o backup ficar mais leve?

Remova o que não precisa virar backup: revisoes de posts, comentarios de spam, itens na lixeira e transients expirados. O WP-Optimize faz isso em WP-Optimize -> Database com Run all selected optimizations, encolhendo wp_posts e wp_options antes de rodar o backup de novo.

### Posso fazer o backup sem incluir uma tabela enorme?

Pode. O UpdraftPlus permite excluir tabelas especificas do backup, útil quando uma tabela de log ou de cache de plugin esta inchada e não precisa ser preservada. Exclua a tabela problematica para o dump do banco concluir e mantenha as tabelas essenciais no backup.

### Falta so o arquivo db.gz no backup. O que houve?

Os arquivos de plugins, temas e uploads concluiram, mas a etapa do banco falhou por memória ou tempo. Suba o WP_MEMORY_LIMIT, otimize o banco e rode o backup de novo: o UpdraftPlus refaz a etapa do banco e gera o backup_...-db.gz que estava faltando.

### Preciso de espaco livre em disco para o backup grande?

Sim. O UpdraftPlus grava o dump e o zip em wp-content/updraft antes de enviar ao destino remoto, entao precisa de espaco livre proporcional ao tamanho do banco e dos arquivos. Sem espaco suficiente, a gravacao do dump falha no meio. Libere disco ou reduza o site antes de tentar.

**Fonte:** [UpdraftPlus — Why is my backup getting stuck on the wp_posts database table?](https://teamupdraft.com/documentation/updraftplus/topics/backing-up/troubleshooting/backup-getting-stuck-on-the-wp_posts-database-table/)
