文件首頁
MySQL Shell 9.0
下載本手冊
PDF (US Ltr) - 2.3Mb
PDF (A4) - 2.3Mb


MySQL Shell 9.0  /  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 相關的設定不會被其他無法辨識的選項檔案中的選項錯誤地覆寫。