Resolver error de restauración de base de datos: ERROR 1105 (HY000): tamaño máximo de conjunto de escritura superado en Adobe Commerce Cloud

Al restaurar una copia de seguridad de MariaDB en un clúster de Galera, puede encontrar el error Tamaño máximo del conjunto de escritura superado debido a un límite de tamaño de transacción de 2 GB. Este artículo proporciona una solución paso a paso para ajustar los comandos de copia de seguridad y restauración para gestionar transacciones más grandes, lo que garantiza un proceso de restauración correcto.

Descripción description

Entorno

Adobe Commerce Cloud

Este problema se produce en un entorno de clúster MariaDB Galera.

Problema/Síntomas

Cuando intenta restaurar una copia de seguridad de la base de datos MariaDB en un clúster de Galera, el proceso puede fallar con el siguiente error:

ERROR 1105 (HY000) en la línea [ número de línea específico] : Se superó el tamaño máximo del conjunto de escritura

Causa

La variable de sistema wsrep_max_ws_size del clúster de Galera establece un tamaño máximo de conjunto de escritura de 2 GB. Si una copia de seguridad incluye filas grandes o datos binarios que superen este tamaño, el proceso de restauración falla.

Resolución resolution

Para solucionar este problema, ajuste el proceso de copia de seguridad para evitar transacciones grandes aumentando el tamaño de --max_allowed_packet. Esto permite al servidor MySQL gestionar filas más grandes o datos binarios durante las operaciones de copia de seguridad y restauración. Recuerde realizar siempre las pruebas en un entorno que no sea de producción.

  1. Identifique la causa exacta del error en los registros de errores de MySQL. Busque mensajes similares a:

    ERROR 1105 (HY000) en la línea [ número de línea específico] : Se superó el tamaño máximo del conjunto de escritura

    Esto confirma que el error se debe a que el tamaño de la transacción supera el límite de Galera.

  2. Cree una nueva copia de seguridad que especifique el parámetro --max_allowed_packet para permitir tamaños de datos más grandes y evitar transacciones de gran tamaño. El parámetro The --max_allowed_packet define el tamaño máximo de paquetes de datos que el servidor puede procesar durante la comunicación con un cliente. El aumento de este tamaño ayuda a gestionar filas u objetos más grandes, lo que evita la división de transacciones y los conjuntos de escritura de gran tamaño. Para la mayoría de los escenarios, --max_allowed_packet=64M es suficiente. Ajuste este valor a —max_allowed_packet=128M si la base de datos contiene filas o datos binarios muy grandes. Además, utilice la compresión (por ejemplo, gzip) para reducir el tamaño del archivo.
    Ejemplo del comando Copia de seguridad:

    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. Al restaurar la copia de seguridad, especifique un valor --max_allowed_packet mayor para garantizar la compatibilidad con la copia de seguridad modificada.
    Ejemplo del comando Restaurar:

    zcat /tmp/<dump_name>.sql.gz | sed -e 's/DEFINER[ ] *=[ ] *[ *] *\*/\*/' | mysql --host=127.0.0.1 -u <username> -p <password>

  4. Después de restaurar la copia de seguridad, confirme que el proceso se completa sin errores. Compruebe los registros para asegurarse de que no hay advertencias ni anomalías.

Lectura relacionada

wsrep_max_ws_size en las variables del sistema de clústeres de Galera en la documentación de MariaDB.

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