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.
-
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 escrituraEsto confirma que el error se debe a que el tamaño de la transacción supera el límite de Galera.
-
Cree una nueva copia de seguridad que especifique el parámetro
--max_allowed_packetpara permitir tamaños de datos más grandes y evitar transacciones de gran tamaño. El parámetroThe --max_allowed_packetdefine 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=64Mes 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 -
Al restaurar la copia de seguridad, especifique un valor
--max_allowed_packetmayor 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> -
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.