在安裝 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_applier
和group_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
)instance
的server_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 相關的設定不會被其他未辨識的選項檔案中的選項錯誤覆寫。