ドキュメントCommerce設定ガイド

PaaS のみ

データベースレプリケーション

最終更新日: 2024年7月15日
  • トピック:
  • 設定

作成対象:

  • 経験者
  • 管理者
  • 開発者
メモ
この機能は、Adobe Commerce インスタンスでのみ使用できます。
重要
Adobe Commerceのバージョン 2.4.2 では、分割データベース機能は 非推奨となりました。 分割データベースから単一データベースへの復帰を参照してください。

データベースレプリケーションを設定すると、次の利点があります。

  • データのバックアップを提供
  • マスターデータベースに影響を与えずにデータ分析を有効にします
  • 拡張性

MySQL データベースは非同期でレプリケートするので、スレーブがマスターから更新を受け取るために永続的に接続される必要はありません。

データベースレプリケーションの設定

データベースレプリケーションの詳細については、このガイドの範囲外です。 設定するには、次のようなリソースを参照します。

  • MySQL のドキュメント
  • MySQL でマスタースレーブレプリケーションを設定する方法(digitalocean)

Commerceは、スレーブデータベース用の MySQL 設定のサンプルを提供します。 ResourceConnections クラス README.md では、簡単な設定が提供されます。

より高度な次の説明は、情報提供のみを目的としています。

   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' => '',
   ),
   //.......

パフォーマンスの向上

マスタースレーブレプリケーションのパフォーマンスを向上させるために、スレーブインスタンス上の一部のテーブルをフィルタリングできます。 カタログ検索に使用する名前パターン search\_tmp\_% を持つすべての一時テーブルをフィルタリングすることをお勧めします。

これを行うには、スレーブインスタンスの my.cnf ファイルに次の行を追加します。

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