預先正式發佈:2024-07-17
以下章節提供 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 的狀態。
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 用於查詢中繼資料和複寫資訊的內部 MySQL 工作階段。
JavaScript:
disconnect()
Python:
disconnect()
範例:中斷指派給變數 rs
的 ReplicaSet 所使用的所有內部工作階段。
rs.disconnect()
在災難情況下,如果目前的主要執行個體無法使用且無法還原,則強制執行 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 的名稱。
JavaScript:
getName()
Python:
get_name()
範例:傳回指派給變數 rs
的 InnoDB ReplicaSet 的名稱
rs.getName()
列出 Router 執行個體,並提供有關針對 InnoDB ReplicaSet 註冊的所有 Router 執行個體的資訊。
JavaScript:
listRouters()
Python:
list_routers()
選項如下
onlyUpgradeRequired
:布林值,啟用篩選,因此只會包含支援舊版中繼資料結構描述且需要升級的 Router 執行個體。
範例:列出與指派給 rs
的 ReplicaSet 相關聯的所有已註冊 MySQL Router 執行個體。
rs.listRouters()
傳回描述 InnoDB ReplicaSet 設定選項的 JSON 物件。
JavaScript:
options()
Python:
options()
範例:使用指派的變數 rs
,列出 InnoDB ReplicaSet 的所有設定選項。
rs.options()
將執行個體重新加入 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 移除執行個體。
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')
移除路由器實例的中繼資料。
JavaScript:
removeRouterMetadata(routerDef)
Python:
remove_router_metadata(routerDef)
範例:使用指派的變數 rs
,從 ReplicaSet 的中繼資料中移除已註冊的 MySQL Router 實例 myRouter1
。
rs.removeRouterMetadata('myRouter1')
變更 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 的選項值。
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 成員作為新的主要伺服器。
JavaScript:
setPrimaryInstance(instance)
Python:
set_primary_instance(instance)
範例:將監聽 4450 連接埠的實例設定為新的主要伺服器,使用 rs
的指派變數。
rs.setPrimaryInstance('root@localhost:4450')
如需更多資訊,請參閱變更 InnoDB 叢集的拓撲。
建立或升級 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
的指派變數。例如,設定密碼為 Password1
的 demo-user
。
rs.setupAdminAccount("demo_user", {password:"Password1"})
如需更多資訊,請參閱為 AdminAPI 建立使用者帳戶。
建立或升級 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 使用者。