InnoDB 叢集和 ClusterSet 支援 MySQL 8.0.27 中為群組複寫引入的 MySQL 通訊堆疊。
新選項 communicationStack: XCOM|MYSQL
會設定群組複寫系統變數 group_replication_communication_stack
的值。
無法將 communicationStack
選項與 adoptfromGR
搭配使用。
支援下列通訊堆疊
-
MYSQL:(MySQL Server 8.0.27 或更新版本的預設值)
藉由使用 MySQL 伺服器的連線安全性取代群組複寫實作,簡化 InnoDB 叢集的建立。
無需額外的網路位址或連接埠進行內部群組複寫通訊。
使用 MYSQL 通訊協定表示可以使用標準使用者驗證方法來授與或撤銷群組的存取權,以取代允許清單。
支援群組複寫的網路命名空間。
Oracle 建議使用
MYSQL
通訊堆疊,而不是XCOM
。 -
XCOM:(MySQL Server 8.0.26 或更舊版本的預設值)。您可以將 XCOM 通訊堆疊與 MySQL 8.0.27 或更高版本搭配使用,但必須在建立或重新啟動命令中明確定義。
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
。