文件首頁
MySQL Shell for VS Code


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

預先正式發佈:2024-07-17

A.4 ReplicaSet 類別方法

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

將執行個體新增至 InnoDB ReplicaSet

將指定的 MySQL 執行個體新增為 InnoDB ReplicaSet 目前主要執行個體的唯讀次要複本。會在新增的執行個體和主要執行個體之間設定複寫。複寫使用自動建立的 MySQL 帳戶和隨機密碼。

  • JavaScript: addInstance(instance[, options])

  • Python: add_instance(instance[, options])

選項如下

  • dryRun:如果為 true,則執行檢查並記錄將進行的變更,但不執行這些變更。

  • label:正在新增的執行個體的識別碼,用於 status() 的輸出中。

  • recoveryMethod:狀態復原的慣用方法。可以是 auto、clone 或 incremental。預設值為 auto。

  • waitRecovery:整數值,表示復原程序詳細資訊層級。

  • cloneDonor:要複製來源的現有複本集成員的 host:port。此選項不支援 IPv6 位址。

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

  • timeout:交易同步作業的逾時秒數;0 會停用逾時,並強制 Shell 等待直到交易同步完成。預設為 0

範例:使用指派給 ReplicaSet 的 rs 變數,將執行個體新增至 InnoDB ReplicaSet。

rs.addInstance('root@localhost:4430')

描述 InnoDB ReplicaSet 的狀態

描述 InnoDB ReplicaSet 的狀態。

  • JavaScript: status([options])

  • Python: status([options])

extended 選項如下

  • 0:停用命令詳細資訊 (預設)。

  • 1:包含有關中繼資料版本、群組通訊協定版本、群組名稱、ReplicaSet UUID、Group Replication 回報的 ReplicaSet 成員角色和狀態,以及受限制的系統變數清單的資訊。

  • 2:包含有關連線和套用程式所處理交易的資訊。

  • 3:包含有關每個 ReplicaSet 成員複寫機制的更多詳細統計資料。

  • Boolean:相當於指派 0 (false) 或 1 (true)。

範例:使用指派的變數 rs,傳回描述 InnoDB ReplicaSet 狀態的 JSON 物件。

rs.status()

中斷 InnoDB ReplicaSet 使用的工作階段

中斷 InnoDB ReplicaSet 用於查詢中繼資料和複寫資訊的內部 MySQL 工作階段。

  • JavaScript: disconnect()

  • Python: disconnect()

範例:中斷指派給變數 rs 的 ReplicaSet 所使用的所有內部工作階段。

rs.disconnect()

強制 InnoDB ReplicaSet 主要執行個體容錯移轉

在災難情況下,如果目前的主要執行個體無法使用且無法還原,則強制執行 InnoDB ReplicaSet 主要執行個體的容錯移轉。

  • JavaScript: forcePrimaryInstance(instance, options)

  • Python: force_primary_instance(instance, options)

選項如下

  • dryRun:如果為 true,則執行檢查並記錄將執行的作業,但不會執行這些作業。透過在 Shell 中啟用詳細資訊輸出,可以檢視將執行的作業。

  • timeout:整數值,表示等待要升級的執行個體趕上目前主要執行個體的最長秒數。

  • invalidateErrorInstances:如果為 false,則如果舊主要執行個體以外的任何執行個體無法連線或有錯誤,則會中止容錯移轉。如果為 true,則不會容錯移轉此類執行個體,而且會使其失效。

範例:使用 forcePrimaryInstance,並將 dryrun 選項設定為 true,以檢查強制容錯移轉至執行個體 rs2:4460 的潛在錯誤。

rs.forcePrimaryInstance('rs2:4460' ,{dryRun: true})

取得 InnoDB ReplicaSet 的名稱

傳回 InnoDB ReplicaSet 的名稱。

  • JavaScript: getName()

  • Python: get_name()

範例:傳回指派給變數 rs 的 InnoDB ReplicaSet 的名稱

rs.getName()

列出 InnoDB ReplicaSet Router 執行個體

列出 Router 執行個體,並提供有關針對 InnoDB ReplicaSet 註冊的所有 Router 執行個體的資訊。

  • JavaScript: listRouters()

  • Python: list_routers()

選項如下

  • onlyUpgradeRequired:布林值,啟用篩選,因此只會包含支援舊版中繼資料結構描述且需要升級的 Router 執行個體。

範例:列出與指派給 rs 的 ReplicaSet 相關聯的所有已註冊 MySQL Router 執行個體。

rs.listRouters()

列出 InnoDB ReplicaSet 設定選項

傳回描述 InnoDB ReplicaSet 設定選項的 JSON 物件。

  • JavaScript: options()

  • Python: options()

範例:使用指派的變數 rs,列出 InnoDB ReplicaSet 的所有設定選項。

rs.options()

將執行個體重新加入 InnoDB ReplicaSet

將執行個體重新加入 InnoDB ReplicaSet。

  • JavaScript: rejoinInstance(instance[, options])

  • Python: rejoin_instance(instance[, options])

選項如下

  • dryRun:如果為 true,則執行檢查並記錄將執行的作業,但不會執行這些作業。

  • recoveryMethod:狀態復原的慣用方法。可以是 auto、clone 或 incremental。預設值為 auto。

  • waitRecovery:整數值,表示復原程序詳細資訊層級。

  • cloneDonor:要複製來源的現有 ReplicaSet 成員的 host:port。此選項不支援 IPv6 位址。

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

  • timeout:交易同步作業的逾時秒數;0 會停用逾時,並強制 MySQL Shell 等待直到交易同步完成。預設為 0

範例:使用指派給 InnoDB ReplicaSet 的變數 rs,將執行個體重新加入在本機主機的 4450 連接埠上執行的 InnoDB ReplicaSet。

rs.rejoinInstance('root@localhost:4450')

從 InnoDB ReplicaSet 移除執行個體

從 InnoDB ReplicaSet 移除執行個體。

  • JavaScript: removeInstance(instance[, options])

  • Python: remove_instance(instance[, options])

選項如下

  • force:布林值,表示是否必須移除執行個體,即使只能從中繼資料移除,如果無法連線到執行個體。預設設定為 false

  • timeout:等待實例與主要伺服器同步的最長秒數。0 表示沒有超時,且 0 將跳過同步。

範例:從本機主機的 4450 連接埠上執行的 InnoDB ReplicaSet 中移除實例,使用指派給 InnoDB ReplicaSet 的變數 rs

rs.removeInstance('root@localhost:4450')

移除 MySQL Router 實例的中繼資料

移除路由器實例的中繼資料。

  • JavaScript:removeRouterMetadata(routerDef)

  • Python:remove_router_metadata(routerDef)

範例:使用指派的變數 rs,從 ReplicaSet 的中繼資料中移除已註冊的 MySQL Router 實例 myRouter1

rs.removeRouterMetadata('myRouter1')

變更 InnoDB ReplicaSet 成員中的選項值。

變更 InnoDB ReplicaSet 成員中選項的值。

  • JavaScript:setInstanceOption(instance, option, value)

  • Python:set_instance_option(instance, option, value)

選項如下

  • tag:<option>:要與 InnoDB ReplicaSet 成員關聯的內建和使用者定義標籤。

範例:變更 memberWeight 值。

rs.setInstanceOption("root@localhost:4430","memberWeight", 95)

如需更多資訊,請參閱標記中繼資料

設定 InnoDB ReplicaSet 中的選項值

變更整個 InnoDB ReplicaSet 的選項值。

  • JavaScript:setOption(option, value)

  • Python:set_option(option, value)

選項如下

  • tag:<option>:要與 InnoDB ReplicaSet 關聯的內建和使用者定義標籤。

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

  • memberWeight:整數值,表示在故障轉移時自動選取主要伺服器的權重百分比。

  • AutoRejoinTries:整數值,定義實例在被逐出後嘗試重新加入 InnoDB ReplicaSet 的次數。

  • Label:實例的字串識別碼。

範例:將指派給變數 rs 的 InnoDB ReplicaSet 的位置中繼資料標籤設定為美國東部。使用指派的變數 rs,將 ReplicaSet 的名稱標籤變更為 new_rs

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

如需更多資訊,請參閱標記中繼資料

設定 InnoDB ReplicaSet 的新主要伺服器

選取特定的 InnoDB ReplicaSet 成員作為新的主要伺服器。

  • JavaScript:setPrimaryInstance(instance)

  • Python:set_primary_instance(instance)

範例:將監聽 4450 連接埠的實例設定為新的主要伺服器,使用 rs 的指派變數。

rs.setPrimaryInstance('root@localhost:4450')

如需更多資訊,請參閱變更 InnoDB 叢集的拓撲

建立或升級 InnoDB ReplicaSet 管理員帳戶

建立或升級 InnoDB ReplicaSet 管理員帳戶。

  • JavaScript:setupAdminAccount(user, options)

  • Python:setup_admin_account(user, options)

選項如下

  • password:InnoDB ReplicaSet 管理員帳戶的密碼。

  • dryRun:用於啟用帳戶設定程序試執行的布林值。預設值為 false

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

  • update:必須啟用才能允許更新現有帳戶的權限和/或密碼的布林值。預設值為 False。

範例:建立或升級具有管理 InnoDB ReplicaSet 所需權限的 MySQL 使用者帳戶,使用 rs 的指派變數。例如,設定密碼為 Password1demo-user

rs.setupAdminAccount("demo_user", {password:"Password1"})

如需更多資訊,請參閱為 AdminAPI 建立使用者帳戶

建立或升級 MySQL 帳戶以用於 MySQL Router

建立或升級 MySQL 帳戶以用於 MySQL Router。

  • JavaScript:setupRouterAccount(user, options)

  • Python:setup_router_account(user, options)

選項如下

  • password:MySQL Router 帳戶的密碼。

  • dryRun:用於啟用帳戶設定程序試執行的布林值。預設值為 false

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

範例:強制性引數 user 是要由 MySQL Router 使用的 MySQL 帳戶名稱,以建立或升級。

rs.setupRouterAccount('test@localhost:3306')

如需更多資訊,請參閱設定 MySQL Router 使用者