文件首頁
MySQL Shell 8.4
下載本手冊
PDF (美式信紙) - 2.2Mb
PDF (A4) - 2.3Mb


MySQL Shell 8.4  /  MySQL InnoDB Cluster  /  InnoDB Cluster 需求

7.1 InnoDB Cluster 需求

在安裝 InnoDB Cluster 的生產環境部署之前,請確定您打算使用的伺服器執行個體符合下列需求。

  • InnoDB Cluster 使用群組複寫,因此您的伺服器執行個體必須符合相同的需求。請參閱群組複寫需求。AdminAPI 提供 dba.checkInstanceConfiguration() 方法來驗證執行個體是否符合群組複寫需求,並提供 dba.configureInstance() 方法來設定執行個體以符合需求。

    注意

    使用沙箱部署時,會自動設定執行個體以符合這些需求。

  • 搭配群組複寫使用的資料,因此也包括搭配 InnoDB Cluster 使用的資料,必須儲存在 InnoDB 交易式儲存引擎中。使用其他儲存引擎 (包括暫時的 MEMORY 儲存引擎) 可能會在群組複寫中造成錯誤。在將執行個體與群組複寫和 InnoDB Cluster 搭配使用之前,請先轉換其他儲存引擎中的任何表格以使用 InnoDB。您可以藉由在伺服器執行個體上設定 disabled_storage_engines 系統變數來防止使用其他儲存引擎,例如

    disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
  • 當您設定叢集時,任何伺服器執行個體都不能有內送複寫通道。群組複寫自動建立的通道 (group_replication_appliergroup_replication_recovery) 允許在正在採用的複寫群組上使用。InnoDB Cluster 不支援在 AdminAPI 管理的通道以外,手動設定的非同步複寫通道。如果您正在將現有的複寫拓樸移轉至 InnoDB Cluster 部署,並且需要在設定過程中暫時略過此驗證,您可以在建立叢集時使用 force 選項來略過它。

  • group_replication_tls_source 不得設定為 mysql_admin

  • 在您想要與 InnoDB Cluster 搭配使用的任何執行個體上,都必須啟用效能結構描述。

  • MySQL Shell 用來設定伺服器以供 InnoDB Cluster 使用的佈建指令碼需要存取 Python。在 Windows 上,MySQL Shell 包含 Python,且不需要使用者組態。在 Unix 上,必須將 Python 作為 Shell 環境的一部分找到。若要檢查您的系統是否已正確設定 Python,請發出

    $ /usr/bin/env python

    如果 Python 直譯器啟動,則不需要進一步的動作。如果先前的命令失敗,請在 /usr/bin/python 和您選擇的 Python 二進位檔之間建立軟連結。如需詳細資訊,請參閱支援的語言

  • 執行個體必須在 InnoDB Cluster 內使用唯一的 server_id。當您使用 Cluster.addInstance(instance) 作業時,如果叢集中的執行個體已使用 instanceserver_id,則作業會失敗並出現錯誤。

  • 應該將執行個體設定為使用平行複寫應用程式。請參閱第 7.5.6 節,〈設定平行複寫應用程式〉

  • 在設定執行個體以供 InnoDB Cluster 使用的過程中,會設定使用執行個體所需的大部分系統變數。但 AdminAPI 不會設定 transaction_isolation 系統變數,這表示預設值為 REPEATABLE READ。這不會影響單一主要叢集,但如果您使用的是多重主要叢集,除非您在應用程式中依賴 REPEATABLE READ 語意,否則我們建議使用 READ COMMITTED 隔離層級。請參閱群組複寫限制

  • 執行個體的相關組態選項 (尤其是群組複寫組態選項) 必須位於單一選項檔案中。InnoDB Cluster 僅支援伺服器執行個體的單一選項檔案,並且不支援使用 --defaults-extra-file 選項來指定額外的選項檔案。對於使用執行個體選項檔案的任何 AdminAPI 作業,都必須指定主要檔案。如果您想要使用多個選項檔案來設定與 InnoDB Cluster 無關的組態選項,您必須手動設定這些檔案、確保它們已根據使用多個選項檔案的優先順序規則正確更新,並確保與 InnoDB Cluster 相關的設定不會被其他未辨識的選項檔案中的選項錯誤覆寫。