Échec de la résolution de la restauration de la base de données : ERREUR 1105 (HY000) - Taille maximale de l’ensemble d’écriture dépassée sur Adobe Commerce Cloud
Lors de la restauration d’une sauvegarde MariaDB sur un cluster Galera, vous pouvez rencontrer l’erreur Taille maximale de l’ensemble d’écriture dépassée en raison d’une limite de taille de transaction de 2 Go. Cet article fournit une solution étape par étape pour ajuster les commandes de sauvegarde et de restauration afin de gérer des transactions plus volumineuses, assurant ainsi un processus de restauration réussi.
Description description
Environnement
Adobe Commerce Cloud
Ce problème se produit dans un environnement de cluster MariaDB Galera.
Problème/Symptômes
Lorsque vous tentez de restaurer une sauvegarde de la base de données MariaDB sur un cluster Galera, le processus peut échouer avec l’erreur suivante :
ERROR 1105 (HY000) à la ligne [ numéro de ligne spécifique] : taille maximale du jeu d’écriture dépassée
Cause
La variable système wsrep_max_ws_size du cluster Galera définit une taille maximale de jeu d’écriture de 2 Go. Si une sauvegarde comprend des lignes volumineuses ou des données binaires qui dépassent cette taille, le processus de restauration échoue.
Résolution resolution
Pour résoudre ce problème, ajustez le processus de sauvegarde afin d’éviter les transactions volumineuses en augmentant la taille du --max_allowed_packet. Cela permet au serveur MySQL de gérer des lignes plus volumineuses ou des données binaires pendant les opérations de sauvegarde et de restauration. N’oubliez pas de toujours effectuer le test dans un environnement hors production.
-
Identifiez la cause exacte de l’erreur à partir des journaux d’erreurs MySQL. Recherchez des messages similaires à :
ERROR 1105 (HY000) à la ligne
[numéro de ligne spécifique]: taille maximale du jeu d’écriture dépasséeCela confirme que l’erreur est due au fait que la taille de la transaction dépasse la limite de Galera.
-
Créez une sauvegarde spécifiant le paramètre
--max_allowed_packetpour autoriser des tailles de données plus volumineuses et empêcher les transactions trop volumineuses.The --max_allowed_packetparamètre définit la taille maximale des paquets de données que le serveur peut traiter lors de la communication avec un client. L’augmentation de cette taille permet de gérer des lignes ou des objets plus volumineux, ce qui empêche le fractionnement des transactions et les jeux d’écriture surdimensionnés. Dans la plupart des scénarios,--max_allowed_packet=64Mest suffisant. Définissez cette valeur sur —max_allowed_packet=128M si votre base de données contient des lignes très volumineuses ou des données binaires. Utilisez également la compression (par exemple, gzip) pour réduire la taille du fichier.
Exemple de commande de sauvegarde :code language-none mysqldump -h <host> -u <username> -p <password> --single-transaction --max_allowed_packet=64M <db_name> | gzip > /tmp/<dump_name>.sql.gz -
Lors de la restauration de la sauvegarde, spécifiez une valeur de
--max_allowed_packetaugmentée pour garantir la compatibilité avec la sauvegarde modifiée.
Exemple de commande de restauration :zcat /tmp/<dump_name>.sql.gz | sed -e 's/DEFINER[ ] *=[ ] *[ *] *\*/\*/' | mysql --host=127.0.0.1 -u <username> -p <password> -
Après avoir restauré la sauvegarde, confirmez que le processus s’est terminé sans erreur. Vérifiez les journaux pour vous assurer qu’aucun avertissement ou anomalie n’est présent.
Lectures connexes
wsrep_max_ws_size dans Variables système de cluster Galera dans la documentation MariaDB.