全面上市前:2022-11-17
以下部分提供了可用于 InnoDB ReplicaSet 方法的选项的详细信息。
将给定的 MySQL 实例添加为 InnoDB ReplicaSet 当前主实例的只读辅助副本。复制是在添加的实例和主实例之间配置的。复制使用自动创建的 MySQL 帐户和随机密码。
脚本:
addInstance(instance[, options])
Python:
add_instance(instance[, options])
选项如下:
dryRun
:如果为真,则执行检查并记录将要进行的更改,但不执行它们。label
: 正在添加的实例的标识符,在 的输出中使用status()
。recoveryMethod
: 状态恢复的首选方法。可以是自动的、克隆的或增量的。默认为自动。waitRecovery
:整数值,表示恢复过程的详细级别。cloneDonor
:host:port
要从中克隆的现有副本集成员。此选项不支持 IPv6 地址。interactive
: 布尔值,用于在命令执行中禁用或启用向导,表示根据设置的值是否提供提示和确认。默认值等于 MySQL Shell 向导模式。timeout
:事务同步操作的超时秒数;0
禁用超时并强制 Shell 等待事务同步完成。默认为0
.
示例rs
:使用分配给 ReplicaSet 的变量将
实例添加到 InnoDB
rs.addInstance('root@localhost:4430')
描述 InnoDB ReplicaSet 的状态。
脚本:
status([options])
Python:
status([options])
extended
选项如下
:
0
:禁用命令详细信息(默认)。1
:包括有关元数据版本、组协议版本、组名称、ReplicaSet UUID、ReplicaSet 成员角色和状态的信息,这些信息由 Group Replication 和受防护系统变量列表报告。2
:包括有关连接和应用程序处理的事务的信息。3
:包括有关每个 ReplicaSet 成员的复制机制的更详细统计信息。Boolean
: 相当于分配0
(false
) 或1
(true
)。
示例:使用分配的变量返回描述 InnoDB ReplicaSet 状态的 JSON 对象rs
。
rs.status()
断开 InnoDB ReplicaSet 用于查询元数据和复制信息的内部 MySQL 会话。
脚本:
disconnect()
Python:
disconnect()
示例:断开分配给变量 to 的 ReplicaSet 使用的所有内部会话rs
。
rs.disconnect()
在灾难场景中对 InnoDB ReplicaSet 的主节点执行强制故障转移,当前主节点不可用且无法恢复。
脚本:
forcePrimaryInstance(instance, options)
Python:
force_primary_instance(instance, options)
选项如下:
dryRun
:如果为 true,则执行将要执行但不会执行的检查和日志操作。可以通过在 shell 中启用详细输出来查看将要执行的操作。timeout
:整数值,表示要等待的最大秒数,直到被提升的实例赶上当前主实例。invalidateErrorInstances
:如果为 false,则在旧 master 以外的任何实例无法访问或出现错误时中止故障转移。如果为真,此类实例将不会被故障转移并失效。
示例:
forcePrimaryInstance
在dryrun
选项设置为true
,以检查是否存在强制故障转移到实例的潜在错误
rs2:4460
。
rs.forcePrimaryInstance('rs2:4460' ,{dryRun: true})
返回 InnoDB ReplicaSet 的名称。
脚本:
getName()
Python:
get_name()
示例:返回分配给变量的 InnoDB ReplicaSet 的名称
rs
:
rs.getName()
列出路由器实例并提供有关为 InnoDB ReplicaSet 注册的所有路由器实例的信息。
脚本:
listRouters()
Python:
list_routers()
选项如下:
onlyUpgradeRequired
:布尔值,启用过滤,因此仅包含支持旧版本元数据模式并需要升级的路由器实例。
示例:列出所有已注册的与 ReplicaSet 关联的 MySQL Router 实例,分配给rs
.
rs.listRouters()
返回描述 InnoDB ReplicaSet 的配置选项的 JSON 对象。
脚本:
options()
Python:
options()
示例:使用分配的变量列出 InnoDB ReplicaSet 的所有配置选项rs
。
rs.options()
将实例重新加入 InnoDB ReplicaSet。
脚本:
rejoinInstance(instance[, options])
Python:
rejoin_instance(instance[, options])
选项如下:
dryRun
:如果为 true,则执行将要执行但不会执行的检查和日志操作。recoveryMethod
: 状态恢复的首选方法。可以是自动的、克隆的或增量的。默认为自动。waitRecovery
:整数值,表示恢复过程的详细级别。cloneDonor
:要从中克隆的现有 ReplicaSet 成员的主机:端口。此选项不支持 IPv6 地址。interactive
: 布尔值,用于在命令执行时禁用或启用向导,表示根据设置的值是否提供提示和确认。默认值等于 MySQL Shell 向导模式。timeout
:事务同步操作的超时秒数;0
禁用超时并强制 MySQL Shell 等待事务同步完成。默认为0
.
示例:使用rs
分配给 InnoDB ReplicaSet 的变量将实例重新加入到在本地主机的端口 4450 上运行的 InnoDB ReplicaSet。
rs.rejoinInstance('root@localhost:4450')
从 InnoDB ReplicaSet 中删除一个实例。
脚本:
removeInstance(instance[, options])
Python:
remove_instance(instance[, options])
选项如下:
force
:布尔值,指示是否必须删除实例,即使仅从元数据中删除,以防无法访问。默认情况下,设置为false
。timeout
:等待实例与主实例同步的最大秒数。0
意味着没有超时,0
将跳过同步。
示例rs
:使用分配给 InnoDB ReplicaSet
的变量从在本地主机的端口 4450 上运行的 InnoDB ReplicaSet 中删除实例
rs.removeInstance('root@localhost:4450')
删除路由器实例的元数据。
脚本:
removeRouterMetadata(routerDef)
Python:
remove_router_metadata(routerDef)
示例myRouter1
:使用分配的变量从 ReplicaSet 的元数据中删除已注册的 MySQL Router 实例rs
。
rs.removeRouterMetadata('myRouter1')
更改 InnoDB ReplicaSet 成员中选项的值。
脚本:
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 的选项值。
脚本:
setOption(option, value)
Python:
set_option(option, value)
选项如下:
tag:<option>
:要与 InnoDB ReplicaSet 关联的内置和用户定义的标签。exitStateAction
:表示组复制退出状态操作的字符串值。memberWeight
:整数值,带有故障转移时自动主要选举的百分比权重。AutoRejoinTries
:整数值,用于定义实例在被驱逐后尝试重新加入 InnoDB ReplicaSet 的次数。Label
:实例的字符串标识符。
示例:设置 InnoDB ReplicaSet,分配给rs
位置元数据标记设置为美国东部的变量。new_rs
使用分配的变量将 ReplicaSet 的名称标签更改为rs
。
rs.setOption("tag:location", "US East")
有关详细信息,请参阅 标记元数据。
选择一个特定的 InnoDB ReplicaSet 成员作为新的主要成员。
脚本:
setPrimaryInstance(instance)
Python:
set_primary_instance(instance)
示例:使用分配的变量将新主实例设置为侦听端口 4450 的实例rs
。
rs.setPrimaryInstance('root@localhost:4450')
有关更多信息,请参阅 更改 InnoDB 集群的拓扑。
创建或升级 InnoDB ReplicaSet 管理员帐户。
脚本:
setupAdminAccount(user, options)
Python:
setup_admin_account(user, options)
选项如下:
password
:InnoDB ReplicaSet 管理员帐户的密码。dryRun
:布尔值,用于启用帐户设置过程的空运行。默认值为false
。interactive
: 布尔值,用于禁用或启用命令执行中的向导,表示根据设置的值是否提供提示和确认。默认值等于 MySQL Shell 向导模式。update
:必须启用的布尔值,以允许更新现有帐户的权限和/或密码。默认值为假。
示例:使用分配的变量创建或升级具有管理 InnoDB ReplicaSet 所需权限的 MySQL 用户帐户
rs
。例如,设置
demo-user
密码为
Password1
.
rs.setupAdminAccount("demo_user", {password:"Password1"})
有关详细信息,请参阅 为 AdminAPI 创建用户帐户。
创建或升级 MySQL 帐户以与 MySQL Router 一起使用。
脚本:
setupRouterAccount(user, options)
Python:
setup_router_account(user, options)
选项如下:
password
:MySQL Router 帐户的密码。dryRun
:布尔值,用于启用帐户设置过程的空运行。默认值为false
。interactive
: 布尔值,用于禁用或启用命令执行中的向导,表示根据设置的值是否提供提示和确认。默认值等于 MySQL Shell 向导模式。
示例:强制参数user
是要创建或升级的 MySQL 帐户的名称,将由 MySQL Router 使用。
rs.setupRouterAccount('test@localhost:3306')
有关详细信息,请参阅 配置 MySQL 路由器用户。