DokumentationCommerceKonfigurationshandbuch

Nur PaaS

Datenbankreplikation

Letzte Aktualisierung: 30. Dezember 2024
  • Themen:
  • Konfiguration

Erstellt für:

  • Experte
  • Admin
  • Entwickler
NOTE
Diese Funktion ist nur für Adobe Commerce-Instanzen verfügbar.
IMPORTANT
Die Funktion „Split Database wurde in2.4.2 von Adobe Commerce als veraltet gekennzeichnet. Siehe Von einer geteilten Datenbank auf eine einzelne Datenbank zurücksetzen.

Das Einrichten der Datenbankreplikation bietet die folgenden Vorteile:

  • Stellt Datensicherung bereit
  • Aktiviert die Datenanalyse ohne Beeinträchtigung der primären Datenbank
  • Skalierbarkeit

MySQL-Datenbanken werden asynchron repliziert, was bedeutet, dass Slaves nicht dauerhaft verbunden sein müssen, um Aktualisierungen vom Master zu erhalten.

Datenbankreplikation konfigurieren

Eine ausführliche Erläuterung der Datenbankreplikation würde den Rahmen dieses Handbuchs sprengen. Zur Einrichtung können Sie eine Ressource wie die folgende heranziehen:

  • MySQL-Dokumentation
  • Einrichten der Master-Slave-Replikation in MySQL (digitalocean)

Commerce bietet MySQL-Beispielkonfigurationen für Ihre Slave-Datenbanken. Eine einfache Konfiguration wird mit der ResourceConnections-Klasse README.md bereitgestellt.

Das folgende Kapitel ist weiter fortgeschritten und dient nur zu Ihrer 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' => '',
   ),
   //.......

Leistungsverbesserung

Um die Leistung der Master-Slave-Replikation zu verbessern, können Sie einige Tabellen auf Slave-Instanzen filtern. Es wird empfohlen, alle temporären Tabellen mit dem Namensmuster search\_tmp\_% zu filtern, die für die Katalogsuche verwendet werden.

Fügen Sie dazu die folgende Zeile in Ihre my.cnf-Datei auf Ihren Slave-Instanzen:

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