[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

Réplication de la base de données

NOTE
Cette fonctionnalité est disponible uniquement pour les instances Adobe Commerce.
IMPORTANT
La fonctionnalité de base de données partagée était obsolète dans la version 2.4.2 d’Adobe Commerce. Voir Rétablir une base de données fractionnée en une seule base de données.

La configuration de la réplication de base de données présente les avantages suivants :

  • Sauvegarde des données
  • Permet l'analyse des données sans affecter la base de données principale
  • Évolutivité

Les bases de données MySQL se répliquent de manière asynchrone, ce qui signifie que les esclaves n’ont pas besoin d’être connectés en permanence pour recevoir les mises à jour du maître.

Configuration de la réplication de la base de données

Une discussion approfondie sur la réplication de base de données dépasse le cadre de ce guide. Pour le configurer, vous pouvez consulter une ressource telle que :

Commerce fournit des exemples de configuration MySQL pour vos bases de données esclaves. Une configuration simple est fournie avec le ResourceConnections de classe README.md.

Les éléments suivants sont plus avancés et sont fournis uniquement à titre d’information :

   return array (
      //...
      'db' =>
         array (
            'connection' =>
               array (
                  'indexer' =>
                     array (
                        'host' => 'default-master-host',
                        'dbname' => 'magento',
                        'username' => 'magento',
                        'password' => 'magento',
                        'active' => '1',
                        'persistent' => NULL,
                     ),
                  'default' =>
                     array (
                        'host' => 'default-master-host',
                        'dbname' => 'magento',
                        'username' => 'magento',
                        'password' => 'magento',
                        'active' => '1',
                     ),
                  'checkout' =>
                     array (
                        'host' => 'checkout-master-host',
                        'dbname' => 'checkout',
                        'username' => 'magento',
                        'password' => 'magento',
                        'model' => 'mysql4',
                        'engine' => 'innodb',
                        'initStatements' => 'SET NAMES utf8;',
                        'active' => '1',
                     ),
                  'sales' =>
                     array (
                        'host' => 'sales-master-host',
                        'dbname' => 'sales',
                        'username' => 'magento',
                        'password' => 'magento',
                        'model' => 'mysql4',
                        'engine' => 'innodb',
                        'initStatements' => 'SET NAMES utf8;',
                        'active' => '1',
                     ),
               ),
            'slave_connection' =>
               array (
                  'default' =>
                     array (
                        'host' => 'default-slave-host',
                        'dbname' => 'magento',
                        'username' => 'read_only',
                        'password' => 'password',
                        'active' => '1',
                     ),
                  'checkout' =>
                     array (
                        'host' => 'checkout-slave-host',
                        'dbname' => 'checkout',
                        'username' => 'read_only',
                        'password' => 'password',
                        'model' => 'mysql4',
                        'engine' => 'innodb',
                        'initStatements' => 'SET NAMES utf8;',
                        'active' => '1',
                     ),
                  'sales' =>
                     array (
                        'host' => 'sales-slave-host',
                        'dbname' => 'sales',
                        'username' => 'read_only',
                        'password' => 'password',
                        'model' => 'mysql4',
                        'engine' => 'innodb',
                        'initStatements' => 'SET NAMES utf8;',
                        'active' => '1',
                     ),
                  ),
               'table_prefix' => '',
   ),
   //.......

Amélioration des performances

Pour améliorer les performances de la réplication maître-esclave, vous pouvez filtrer certaines tables sur les instances esclaves. Nous vous recommandons de filtrer toutes les tables temporaires avec des search\_tmp\_% de modèle de nom utilisées pour la recherche catalogue.

Pour ce faire, ajoutez la ligne suivante à votre fichier my.cnf sur vos instances esclaves :

replicate-wild-ignore-table=%.search\_tmp\_%
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c