InnoDB Cluster 和 ClusterSet 支援 MySQL 8.0.27 中為群組複寫引入的 MySQL 通訊堆疊。
新選項 communicationStack: XCOM|MYSQL 會設定群組複寫系統變數 group_replication_communication_stack 的值。
無法將 communicationStack 選項與 adoptfromGR 搭配使用。
支援以下通訊堆疊
-
MYSQL:(MySQL Server 8.0.27 或更新版本的預設值)
透過使用 MySQL Server 的連線安全性來取代群組複寫實作,簡化 InnoDB Cluster 的建立。
移除內部群組複寫通訊的額外網路位址或連接埠的需求。
使用 MYSQL 通訊協定表示可以使用標準的使用者驗證方法來授與或撤銷對群組的存取權,取代允許清單。
支援群組複寫的網路命名空間。
Oracle 建議使用
MYSQL通訊堆疊,而不是XCOM。 -
XCOM:(MySQL Server 8.0.26 或更早版本的預設值)。您可以在 MySQL 8.0.27 或更高版本中使用 XCOM 通訊堆疊,但必須在建立或重新啟動命令中明確定義。
XCOM 使用群組複寫實作的安全通訊協定 (包括 TLS/SSL) 以及使用允許清單進行傳入的群組通訊系統 (GCS) 連線,來保護成員之間的群組通訊連線和分散式復原連線。
通訊堆疊選取是由 dba.createCluster() 和 <clusterSet>.createReplicaCluster() 命令中的 communicationStack 選項所設定。
例如
js> dba.createCluster("testCluster", {communicationStack: "mysql"})
js> clusterset.createReplicaCluster("hostname:3306", "replica", {communicationStack: "mysql"})
每個命令都會檢查 MySQL 伺服器,以確保它可以使用 MYSQL 通訊協定。如果它不支援 MYSQL,則會顯示錯誤且命令會失敗。
addInstance、rejoinInstance 和 rescan 命令也會檢查目標執行個體的通訊堆疊支援,並據此設定所需的組態選項。
-
ipAllowList.XCOM:預設會自動設定。MYSQL:取消設定。ipAllowList不允許使用MYSQL通訊堆疊。
-
localAddressXCOM:(進階選項,不建議) 自動產生。需要額外的網路位址或連接埠。-
MYSQL:自動更新以使用 MySQL 伺服器報告的值。可以手動定義
localAddress,但連接埠必須是 MySQL 正在接聽的連接埠,如bind_address所定義。
更新 SSL 設定。相同的 SSL 設定會用於兩種通訊協定。
可以在完整停機作業的重新啟動期間切換通訊堆疊。
例如
js> dba.rebootClusterFromCompleteOutage("testcluster", {switchCommunicationStack: "mysql"})
從 MYSQL 通訊協定切換到 XCOM 需要額外用於 localAddress 的網路位址,而且可能還需要 ipAllowList 值。
如果從 XCOM 切換到 MYSQL 堆疊,則會進行以下變更
ipAllowList已取消設定。localAddress已更新為使用 MySQL 伺服器報告的值。-
更新 SSL 設定。如果
memberSslMode設定為 VERIFY_CA 或 VERIFY_IDENTITY,則設定會從 MySQL 伺服器複製。如果memberSslMode設定為 REQUIRED,則不會進行任何變更。注意如果
memberSslMode設定為 DISABLED 以外的任何值,則一律啟用group_replication_recovery_use_ssl。