文件首頁
MySQL Shell for VS Code


MySQL Shell for VS Code  /  ...  /  ClusterSet 類別方法

Pre-General Availability:2024-07-17

A.3 ClusterSet 類別方法

以下章節提供 InnoDB ClusterSet 方法可用選項的詳細資訊。

建立複本 InnoDB Cluster

在目標執行個體上,使用指定的叢集名稱和選項建立新的 InnoDB Cluster,該叢集是主要叢集的複本。

如果目標執行個體符合 InnoDB Cluster 的需求,則會在該執行個體上建立新的叢集,並從 InnoDB ClusterSet 的主要叢集的主要執行個體進行複寫。

  • JavaScript:createReplicaCluster(instance, clusterName[, options])

  • Python:create_replica_cluster(instance, clusterName[, options])

選項如下

  • interactive:布林值,用於停用或啟用命令執行中的精靈,這表示會根據設定的值提供或不提供提示和確認。預設值等於 MySQL Shell 精靈模式。

  • dryRun:布林值,如果為 true,則會執行建立複本叢集的所有驗證和步驟,但不會進行任何變更。完成時會擲回例外狀況。

  • recoveryMethod:用於狀態復原或佈建的慣用方法。可以是 autocloneincremental。預設值為 auto

  • recoveryProgress:整數值,用於表示復原程序的詳細資訊層級。

  • cloneDonor:要從中複製的主要叢集現有成員的主機:埠。此選項不支援 IPv6 位址。

  • manualStartOnBoot:布林值(預設為 false)。如果為 false,則叢集執行個體中的群組複寫會在 MySQL 啟動時自動啟動並重新加入,否則必須手動啟動。

  • memberSslMode:SSL 模式,用於設定 InnoDB Cluster 成員之間通訊的安全性狀態。

  • ipAllowlist:允許連線至群組複寫執行個體的主機清單。

  • localAddress:字串值,其中包含要使用的群組複寫本機位址,而不是自動產生的位址。

  • exitStateAction:字串值,表示群組複寫的結束狀態動作。

  • memberWeight:整數值,其中包含容錯移轉時自動主要選取的百分比權重。

  • consistency:字串值,表示叢集提供的協調性保證。

  • expelTimeout:整數值,用於定義叢集成員在將無回應的成員從叢集中逐出之前應等待的時間(以秒為單位)。

  • autoRejoinTries:整數值,用於定義執行個體在被逐出後嘗試重新加入叢集的次數。

  • timeout:等待執行個體與主要叢集同步的最大秒數。預設值為 0,表示沒有逾時。

  • replicationAllowedHost:字串值,用作內部複寫帳戶的主機名稱部分(表示 'mysql_innodb_cluster_###'@'hostname')。預設值為 %。叢集的任何成員都必須能夠使用具有此主機名稱值的帳戶連線至任何其他成員。

範例:使用指派給變數 cs 的 InnoDB ClusterSet 物件,使用 createReplicaCluster() 方法來建立複本叢集。

cs.createReplicaCluster("127.0.0.1:4410", "cluster2")

如需有關使用此方法的詳細資訊,請參閱部署 InnoDB ClusterSet

描述 InnoDB ClusterSet

描述 InnoDB ClusterSet 的結構。它會傳回描述 InnoDB ClusterSet 結構的 JSON 物件。

  • JavaScript:describe()

  • Python:describe()

範例:使用指派給 InnoDB ClusterSet 物件的變數 cs,發出 describe() 函式,以檢視 InnoDB ClusterSet 的拓撲,而且您不需要狀態資訊。

cs.describe()

如需有關使用此方法的詳細資訊,請參閱InnoDB ClusterSet 狀態和拓撲

中斷連線 InnoDB ClusterSet

中斷連線 InnoDB ClusterSet 物件使用的所有內部工作階段。

  • JavaScript:disconnect()

  • Python:disconnect()

範例:使用指派的變數 cs 中斷連線 InnoDB ClusterSet 使用的所有內部工作階段。

cs.disconnect()

對 InnoDB ClusterSet 的主要叢集執行容錯移轉

對 InnoDB ClusterSet 的主要 InnoDB Cluster 執行容錯移轉。

  • JavaScript:forcePrimaryCluster(clusterName[, options])

  • Python:force_primary_cluster(clusterName[, options])

選項如下

  • dryRun:如果為 true,則會執行將會執行的檢查和記錄作業,但不會執行這些作業。可以藉由在 MySQL Shell 中啟用詳細輸出,來檢視將會執行的作業。

  • invalidateReplicaClusters:列出在容錯移轉期間要失效的無法連線或無法使用的複本叢集名稱。

範例:提供將接管成為新主要叢集的複本 InnoDB Cluster 名稱,並發出。

cs.forcePrimaryCluster("cluster2")

如需有關使用此方法的詳細資訊,請參閱InnoDB ClusterSet 緊急容錯移轉

傳回 InnoDB ClusterSet 的網域名稱

傳回 InnoDB ClusterSet 的網域名稱。

  • JavaScript:getName()

  • Python:get_name()

範例:使用指派給 InnoDB ClusterSet 物件的 cs 變數,顯示 InnoDB ClusterSet 的網域名稱。

cs.getName()

ClusterSet 說明

提供有關此類別及其成員的說明。

  • JavaScript:help([member])

  • Python:help([member])

若要查看 InnoDB ClusterSet 物件的說明選項,請輸入

\help clusterset

列出 InnoDB ClusterSet 的 MySQL Router 執行個體

列出 InnoDB ClusterSet 的 MySQL Router 執行個體,或單一 MySQL Router 執行個體。

  • JavaScript:listRouters([router])

  • Python:list_routers([router])

範例:傳回所有已註冊 MySQL Router 執行個體或 Router 執行個體的詳細資訊。

myclusterset.listRouters()

如需有關使用此方法的詳細資訊,請參閱將 MySQL Router 與 InnoDB ClusterSet 整合

InnoDB ClusterSet 設定選項清單

列出 InnoDB ClusterSet 的組態選項。

  • JavaScript: options()

  • Python: options()

範例:使用指定的變數 cs 列出 InnoDB ClusterSet 的所有組態選項。

cs.options()

重新加入 InnoDB ClusterSet

將失效的叢集重新加入 InnoDB ClusterSet 並更新複寫。

  • JavaScript: rejoinCluster(clusterName[, options])

  • Python: rejoin_cluster(clusterName[, options])

選項如下

  • dryRun:如果為 true,將執行檢查並記錄將執行的操作,但不會執行它們。可以透過在 MySQL Shell 中啟用詳細輸出檢視將執行的操作。

範例:使用指定的變數 cs 將叢集重新加入 InnoDB ClusterSet。

cs.rejoinCluster('ClusterSet1')

有關使用此方法的更多資訊,請參閱InnoDB ClusterSet 修復和重新加入

從 InnoDB ClusterSet 中移除複本 InnoDB 叢集

從 InnoDB ClusterSet 中移除複本 InnoDB 叢集。

  • JavaScript: removeCluster(clusterName[, options])

  • Python: remove_cluster(clusterName[, options])

選項如下

  • force:布林值,表示是否必須移除叢集,即使只是從元資料中移除,以防無法連線到 PRIMARY,或找不到或停止 InnoDB ClusterSet 複寫通道。預設值為 false

  • timeout:等待執行個體與主要叢集同步的最大秒數。預設值為 0,表示沒有逾時。

  • dryRun:布林值,如果為 true,則會執行從 InnoDB ClusterSet 移除叢集的所有驗證和步驟,但實際上不會進行任何變更。完成時將會擲回例外狀況。

範例:從 InnoDB ClusterSet 中移除名為 ‘replica2’ 的叢集。

cs.removeCluster("replica2")

有關使用此方法的更多資訊,請參閱從 InnoDB ClusterSet 中移除叢集

InnoDB ClusterSet 路由器的組態選項清單

透過傳回描述 InnoDB ClusterSet 所有路由器執行個體及其全域選項的組態選項的 JSON 物件,或僅傳回指定的路由器,列出 InnoDB ClusterSet 路由器組態選項。

  • JavaScript: routingOptions([router])

  • Python: routing_options([router])

範例:顯示為每個 MySQL Router 執行個體和 IInnoDB ClusterSet 部署的全域原則設定的路由選項。

cs.routingOptions()

如需有關使用此方法的詳細資訊,請參閱將 MySQL Router 與 InnoDB ClusterSet 整合

變更 InnoDB ClusterSet 的選項值

變更整個 InnoDB ClusterSet 的選項值。

  • JavaScript: setOption(option, value)

  • Python: set_option(option, value)

選項如下

  • value:選項將擷取的值。

範例:將指派給變數 cs 的 InnoDB 叢集標記為 location 標籤,並設定為 US East

cs.setOption("tag:location", "US East")

有關使用此方法的更多資訊,請參閱標記元資料

執行 InnoDB ClusterSet 的主要 InnoDB 叢集切換

執行 InnoDB ClusterSet 的主要 InnoDB 叢集安全切換。

  • JavaScript: setPrimaryCluster(clusterName[, options])

  • Python: set_primary_cluster(clusterName[, options])

選項如下

  • dryRun:如果為 true,將執行檢查並記錄將執行的操作,但不會執行它們。可以透過在 MySQL Shell 中啟用詳細輸出檢視將執行的操作。

  • timeout:整數值,設定等待叢集同步的最大秒數。

  • invalidateReplicaClusters:在切換期間要失效的無法連線或無法使用的 REPLICA 叢集名稱清單。

範例:提供將接管成為新主要叢集的 InnoDB 叢集名稱。

cs.setPrimaryCluster('clustertwo')

有關使用此方法的更多資訊,請參閱InnoDB ClusterSet 受控切換

變更 MySQL Router 執行個體的值

變更全域路由選項或單一 MySQL Router 執行個體的值。

  • JavaScript: setRoutingOption([router], option, value)

  • Python: set_routing_option([router], option, value)

選項如下

  • target_cluster:路由器路由操作的目標叢集。

  • invalidated_cluster_policy:當偵測到目標叢集失效時要採取的路由原則。

範例:變更全域路由選項或單一路由器執行個體的值。

在此範例中,cs 是 InnoDB ClusterSet 物件的變數,Rome1 是 MySQL Router 執行個體的名稱,而 cluster2 是要鎖定的特定叢集名稱。

cs.setRoutingOption('Rome1', 'target_cluster', 'cluster2')

如需有關使用此方法的詳細資訊,請參閱將 MySQL Router 與 InnoDB ClusterSet 整合

描述 InnoDB ClusterSet 的狀態

描述 InnoDB ClusterSet 的狀態。此方法會從 InnoDB ClusterSet 的每個成員及其複寫通道收集狀態資訊,以產生整個 InnoDB ClusterSet 的狀態報告。

  • JavaScript: status([options])

  • Python: status([options])

可以提供以下選項來控制收集和傳回的資訊量。選項 extended 可以有以下值

  • 0:一般詳細程度。只有關於 InnoDB ClusterSet 和 InnoDB 叢集成員狀態的基本資訊。

  • 1:包括關於每個叢集狀態的基本資訊、關於每個叢集成員角色和 Group Replication 回報的狀態的資訊,以及關於 InnoDB ClusterSet 複寫通道的資訊。

  • 2:包括受限制的系統變數清單、應用程式工作執行緒、成員 ID 等等。關於 InnoDB ClusterSet 複寫通道的資訊會延伸到包括關於應用程式佇列大小、應用程式佇列 GTID 集、協調器狀態等等的資訊。

  • 3:包括重要的複寫相關組態設定,例如複寫延遲、活動訊號延遲、InnoDB ClusterSet 複寫通道的重試次數和連線重試。

範例:連線到 InnoDB ClusterSet 的任何作用中成員,並使用指派的 cs 變數。

cs.status()

如需有關使用此方法的詳細資訊,請參閱InnoDB ClusterSet 狀態和拓撲