
mysqldump da loja rodando há quarenta minutos e o arquivo já passou de 12 GB. Antes de culpar o servidor, meça report_event, report_viewed_product_index e cron_schedule: em loja com um ano de estrada elas costumam ser metade do dump e não valem um byte de backup.
SELECT table_name, ROUND((data_length + index_length) / 1024 / 1024) AS mb
FROM information_schema.tables
WHERE table_schema = 'magento'
ORDER BY (data_length + index_length) DESC
LIMIT 15; A ideia é simples: estrutura de todas as tabelas, dados só das que importam. O Magento recria o conteúdo das descartáveis sozinho na primeira requisição e no primeiro cron. Essa é a lista que eu uso no 2.4.7 e no 2.4.8.
DB=magento
LIXO="report_event report_viewed_product_index report_compared_product_index
catalog_compare_item customer_visitor customer_log cron_schedule
adminnotification_inbox"
IGN=""
for T in $LIXO; do IGN="$IGN --ignore-table=$DB.$T"; done
mysqldump --single-transaction --quick --no-tablespaces $IGN $DB > dados.sql
mysqldump --single-transaction --no-tablespaces --no-data $DB $LIXO > vazias.sql O search_query ficou fora da lista de propósito: tem cara de log, mas é lá que moram os redirecionamentos e a flag de termo sugerido que alguém configurou em Marketing > Termos de Busca. Isso é configuração, não lixo.
Para restaurar, mande os dois na ordem: cat vazias.sql dados.sql | mysql magento. Faça isso num banco vazio ou de teste: o dump traz um DROP TABLE por tabela e apaga o que já estiver lá antes de você perceber.
O --no-tablespaces é obrigatório quando o usuário do dump não tem o privilégio PROCESS — sem ele o mysqldump 8 aborta com Access denied logo na primeira tabela. E se o servidor usa GTID, acrescente --set-gtid-purged=OFF, senão o arquivo sai com um SET GLOBAL gtid_purged que trava a importação em outra máquina.
Fecha o pacote com os arquivos de configuração: tar czf config.tar.gz app/etc/env.php app/etc/config.php. Backup de Magento sem o env.php é backup inútil — a crypt key mora lá dentro, e sem ela nada que está criptografado no banco volta a abrir.
Uma função curta em PHP 8.3 que transforma Camiseta Preta Tamanho GG em camiseta-preta-tamanho-gg, sem depender do locale do servidor.
O banner registra o clique só no navegador e some. Veja a tabela MySQL e o endpoint que gravam a…
A classe do comando existe e o bin/magento list ignora ela. Falta o registro no di.xml: aqui vai a classe…
Como traduzir duas mil linhas do pt_BR.csv do Magento 2 lendo com fgetcsv e regravando com fputcsv, sem encostar na…
Produto variável respondendo "Desculpe, este produto não está disponível" mesmo com a variação ativa: limpe os transients do WooCommerce e…
O site responde 503 com "Momentaneamente indisponível para manutenção programada" depois de um update interrompido. Apague o .maintenance e feche…