Resolver falha de restauração do banco de dados: ERRO 1105 (HY000) - Tamanho máximo do conjunto de dados excedido no Adobe Commerce Cloud
Ao restaurar um backup do MariaDB em um cluster Galera, você pode encontrar o erro Tamanho máximo de conjunto de dados excedido devido a um limite de tamanho de transação de 2 GB. Este artigo fornece uma solução passo a passo para ajustar os comandos de backup e restauração para lidar com transações maiores, garantindo um processo de restauração bem-sucedido.
Descrição description
Ambiente
Adobe Commerce Cloud
Esse problema ocorre em um ambiente de cluster MariaDB Galera.
Problema/Sintomas
Quando você tenta restaurar um backup do banco de dados MariaDB em um cluster Galera, o processo pode falhar com o seguinte erro:
ERRO 1105 (HY000) na linha [ número de linha específico]: Tamanho máximo de conjunto de gravação excedido
Causa
A variável de sistema wsrep_max_ws_size do cluster Galera define um tamanho máximo de conjunto de gravação de 2 GB. Se um backup incluir linhas grandes ou dados binários que excedam esse tamanho, o processo de restauração falhará.
Resolução resolution
Para corrigir esse problema, ajuste o processo de backup para evitar transações grandes aumentando o tamanho de --max_allowed_packet. Isso permite que o servidor MySQL manipule linhas maiores ou dados binários durante as operações de backup e restauração. Lembre-se de sempre testar em um ambiente de não produção.
-
Identifique a causa exata do erro nos logs de erro do MySQL. Procurar mensagens semelhantes a:
ERRO 1105 (HY000) na linha
[número de linha específico]: Tamanho máximo de conjunto de gravação excedidoIsso confirma que o erro se deve ao tamanho da transação que excede o limite do Galera.
-
Crie um novo backup especificando o parâmetro
--max_allowed_packetpara permitir tamanhos de dados maiores e evitar transações muito grandes. O parâmetroThe --max_allowed_packetdefine o tamanho máximo dos pacotes de dados que o servidor pode processar durante a comunicação com um cliente. O aumento desse tamanho ajuda a lidar com linhas ou objetos maiores, o que impede a divisão de transações e conjuntos de gravações superdimensionados. Para a maioria dos cenários,--max_allowed_packet=64Mé suficiente. Ajuste este valor para — max_allowed_packet=128M se seu banco de dados contém linhas muito grandes ou dados binários. Além disso, use a compactação (por exemplo, gzip) para reduzir o tamanho do arquivo.
Exemplo de comando de backup:code language-none mysqldump -h <host> -u <username> -p <password> --single-transaction --max_allowed_packet=64M <db_name> | gzip > /tmp/<dump_name>.sql.gz -
Ao restaurar o backup, especifique um valor
--max_allowed_packetaumentado para garantir a compatibilidade com o backup modificado.
Exemplo de comando Restore:zcat /tmp/<dump_name>.sql.gz | sed -e 's/DEFINER[ ] *=[ ] *[ *] *\*/\*/' | mysql --host=127.0.0.1 -u <username> -p <password> -
Depois de restaurar o backup, confirme se o processo foi concluído sem erros. Verifique os logs para garantir que não haja avisos ou anomalias.
Leitura relacionada
wsrep_max_ws_size em Variáveis do Sistema de Cluster Galera na documentação do MariaDB.