一般可用性前版本:2024-07-17
以下章節提供 InnoDB Cluster 方法可用選項的詳細資訊。
將執行個體新增至 InnoDB Cluster。
JavaScript:
addInstance(instance[, options])
Python:
add_instance(instance[, options])
選項如下
label
:新增執行個體的識別碼。recoveryMethod
:偏好的狀態復原方法。可以是auto
、clone
或incremental
。預設值為auto
。waitRecovery
:整數值,指示命令是否應等待復原程序完成及其詳細程度。password
:執行個體連線密碼。memberSslMode
:在執行個體上使用的 SSL 模式。ipWhitelist
:允許連線至執行個體以進行群組複寫的主機清單。已棄用。ipAllowlist
:允許連線至執行個體以進行群組複寫的主機清單。localAddress
:字串值,其中包含要使用的群組複寫本機位址,而不是自動產生的位址。groupSeeds
:字串值,其中包含以逗號分隔的群組複寫對等位址清單,以取代自動產生的位址。已棄用且忽略。interactive
:布林值,用於停用或啟用命令執行中的精靈,表示將根據設定的值提供或不提供提示和確認。預設值等於 MySQL Shell 精靈模式。exitStateAction
:字串值,指示群組複寫結束狀態動作。memberWeight
:整數值,代表容錯移轉時自動主要選舉的百分比權重。autoRejoinTries
:整數值,定義執行個體在遭到驅逐後嘗試重新加入叢集的次數。
範例:將執行個體新增至由指定的變數 mycluster
代表的叢集。
mycluster.addInstance('root@localhost:3333')
如需詳細資訊,請參閱將執行個體新增至 InnoDB Cluster。
驗證與叢集相關的執行個體全域交易識別碼 (GTID) 狀態。
JavaScript:
checkInstanceState(instance)
Python:
check_instance_state(instance)
範例:分析接聽埠 3334 的執行個體,顯示在叢集上執行和清除的 GTID 所執行的 GTID,以判斷執行個體是否對叢集有效。
mycluster.checkInstanceState('root@localhost:3334')
如需詳細資訊,請參閱將執行個體新增至 InnoDB Cluster。
從現有的獨立 InnoDB Cluster 建立 InnoDB ClusterSet。
JavaScript:
createClusterSet(dominate[, options])
Python:
create_cluster_set(dominate[, options])
選項如下
dryRun
:布林值,如果為 true,則會執行建立 InnoDB ClusterSet 的所有驗證和步驟,但不會進行任何變更。完成時會擲回例外狀況。clusterSetReplicationSslMode
:InnoDB ClusterSet 複寫通道的 SSL 模式。replicationAllowedHost
:字串值,用作內部複寫帳戶的主機名稱部分(表示mysql_innodb_cs_###'@'hostname
)。預設值為%
。InnoDB ClusterSet 的任何成員都必須能夠使用具有此主機名稱值的帳戶連線到任何其他成員。
範例:使用指派給叢集的變數 mycluster
建立名為 cs1
的 ClusterSet。
mycluster.createClusterSet('cs1')
如需詳細資訊,請參閱部署 InnoDB ClusterSet。
JavaScript:
describe()
Python:
describe()
範例:使用指定的變數 mycluster
描述叢集,包括其所有資訊、複本集和執行個體。
mycluster.describe()
中斷連線叢集物件使用的所有內部工作階段。
JavaScript:
disconnect()
Python:
disconnect()
範例:使用指定的變數 mycluster
中斷連線叢集與所有內部工作階段的連線。
mycluster.disconnect()
解散叢集。
JavaScript:
dissolve([options])
Python:
dissolve([options])
選項如下
force
:布林值,用於確認必須執行解散作業,即使無法連線到叢集的某些成員,或在等待成員趕上複寫變更時達到逾時。預設設定為false
。interactive
:布林值,用於停用或啟用命令執行中的精靈,表示將根據設定的值提供或不提供提示和確認。預設值等於 MySQL Shell 精靈模式。
範例:使用指定的變數 mycluster
停止群組複寫並取消註冊所有叢集中繼資料的成員。
mycluster.dissolve()
從所有流量隔離 InnoDB Cluster。
JavaScript:
fenceAllTraffic()
Python:
fence_all_traffic()
範例:使用指定的變數 mycluster
從所有流量隔離叢集。
mycluster.fenceAllTraffic()
如需詳細資訊,請參閱在 InnoDB ClusterSet 中隔離叢集。
從寫入流量隔離叢集。
JavaScript:
fenceWrites()
Python:
fence_writes()
範例:使用指定的變數 mycluster
從所有寫入流量隔離叢集。
mycluster.fenceWrites()
如需詳細資訊,請參閱在 InnoDB ClusterSet 中隔離叢集。
從仲裁遺失中還原叢集。如果群組被分割或發生的崩潰次數超過可容忍的次數,就可能發生這種情況。
forceQuorumUsingPartitionOf()
方法會將叢集從仲裁遺失的情境中還原為可運作的狀態。如果群組被分割或發生的崩潰次數超過可容忍的次數,就可能發生這種情況。當您使用此方法時,從給定執行個體定義的視角來看,所有線上成員都會新增至群組。
JavaScript:
forceQuorumUsingPartitionOf(instance[, password])
Python:
force_quorum_using_partition_of(instance[, password])
範例:使用指派的變數 mycluster
,從仲裁遺失中還原叢集。執行個體定義是執行個體的連線資料。
mycluster.forceQuorumUsingPartitionOf('root@localhost:3341', 'password')
如需更多資訊,請參閱還原和重新啟動 InnoDB 叢集。
傳回代表 InnoDB ClusterSet 的物件。
JavaScript:
getClusterSet()
Python:
get_cluster_set()
範例:使用指派的 mycluster
變數,將 InnoDB ClusterSet 指派給名為 myclusterset
的變數。
var myclusterset = mycluster.getClusterSet()
擷取 InnoDB 叢集的名稱。
JavaScript:
getName()
Python:
get_name()
範例:使用指派的變數 mycluster
,傳回叢集的網域名稱。
mycluster.getName()
提供有關 Cluster
類別及其成員的說明。
JavaScript:
help([member])
Python:
help([member])
若要查看使用 mycluster
指派變數的 fenceWrites
方法的說明詳細資料,請輸入
mycluster.help("fenceWrites")
列出路由器執行個體。
JavaScript:
listRouters([options])
Python:
list_routers([options])
選項如下
onlyUpgradeRequired
:布林值,可啟用篩選,以便僅包含支援較舊版本的元資料結構描述且需要升級的路由器執行個體。
範例:使用指派的變數 mycluster
,傳回列出與叢集相關聯的路由器執行個體的 JSON 物件。
mycluster.listRouters()
列出 InnoDB 叢集的叢集組態選項。
JavaScript:
options([options])
Python:
options([options])
範例:傳回描述叢集組態選項的 JSON 物件。
mycluster.options()
將執行個體重新加入叢集。
JavaScript:
rejoinInstance(instance[, options])
Python:
rejoin_instance(instance[, options])
選項如下
password
:執行個體連線密碼。memberSslMode
:在執行個體上使用的 SSL 模式。interactive
:布林值,用於停用或啟用命令執行中的精靈,表示將根據設定的值提供或不提供提示和確認。預設值等於 MySQL Shell 精靈模式。ipWhitelist
:允許連線至執行個體以進行群組複寫的主機清單。已淘汰。ipAllowlist
:允許連線至執行個體以進行群組複寫的主機清單。
範例:使用指派的變數 mycluster
,包括密碼選項,將執行個體重新加入叢集。
mycluster.rejoinInstance('root@localhost:3342',{password:
'password'})
如需更多資訊,請參閱將執行個體重新加入叢集。
從 InnoDB 叢集中移除執行個體。
JavaScript:
removeInstance(instance[, options])
Python:
remove_instance(instance[, options])
選項如下
password
:執行個體連線密碼。force
:布林值,表示如果無法連線到執行個體,是否必須移除執行個體(即使僅從元資料中移除)。預設值設定為false
。interactive
:布林值,用於停用或啟用命令執行中的精靈,表示將根據設定的值提供或不提供提示和確認。預設值等於 MySQL Shell 精靈模式。
範例:從叢集中移除執行個體。在此範例中,密碼會以選項形式包含。
mycluster.removeInstance('root@localhost:3342',{password:
'Password1'})
如需更多資訊,請參閱從 InnoDB 叢集中移除執行個體。
移除路由器執行個體的元資料。
JavaScript:
removeRouterMetadata(routerDef)
Python:
remove_router_metadata(routerDef)
範例:使用指派的變數 mycluster
,從叢集的元資料中移除已註冊的 MySQL Router 執行個體 myRouter1
。
mycluster.removeRouterMetadata('myRouter1')
重新掃描 InnoDB 叢集。
JavaScript:
rescan([options])
Python:
rescan([options])
選項如下
addInstances
:包含要新增至元資料的新作用中執行個體之連線資料的清單,或auto
以自動將遺失的執行個體新增至元資料。interactive
:布林值,用於停用或啟用命令執行中的精靈,表示將根據設定的值提供或不提供提示和確認。預設值等於 MySQL Shell 精靈模式。removeInstances
:包含要從元資料中移除的過時執行個體之連線資料的清單,或auto
以自動從元資料中移除過時的執行個體。updateTopologyMode
:布林值,用來表示是否應該更新元資料中的拓樸模式(單一主要或多重主要)(true
),以符合叢集正在使用的模式(false
)。預設情況下,不會更新元資料(false
)。已淘汰。upgradeCommProtocol
:布林值。設定為 true 以將群組複寫通訊協定升級至可能的最高版本。
範例:重新掃描叢集是否有新的和過時的群組複寫執行個體,以及已使用拓樸模式的變更,例如,單一主要和多重主要。
mycluster.rescan()
重設 InnoDB 叢集之復原帳戶的密碼。
JavaScript:
resetRecoveryAccountsPassword(options)
Python:
reset_recovery_accounts_password(options)
選項如下
force
:布林值,表示在嘗試重設任何執行個體的密碼時發生錯誤時,作業是否將繼續,例如,如果任何執行個體未上線。預設值設定為false
。interactive
:布林值,用於停用或啟用命令執行中的精靈,表示將根據設定的值提供或不提供提示和確認。預設值等於 MySQL Shell 精靈模式。
範例:重設叢集使用的所有內部復原使用者帳戶的密碼。
在此範例中,會使用布林值 interactive
模式。
mycluster.resetRecoveryAccountsPassword({interactive:true})
如需更多資訊,請參閱InnoDB 叢集的使用者帳戶。
變更 InnoDB 叢集成員中選項的值。
JavaScript:
setInstanceOption(instance, option, value)
Python:
set_instance_option(instance, option, value)
選項如下
tag:<option>
:要與叢集相關聯的內建和使用者定義標籤。exitStateAction
:表示群組複寫結束狀態動作的字串值。memberWeight
:整數值,代表容錯移轉時自動主要選舉的百分比權重。autoRejoinTries
:整數值,定義執行個體在遭到驅逐後嘗試重新加入叢集的次數。label
:執行個體的字串識別碼。
範例:變更 memberWeight
。
mycluster.setInstanceOption("root@localhost:3341","memberWeight", 95)
如需更多資訊,請參閱標記元資料。
變更整個 InnoDB 叢集的選項值。
JavaScript:
setOption(option, value)
Python:
set_option(option, value)
選項如下
tag:<option>
:要與叢集相關聯的內建和使用者定義標籤。exitStateAction
:字串值,指示群組複寫結束狀態動作。memberWeight
:整數值,代表容錯移轉時自動主要選舉的百分比權重。AutoRejoinTries
:整數值,用於定義執行個體在被驅逐後嘗試重新加入叢集的次數。Label
:執行個體的字串識別碼。
範例:使用指派的變數 mycluster
,將叢集的名稱標籤變更為 my_new_cluster
。
mycluster.setOption("clusterName", "my_new_cluster_name")
如需更多資訊,請參閱標記元資料。
選出特定的 InnoDB 叢集成員作為新的主要執行個體。
JavaScript:
setPrimaryInstance(instance)
Python:
set_primary_instance(instance)
範例:使用 mycluster
的指派變數,將新的主要執行個體設定為在連接埠 3335 上接聽的執行個體。
mycluster.setPrimaryInstance('root@localhost:3335')
如需更多資訊,請參閱變更 InnoDB 叢集的拓樸。
建立或升級 InnoDB 叢集管理員帳戶。
JavaScript:
setupAdminAccount(user, options)
Python:
setup_admin_account(user, options)
選項如下
password
:InnoDB 叢集管理員帳戶的密碼。dryRun
:布林值,用於啟用帳戶設定程序的試執行。預設值為false
。interactive
:布林值,用於停用或啟用命令執行中的精靈,表示將根據設定的值提供或不提供提示和確認。預設值等於 MySQL Shell 精靈模式。update
:必須啟用的布林值,以允許更新現有帳戶的權限和/或密碼。預設值為false
。
範例:使用 mycluster
的指派變數,建立或升級具有管理 InnoDB 叢集所需權限的 MySQL 使用者帳戶。例如,若要使用密碼 Password1
設定 demo-user
。
mycluster.setupAdminAccount("demo_user", {password:"Password1"})
如需更多資訊,請參閱為 AdminAPI 建立使用者帳戶。
建立或升級要與 MySQL Router 搭配使用的 MySQL 帳戶。
JavaScript:
setupRouterAccount(user, options)
Python:
setup_router_account(user, options)
選項如下
password
:MySQL Router 帳戶的密碼。dryRun
:布林值,用於啟用帳戶設定程序的試執行。預設值為false
。interactive
:布林值,用於停用或啟用命令執行中的精靈,表示將根據設定的值提供或不提供提示和確認。預設值等於 MySQL Shell 精靈模式。
範例:強制參數 user
是 MySQL 帳戶的名稱,該帳戶將被建立或升級,並由 MySQL Router 使用。
mycluster.setupRouterAccount('test@localhost:3306')
更多資訊請參閱設定 MySQL Router 使用者。
描述 InnoDB Cluster 的狀態。
JavaScript:
status([options])
Python:
status([options])
extended
選項值為:
0
:停用命令詳細輸出(預設)。1
:包含關於中繼資料版本、群組協定版本、群組名稱、叢集成員 UUID、群組複寫回報的叢集成員角色與狀態,以及已隔離的系統變數清單資訊。2
:包含關於連線和套用程式處理的交易資訊。3
:包含關於每個叢集成員複寫機制的更詳細統計資訊。Boolean
:等同於指定0
(false
) 或1
(true
)。
範例:使用已指定的變數 mycluster
,傳回描述叢集狀態的 JSON 物件。
mycluster.status()
將以單主模式執行的 InnoDB Cluster 變更為多主模式。
JavaScript:
switchToMultiPrimaryMode()
Python:
switch_to_multi_primary_mode()
範例:將以單主模式執行的叢集變更為多主模式。例如,使用已指定的變數 mycluster
。
mycluster.switchToMultiPrimaryMode()
如需更多資訊,請參閱變更 InnoDB 叢集的拓樸。
將 InnoDB Cluster 切換為單主模式。
JavaScript:
switchToSinglePrimaryMode([instance])
Python:
switch_to_single_primary_mode([instance])
範例:使用 mycluster
已指定的變數,變更監聽連接埠執行個體的主機名稱與連接埠號碼,使其成為新的主節點。
mycluster.switchToSinglePrimaryMode('root@localhost:3341')
如果沒有提供執行個體定義,則新的主節點將是具有最高成員權重的執行個體 (如果成員權重相同,則會是 UUID 最小的執行個體)。
如需更多資訊,請參閱變更 InnoDB 叢集的拓樸。
解除 InnoDB Cluster 的隔離,並恢復寫入流量。
JavaScript:
unfenceWrites()
Python:
unfence_writes()
範例:使用 mycluster
已指定的變數,恢復先前隔離寫入流量的叢集的寫入流量。
mycluster.unfenceWrites()
如需詳細資訊,請參閱在 InnoDB ClusterSet 中隔離叢集。