文档首页
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

示例: 配置本地 MySQL 实例,监听 端口 3306,用于 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 向导模式。

示例: 配置本地 MySQL 实例,监听端口 3306,用于 InnoDB 集群。

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

有关更多信息,请参阅 使用 dba.configureLocalInstance() 配置实例.

配置 InnoDB ReplicaSet

验证和配置 InnoDB ReplicaSet 中使用的实例。

  • 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 上的实例,集群管理员名为 rsadmin

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

有关更多信息,请参阅 部署 InnoDB ReplicaSet.

部署 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: 字符串值,包含要使用的 Group Replication 组名称 UUID,而不是自动生成的 UUID。

  • localAddress: 字符串值,包含要使用的 Group Replication 本地地址,而不是自动生成的地址。

  • groupSeeds: 字符串值,包含要使用的 Group Replication 对等地址的逗号分隔列表,而不是自动生成的列表。已弃用并被忽略。

  • manualStartOnBoot: 布尔值(默认为 false)。如果为 false,集群实例中的 Group Replication 将在 MySQL 启动时自动启动并重新加入,否则必须手动启动。

  • replicationAllowedHost: 字符串值,用作内部复制帐户的主机名部分(表示 'mysql_innodb_cluster_###'@'hostname')。默认值为 %。集群的任何成员必须能够使用具有此主机名值的帐户连接到任何其他成员。

  • exitStateAction: 字符串值,指示组复制退出状态操作。

  • memberWeight: 整数值,表示故障转移时自动主选举的百分比权重。

  • consistency: 字符串值,指示集群提供的的一致性保证。

  • failoverConsistency: 字符串值,指示集群提供的的一致性保证。

  • expelTimeout: 整数值,定义集群成员在将非响应成员从集群中驱逐之前等待的时间段(以秒为单位)。

  • autoRejoinTries: 整数值,定义实例在被驱逐后尝试重新加入集群的次数。

  • clearReadOnly: 用于确认super_read_only必须被禁用的布尔值。已弃用。

  • multiMaster: 用于定义具有多个可写实例的 InnoDB Cluster 的布尔值。已弃用。

示例: 创建一个名为 testCluster 的 InnoDB Cluster,并将返回的集群分配给名为 ic-1 的变量。

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

有关更多信息,请参见 创建 InnoDB Cluster.

部署 InnoDB ReplicaSet

验证和配置 InnoDB ReplicaSet 中使用的实例。

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

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

选项如下

  • adoptFromAR: 用于基于现有异步复制设置创建 InnoDB ReplicaSet 的布尔值。

  • instanceLabel: 用于标识目标实例的字符串名称。默认为 hostname:port

  • dryRun: 布尔值,如果为真,则会执行创建复制集的所有验证和步骤,但不会实际进行更改。完成后将抛出异常。

  • gtidSetIsComplete: 布尔值,指示种子实例的 GTID 集是否对应于所有已执行的事务。默认值为 false

  • replicationAllowedHost: 用作内部复制帐户的主机名部分的字符串值,即 mysql_innodb_rs_###'@'hostname'。默认为 %。InnoDB ReplicaSet 的任何成员必须能够使用具有此主机名值的帐户连接到任何其他成员。

  • interactive: 布尔值,用于禁用或启用命令执行中的向导,这意味着根据设置的值提供或不提供提示和确认。默认值等于 MySQL Shell 向导模式。

示例: 创建一个名为 example 的 InnoDB ReplicaSet,并将其分配给 rs 变量。

rs = dba.createReplicaSet("example")

有关更多信息,请参阅 部署 InnoDB ReplicaSet.

删除沙箱实例

删除在本地主机上部署的现有 MySQL 服务器沙箱实例。

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

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

选项如下

  • sandboxDir: 实例所在的路径。

示例: 删除侦听 端口 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 字符串形式给出。

示例: 部署一个侦听 端口 3310 的新沙箱实例。

dba.deploySandboxInstance(3310)

有关更多信息,请参见 管理沙箱实例.

删除元数据模式

  • JavaScript: dba.dropMetadataSchema(options)

  • Python: dba.drop_metadata_schema(options)

删除元数据模式。

选项如下

  • force: 布尔值,确认必须执行删除操作。

  • clearReadOnly: 布尔值,用于确认必须禁用 super_read_only

示例: 从分配给名为 myCluster 的变量的已连接集群中删除元数据。

myCluster = dba.dropMetadataSchema()

从元数据存储区检索 InnoDB Cluster

从元数据存储区检索集群,并返回由给定名称标识的集群对象,如果未指定名称或名称为 null,则将返回默认集群。

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

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

选项如下

  • connectToPrimary: 指示 shell 是否自动连接到集群的主成员,默认值为 true

示例: 获取一个表示 InnoDB Cluster 的对象,并将其分配给名为 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 Cluster.

启动沙箱实例

启动本地主机上已存在的 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()

有关更多信息,请参见 升级元数据模式.