下載本手冊
PDF (US Ltr) - 2.3Mb
PDF (A4) - 2.3Mb


MySQL Shell 9.0  /  ...  /  設定群組複寫通訊堆疊

7.5.9 設定群組複寫通訊堆疊

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,則會顯示錯誤且命令會失敗。

addInstancerejoinInstancerescan 命令也會檢查目標執行個體的通訊堆疊支援,並據此設定必要的設定選項。

  • 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