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.

  1. 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 excedido

    Isso confirma que o erro se deve ao tamanho da transação que excede o limite do Galera.

  2. Crie um novo backup especificando o parâmetro --max_allowed_packet para permitir tamanhos de dados maiores e evitar transações muito grandes. O parâmetro The --max_allowed_packet define 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
    
  3. Ao restaurar o backup, especifique um valor --max_allowed_packet aumentado 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>

  4. 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.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f