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

  1. 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ée

    Cela confirme que l’erreur est due au fait que la taille de la transaction dépasse la limite de Galera.

  2. Créez une sauvegarde spécifiant le paramètre --max_allowed_packet pour autoriser des tailles de données plus volumineuses et empêcher les transactions trop volumineuses. The --max_allowed_packet paramè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=64M est 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
    
  3. Lors de la restauration de la sauvegarde, spécifiez une valeur de --max_allowed_packet augmenté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>

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

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