資料庫復寫

NOTE
此功能僅適用於Adobe Commerce執行個體。
IMPORTANT
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