文件首頁
MySQL Shell for VS Code


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

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

A.1 Dba 類別方法

以下章節提供 Dba 類別方法的可用選項詳細資訊。

檢查 InnoDB 叢集的執行個體

驗證 MySQL InnoDB 叢集使用方式的執行個體。

  • JavaScript:dba.checkInstanceConfiguration(instance[, options])

  • Python:dba.check_instance_configuration(instance[, options])

選項如下

  • mycnfPath:執行個體的 MySQL 組態檔案的可選路徑。用作 verifyMyCnf 的別名。

  • verifyMyCnf:執行個體的 MySQL 組態檔案的可選路徑。如果提供此選項,除了全域 MySQL 系統變數外,還會針對預期的選項值驗證組態檔案。

  • password:連線至執行個體的密碼。

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

範例:驗證 ic-1:3306 的 MySQL 執行個體,以便在 InnoDB 叢集中使用。

dba.checkInstanceConfiguration('icadmin@ic-1:3306')

如需詳細資訊,請參閱 預先檢查 InnoDB 叢集使用方式的執行個體組態

設定 InnoDB 叢集的執行個體

驗證和設定 MySQL InnoDB 叢集使用方式的執行個體。

  • JavaScript:dba.configureInstance([instance][, options])

  • Python:dba.configure_instance([instance][, options])

選項如下

  • mycnfPath:執行個體的 MySQL 組態檔案路徑。

  • outputMycnfPath:用於寫入執行個體 MySQL 組態檔案的替代輸出路徑。

  • password:用於連線的密碼。

  • clusterAdmin:「叢集管理員」帳戶的名稱。

  • clusterAdminPassword:「叢集管理員」帳戶的密碼。

  • clearReadOnly:用於確認必須停用 super_read_only 的布林值。

  • restart:用於表示應執行目標執行個體遠端重新啟動以完成操作的布林值。

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

  • applierWorkerThreads:用於套用複寫交易的執行緒數目。預設值為 4

範例:設定接聽 連接埠 3306 的本機 MySQL 執行個體,以便在 InnoDB 叢集中使用。

dba.configureInstance('user@example:3306')

如需詳細資訊,請參閱 設定 InnoDB 叢集使用方式的生產執行個體

設定本機 InnoDB 叢集執行個體

驗證和設定 InnoDB 叢集使用方式的執行個體。

  • JavaScript:dba.configureLocalInstance([instance][, options])

  • Python:dba.configure_local_instance([instance][, options])

選項如下

  • mycnfPath:執行個體的 MySQL 組態檔案路徑。

  • outputMycnfPath:用於寫入執行個體 MySQL 組態檔案的替代輸出路徑。

  • password:用於連線的密碼。

  • clusterAdmin:叢集管理員帳戶的名稱。

  • clusterAdminPassword:叢集管理員帳戶的密碼。

  • clearReadOnly:用於確認必須停用 super_read_only 的布林值。

  • restart:用於表示應執行目標執行個體遠端重新啟動以完成操作的布林值。

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

範例:設定接聽連接埠 3306 的本機 MySQL 執行個體,以便在 InnoDB 叢集中使用。

dba.configureLocalInstance('icadmin@ic-2:3306')

如需詳細資訊,請參閱 使用 dba.configureLocalInstance() 設定執行個體

設定 InnoDB 複本集

驗證和設定 InnoDB 複本集中使用的執行個體。

  • JavaScript:dba.configureReplicaSetInstance([instance][, options])

  • Python:dba.configure_replica_set_instance([instance][, options])

  • 選項如下

    • password:用於連線的密碼。

    • clusterAdmin:要建立的叢集管理員使用者的名稱。支援的格式為標準 MySQL 帳戶名稱格式。

    • clusterAdminPassword:「叢集管理員」帳戶的密碼。

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

    • restart:用於表示應執行目標執行個體遠端重新啟動以完成操作的布林值。

    • applierWorkerThreads:用於套用複寫交易的執行緒數目。預設值為 4

  • 範例:設定 rs-1:3306 的執行個體,其 InnoDB 叢集管理員名稱為 rsadmin

    dba.configureReplicaSetInstance('root@rs-1:3306', {clusterAdmin: "'rsadmin'@'rs-1%'"})

如需詳細資訊,請參閱 部署 InnoDB 複本集

部署 InnoDB 叢集

部署 InnoDB 叢集中使用的執行個體。

  • JavaScript:dba.createCluster(name[, options])

  • Python:dba.create_cluster(name[, options])

選項如下

  • disableClone:用於停用叢集上複製使用方式的布林值。

  • gtidSetIsComplete:布林值,表示種子執行個體的 GTID 集是否對應至已執行的所有交易。預設值為 false。

  • multiPrimary:用於定義具有多個可寫入執行個體的 InnoDB 叢集的布林值。

  • force:布林值,確認必須套用 multiPrimary 選項和/或即使偵測到未受管理複寫通道,也必須繼續操作。

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

  • adoptFromGR:用於根據現有的複寫群組建立 InnoDB 叢集的布林值。

  • memberSslMode:用於設定叢集成員的 SSL 模式。

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

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

  • groupName:具有要使用的群組複寫群組名稱 UUID 的字串值,而不是自動產生的值。

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

  • groupSeeds:具有以逗號分隔的群組複寫對等位址清單的字串值,而不是自動產生的位址清單。已棄用並忽略。

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

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

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

  • memberWeight:整數值,以百分比表示在容錯移轉時自動主要選舉的權數。

  • consistency:指示叢集提供的一致性保證的字串值。

  • failoverConsistency: 字串值,表示叢集提供的資料一致性保證。

  • expelTimeout: 整數值,定義叢集成員在將無回應成員逐出叢集之前應等待的秒數。

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

  • clearReadOnly: 布林值,用於確認必須停用 super_read_only。已棄用。

  • multiMaster: 布林值,用於定義具有多個可寫入執行個體的 InnoDB 叢集。已棄用。

範例:建立名為 testCluster 的 InnoDB 叢集,並將傳回的叢集指派給名為 ic-1 的變數。

ic-1 = dba.createCluster('testCluster')

如需詳細資訊,請參閱建立 InnoDB 叢集

部署 InnoDB ReplicaSet

驗證和設定 InnoDB 複本集中使用的執行個體。

  • JavaScript: dba.createReplicaSet(name[, options])

  • Python: dba.create_replica_set(name[, options])

選項如下

  • adoptFromAR: 布林值,用於根據現有的非同步複寫設定建立 InnoDB ReplicaSet。

  • instanceLabel: 字串,用於識別目標執行個體的名稱。預設為 hostname:port

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

  • gtidSetIsComplete: 布林值,表示種子執行個體的 GTID 集是否對應於所有已執行的交易。預設值為 false

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

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

範例:建立名為 example 的 InnoDB ReplicaSet,並將其指派給 rs 變數。

rs = dba.createReplicaSet("example")

如需詳細資訊,請參閱 部署 InnoDB 複本集

刪除沙箱執行個體

刪除在本機主機上部署的現有 MySQL 伺服器沙箱執行個體。

  • JavaScript: dba.deleteSandboxInstance(port[, options])

  • Python: dba.delete_sandbox_instance(port[, options])

選項如下

  • sandboxDir: 執行個體所在的路徑。

範例:刪除監聽 port 3316 的沙箱執行個體。

dba.deleteSandboxInstance(3316)

如需詳細資訊,請參閱管理沙箱執行個體

部署沙箱執行個體

在本機主機上建立新的 MySQL 伺服器沙箱執行個體。

  • JavaScript: dba.deploySandboxInstance(port[, options])

  • Python: dba.deploy_sandbox_instance(port[, options])

選項如下

  • port: 新執行個體將監聽 X 通訊協定連線的連接埠。

  • sandboxDir: 將部署新執行個體的路徑。

  • password: 新執行個體上 MySQL root 使用者的密碼。

  • allowRootFrom: 建立遠端 root 帳戶,限制為給定的位址模式,預設值為 %

  • ignoreSslError: 忽略為新執行個體新增 SSL 支援時發生的錯誤,預設值:true

  • mysqldOptions: 要寫入 my.cnf 檔案的 MySQL 組態選項清單,格式為 option=value 字串。

範例:部署一個新的沙箱執行個體,監聽 port 3310

dba.deploySandboxInstance(3310)

如需詳細資訊,請參閱管理沙箱執行個體

刪除中繼資料結構描述

  • JavaScript: dba.dropMetadataSchema(options)

  • Python: dba.drop_metadata_schema(options)

刪除中繼資料結構描述。

選項如下

  • force: 布林值,確認必須執行刪除作業。

  • clearReadOnly:用於確認必須停用 super_read_only 的布林值。

範例:從指派給名為 myCluster 的變數的已連線叢集中移除中繼資料。

myCluster = dba.dropMetadataSchema()

從中繼資料儲存區擷取 InnoDB 叢集處理常式

從中繼資料儲存區擷取叢集,並傳回由給定名稱識別的叢集物件,如果未指定名稱或為 null,則傳回預設叢集。

  • JavaScript: dba.getCluster([name][, options])

  • Python: dba.get_cluster([name][, options])

選項如下

  • connectToPrimary: 表示 Shell 是否自動連線至叢集的主要成員,預設值為 true

範例:取得代表 InnoDB 叢集的物件,並將其指派給名為 ic-1 的變數。

ic-1 = dba.getCluster()

從中繼資料儲存區擷取 InnoDB ClusterSet 處理常式

從中繼資料儲存區擷取 ClusterSet,並傳回 ClusterSet 物件。

  • JavaScript: dba.getClusterSet()

  • Python: dba.get_cluster_set()

範例:取得代表 InnoDB ClusterSet 的物件,並將其指派給名為 cs1 的變數。

cs1 = dba.getClusterSet()

從中繼資料儲存區擷取 ReplicaSet。

從中繼資料儲存區擷取 ClusterSet,並傳回 ReplicaSet 物件。

  • JavaScript: dba.getReplicaSet()

  • Python: dba.get_replica_set()

範例:取得代表 InnoDB ReplicaSet 的物件,並將其指派給名為 rs-1 的變數。

rs-1 = dba.getReplicaSet()

Dba 說明

提供關於此物件及其成員的說明。

  • JavaScript: dba.help([member])

  • Python: dba.help([member])

若要查看 getReplicaSet 方法的說明選項,請輸入

dba.help("getReplicaSet")

強制停止沙箱執行個體

強制停止在本機主機上執行的 MySQL 伺服器執行個體。

  • JavaScript: dba.killSandboxInstance(port[, options])

  • Python: dba.kill_sandbox_instance(port[, options])

選項如下

  • sandboxDir: 執行個體所在的路徑。

範例:停止監聽連接埠 3319 的執行個體,但不正常停止,模擬非預期的停止。

dba.killSandboxInstance(3319)

從完全停機重新啟動叢集

在所有成員都離線時,將叢集重新上線。

  • JavaScript: dba.rebootClusterFromCompleteOutage([clusterName][, options])

  • Python: dba.reboot_cluster_from_complete_outage([clusterName][, options])

選項如下

  • user: 用於執行個體工作階段所需作業的使用者。

  • password: 用於執行個體工作階段所需作業的密碼。

  • removeInstances: 要從叢集中移除的執行個體清單。

  • rejoinInstances: 要重新加入叢集的執行個體清單。

  • clearReadOnly:用於確認必須停用 super_read_only 的布林值。

範例:透過發出重新啟動叢集,將此命令的輸出指派給名為 cluster 的變數。

var cluster = dba.rebootClusterFromCompleteOutage()

如需詳細資訊,請參閱還原和重新啟動 InnoDB 叢集

啟動沙箱執行個體

啟動在本機主機上的現有 MySQL 伺服器執行個體。

  • JavaScript: dba.startSandboxInstance(port[, options])

  • Python: dba.start_sandbox_instance(port[, options])

選項如下

  • sandboxDir: 執行個體所在的路徑。

範例:啟動監聽連接埠 3319 的沙箱執行個體。

dba.startSandboxInstance(3319)

停止沙箱執行個體

停止在本機主機上執行的 MySQL 伺服器沙箱執行個體。

  • JavaScript: dba.stopSandboxInstance(port[, options])

  • Python: dba.stop_sandbox_instance(port[, options])

選項如下

  • sandboxDir: 執行個體所在的路徑。

  • password: 執行個體上 MySQL root 使用者的密碼。

範例:停止監聽連接埠 3319 的沙箱執行個體。

dba.stopSandboxInstance(3319)

升級中繼資料

將中繼資料升級或還原至 MySQL Shell 支援的版本。

  • JavaScript: dba.upgradeMetadata([options])

  • Python: dba.upgrade_metadata([options])

選項如下

  • dryRun: 布林值,用於啟用升級程序的試執行。

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

範例:使用 dba.upgradeMetadata() 作業將叢集的中繼資料升級至新的中繼資料。

cluster = dba.upgradeMetadata()

如需詳細資訊,請參閱升級中繼資料結構描述