データベースレプリケーション
最終更新日: 2024年7月15日
- トピック:
- 設定
作成対象:
- 経験者
- 管理者
- 開発者
この機能は、Adobe Commerce インスタンスでのみ使用できます。
Adobe Commerceのバージョン 2.4.2 では、分割データベース機能は 非推奨となりました。 分割データベースから単一データベースへの復帰を参照してください。
データベースレプリケーションを設定すると、次の利点があります。
- データのバックアップを提供
- マスターデータベースに影響を与えずにデータ分析を有効にします
- 拡張性
MySQL データベースは非同期でレプリケートするので、スレーブがマスターから更新を受け取るために永続的に接続される必要はありません。
データベースレプリケーションの設定
データベースレプリケーションの詳細については、このガイドの範囲外です。 設定するには、次のようなリソースを参照します。
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