全面上市前:2022-11-17

A.1 Dba 类方法

以下部分提供了可用于Dba类方法的选项的详细信息。

检查 InnoDB Cluster 的实例

验证 MySQL InnoDB 集群使用情况的实例。

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

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

选项如下:

  • mycnfPath:实例的 MySQL 配置文件的可选路径。用作 的别名 verifyMyCnf

  • verifyMyCnf:实例的 MySQL 配置文件的可选路径。如果给出此选项,除了全局 MySQL 系统变量外,还将验证配置文件的预期选项值。

  • password:连接到实例的密码。

  • interactive: 布尔值,用于在命令执行时禁用或启用向导,表示根据设置的值是否提供提示和确认。默认值等于 MySQL Shell 向导模式。

示例ic-1:3306:在 InnoDB 集群中 验证 MySQL 实例

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

有关更多信息,请参阅 预检查 InnoDB 集群使用情况的实例配置

为 InnoDB Cluster 配置实例

验证和配置 MySQL InnoDB 集群使用的实例。

  • 脚本: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 实例侦听以port 3306用于 InnoDB 集群。

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

有关更多信息,请参阅 为 InnoDB 集群使用配置生产实例

为 InnoDB Cluster 配置本地实例

验证并配置 InnoDB Cluster 使用的实例。

  • 脚本: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 副本集

验证并配置一个实例以在 InnoDB ReplicaSet 中使用。

  • 脚本: 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 Cluster 管理员名为rsadmin

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

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

Delpoy InnoDB集群

部署一个实例以在 InnoDB 集群中使用。

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

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

选项如下:

  • disableClone:布尔值,用于禁用集群上的克隆使用。

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

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

  • force:布尔值,确认 multiPrimary必须应用该选项和/或即使检测到非托管复制通道也必须继续操作。

  • interactive: 布尔值,用于在命令执行时禁用或启用向导,表示根据设置的值是否提供提示和确认。默认值等于 MySQL Shell 向导模式。

  • adoptFromGR: 用于基于现有复制组创建 InnoDB Cluster 的布尔值。

  • memberSslMode:用于配置集群成员的SSL模式。

  • ipWhitelist:允许连接到实例以进行组复制的主机列表。已弃用。

  • ipAllowlist:允许连接到实例以进行组复制的主机列表。

  • groupName:字符串值,其中包含要使用的组复制组名称 UUID,而不是自动生成的 UUID。

  • localAddress:字符串值,其中包含要使用的组复制本地地址,而不是自动生成的地址。

  • groupSeeds: 字符串值,包含要使用的组复制对等地址的逗号分隔列表,而不是自动生成的地址。弃用和忽略。

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

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

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

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

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

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

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

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

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

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

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

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

有关更多信息,请参阅 创建 InnoDB 集群

部署 InnoDB 副本集

验证并配置一个实例以在 InnoDB ReplicaSet 中使用。

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

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

选项如下:

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

  • instanceLabel: 字符串名称来标识目标实例。默认为 hostname:port.

  • dryRun: Boolean 如果为 true,则执行创建副本集的所有验证和步骤,但实际上不进行任何更改。完成时将抛出异常。

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

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

  • interactive: 布尔值,用于在命令执行时禁用或启用向导,表示根据设置的值是否提供提示和确认。默认值等于 MySQL Shell 向导模式。

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

rs = dba.createReplicaSet("example")

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

删除沙盒实例

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

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

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

选项如下:

  • sandboxDir:实例所在路径。

示例:删除侦听 的沙箱实例port 3316

dba.deleteSandboxInstance(3316)

有关详细信息,请参阅 管理沙盒实例

部署沙箱实例

在本地主机上创建一个新的 MySQL 服务器沙箱实例。

  • 脚本: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)

有关详细信息,请参阅 管理沙盒实例

删除元数据架构

  • 脚本:dba.dropMetadataSchema(options)

  • Python:dba.drop_metadata_schema(options)

删除元数据模式。

选项如下:

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

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

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

myCluster = dba.dropMetadataSchema()

从元数据存储中检索 InnoDB 集群

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

  • 脚本: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 对象。

  • 脚本:dba.getClusterSet()

  • Python:dba.get_cluster_set()

示例:获取表示 InnoDB ClusterSet 的对象,并将其分配给名为的变量cs1

cs1 = dba.getClusterSet()

从元数据存储中检索 ReplicaSet。

从元数据存储中检索 ClusterSet 并返回 ReplicaSet 对象。

  • 脚本:dba.getReplicaSet()

  • Python:dba.get_replica_set()

示例:获取表示 InnoDB ReplicaSet 的对象,并将其分配给名为的变量rs-1

rs-1 = dba.getReplicaSet()

数据库管理员帮助

提供有关此对象及其成员的帮助。

  • 脚本:dba.help([member])

  • Python:dba.help([member])

要查看该getReplicaSet 方法的帮助选项,请键入:

dba.help("getReplicaSet")

强制停止沙盒实例

强制停止本地主机上正在运行的 MySQL 服务器实例。

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

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

选项如下:

  • sandboxDir:实例所在路径。

示例:停止侦听端口 3319 的实例,而不是优雅地停止它,模拟意外停止。

dba.killSandboxInstance(3319)

从完全中断中重启集群

当所有成员都离线时,使集群重新在线。

  • 脚本: 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 服务器实例。

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

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

选项如下:

  • sandboxDir:实例所在路径。

示例:启动一个监听端口 3319 的沙箱实例。

dba.startSandboxInstance(3319)

停止沙盒实例

在本地主机上停止正在运行的 MySQL 服务器沙箱实例。

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

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

选项如下:

  • sandboxDir:实例所在路径。

  • password:实例上 MySQL root 用户的密码。

示例:停止监听端口 3319 的沙箱实例。

dba.stopSandboxInstance(3319)

升级元数据

将元数据升级或恢复到 MySQL Shell 支持的版本。

  • 脚本:dba.upgradeMetadata([options])

  • Python:dba.upgrade_metadata([options])

选项如下:

  • dryRun:布尔值,用于启用升级过程的空运行。

  • interactive: 布尔值,用于在命令执行时禁用或启用向导,表示根据设置的值是否提供提示和确认。默认值等于 MySQL Shell 向导模式。

示例:使用该 dba.upgradeMetadata()操作将集群的元数据升级为新的元数据。

cluster = dba.upgradeMetadata()

有关详细信息,请参阅 升级元数据架构