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
通訊堆疊。
-
localAddress
XCOM
:(進階選項,不建議) 自動產生。需要額外的網路位址或連接埠。-
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
。