预发布版: 2024-07-17
以下部分详细介绍了 InnoDB ClusterSet 方法的可用选项。
创建一个新的 InnoDB 集群,该集群是具有给定集群名称和选项的主集群的副本,位于目标实例上。
如果目标实例满足 InnoDB 集群的要求,则将在其上创建一个新的集群,从 InnoDB ClusterSet 主集群的主实例进行复制。
JavaScript:
createReplicaCluster(instance, clusterName[, options])
Python:
create_replica_cluster(instance, clusterName[, options])
选项如下
interactive
: 布尔值,用于禁用或启用命令执行中的向导,这意味着根据设置的值提供或不提供提示和确认。默认值为等于 MySQL Shell 向导模式。dryRun
: 布尔值,如果为真,则执行创建副本集群的所有验证和步骤,但不进行任何更改。完成后将抛出异常。recoveryMethod
: 用于状态恢复或供应的首选方法。可以是auto
、clone
或incremental
。默认值为auto
。recoveryProgress
: 整数,指示恢复过程详细程度级别。cloneDonor
: 用于克隆的 PRIMARY 集群中现有成员的主机:端口。此选项不支持 IPv6 地址。manualStartOnBoot
: 布尔值(默认值为false
)。如果为false
,则集群实例中的组复制将在 MySQL 启动时自动启动并重新加入,否则必须手动启动。memberSslMode
: SSL 模式,用于配置 InnoDB 集群成员之间通信的安全状态。ipAllowlist
: 允许连接到实例以进行组复制的主机列表。localAddress
: 字符串值,包含要使用的组复制本地地址,而不是自动生成的地址。exitStateAction
: 字符串值,表示组复制退出状态操作。memberWeight
: 整数,包含故障转移时自动主选举的百分比权重。consistency
: 字符串值,表示集群提供的保证一致性。expelTimeout
: 整数,定义集群成员在将无法响应的成员逐出集群之前应等待的时间段(以秒为单位)。autoRejoinTries
: 整数,定义实例在被逐出后尝试重新加入集群的次数。timeout
: 实例与 PRIMARY 集群同步的最大等待时间(以秒为单位)。默认值为0
,表示没有超时。replicationAllowedHost
: 字符串值,用作内部复制帐户(表示'mysql_innodb_cluster_###'@'hostname'
)的主机名部分。默认值为%
。集群中的任何成员都必须能够使用具有此主机名值的帐户连接到其他任何成员。
示例: 使用 createReplicaCluster()
方法(使用分配给变量 cs
的 InnoDB ClusterSet 对象)来创建副本集群。
cs.createReplicaCluster("127.0.0.1:4410", "cluster2")
有关使用此方法的更多信息,请参见 部署 InnoDB ClusterSet。
描述 InnoDB ClusterSet 的结构。它返回一个 JSON 对象,描述 InnoDB ClusterSet 的结构。
JavaScript:
describe()
Python:
describe()
示例: 使用分配给 InnoDB ClusterSet 对象的变量 cs
,发出 describe()
函数,以查看 InnoDB ClusterSet 的拓扑结构,并且不需要 状态 信息。
cs.describe()
有关使用此方法的更多信息,请参见 InnoDB ClusterSet 状态和拓扑结构。
断开 InnoDB ClusterSet 对象使用的所有内部会话。
JavaScript:
disconnect()
Python:
disconnect()
示例: 使用分配的变量 cs
,断开 InnoDB ClusterSet 使用的所有内部会话。
cs.disconnect()
执行 InnoDB ClusterSet 主 InnoDB 集群的故障转移。
JavaScript:
forcePrimaryCluster(clusterName[, options])
Python:
force_primary_cluster(clusterName[, options])
选项如下
dryRun
: 如果为真,则执行将执行的检查和日志操作,但不会执行它们。可以通过在 MySQL Shell 中启用详细输出查看将执行的操作。invalidateReplicaClusters
: 列出在故障转移期间要使无效的不可达或不可用的副本集群的名称。
示例: 提供将接管作为新主集群的副本 InnoDB 集群的名称,然后发出。
cs.forcePrimaryCluster("cluster2")
有关使用此方法的更多信息,请参见 InnoDB ClusterSet 紧急故障转移。
返回 InnoDB ClusterSet 的域名。
JavaScript:
getName()
Python:
get_name()
示例: 使用分配给 InnoDB ClusterSet 对象的变量 cs
,显示 InnoDB ClusterSet 的域名。
cs.getName()
提供有关此类及其成员的帮助。
JavaScript:
help([member])
Python:
help([member])
要查看 InnoDB ClusterSet 对象的帮助选项,请键入
\help clusterset
列出 InnoDB ClusterSet 的 MySQL Router 实例,或列出一个单独的 MySQL Router 实例。
JavaScript:
listRouters([router])
Python:
list_routers([router])
示例: 返回所有已注册的 MySQL Router 实例或一个路由器实例的详细信息。
myclusterset.listRouters()
有关使用此方法的更多信息,请参见 将 MySQL Router 集成到 InnoDB ClusterSet。
列出 InnoDB ClusterSet 配置选项。
JavaScript:
options()
Python:
options()
示例: 使用分配的变量 cs
,列出 InnoDB ClusterSet 的所有配置选项。
cs.options()
将无效的集群重新加入到 InnoDB ClusterSet,并更新复制。
JavaScript:
rejoinCluster(clusterName[, options])
Python:
rejoin_cluster(clusterName[, options])
选项如下
dryRun
: 如果为真,则执行将执行的检查和日志操作,但不会执行它们。可以通过在 MySQL Shell 中启用详细输出查看将执行的操作。
示例: 使用分配的变量 cs
将集群重新加入 InnoDB ClusterSet。
cs.rejoinCluster('ClusterSet1')
有关使用此方法的更多信息,请参见 InnoDB ClusterSet 修复和重新加入。
从 InnoDB ClusterSet 中删除副本 InnoDB 集群。
JavaScript:
removeCluster(clusterName[, options])
Python:
remove_cluster(clusterName[, options])
选项如下
force
: 布尔值,指示是否必须删除集群,即使只是从元数据中删除,以防无法访问 PRIMARY 或找不到 InnoDB ClusterSet 复制通道或已停止。默认情况下,设置为false
。timeout
: 实例与 PRIMARY 集群同步的最大等待时间(以秒为单位)。默认值为0
,表示没有超时。dryRun
: 布尔值,如果true
,则执行从 InnoDB ClusterSet 中删除集群的所有验证和步骤,但实际上不会进行任何更改。完成后将抛出异常。
示例: 从 InnoDB ClusterSet 中删除名为“replica2”的集群。
cs.removeCluster("replica2")
有关使用此方法的更多信息,请参见 从 InnoDB ClusterSet 中删除集群。
通过返回描述 InnoDB ClusterSet 的所有路由器实例的配置选项及其全局选项的 JSON 对象,或仅返回指定路由器的配置选项,列出 InnoDB ClusterSet 路由器的配置选项。
JavaScript:
routingOptions([router])
Python:
routing_options([router])
示例: 显示为每个 MySQL 路由器实例设置的路由选项以及 IInnoDB ClusterSet 部署的全局策略。
cs.routingOptions()
有关使用此方法的更多信息,请参见 将 MySQL Router 集成到 InnoDB ClusterSet。
更改整个 InnoDB ClusterSet 的选项的值。
JavaScript:
setOption(option, value)
Python:
set_option(option, value)
选项如下
value
: 选项将检索的值。
示例: 使用分配给变量 cs
的 InnoDB 集群,将其标记为 location
标记设置为 US East
。
cs.setOption("tag:location", "US East")
有关使用此方法的更多信息,请参见 标记元数据。
执行 InnoDB ClusterSet 的主 InnoDB 集群的安全切换。
JavaScript:
setPrimaryCluster(clusterName[, options])
Python:
set_primary_cluster(clusterName[, options])
选项如下
dryRun
: 如果true
,将执行将要执行的检查和日志操作,但不会执行它们。可以通过在 MySQL Shell 中启用详细输出来查看将要执行的操作。timeout
: 整数值,用于设置等待集群同步的最大秒数。invalidateReplicaClusters
: 要在切换期间失效的不可访问或不可用 REPLICA 集群的名称列表。
示例: 提供将接管为主集群的 InnoDB 集群的名称。
cs.setPrimaryCluster('clustertwo')
有关使用此方法的更多信息,请参见 InnoDB ClusterSet 受控切换。
更改全局路由选项或单个 MySQL 路由器实例的值。
JavaScript:
setRoutingOption([router], option, value)
Python:
set_routing_option([router], option, value)
选项如下
target_cluster
: 路由器路由操作的目标集群。invalidated_cluster_policy
: 检测到目标集群失效时要采取的路由策略。
示例: 更改全局路由选项或单个路由器实例的值。
在此示例中,cs
是 InnoDB ClusterSet 对象的变量,Rome1
是 MySQL 路由器实例的名称,而 cluster2
是要定位的特定集群的名称。
cs.setRoutingOption('Rome1', 'target_cluster', 'cluster2')
有关使用此方法的更多信息,请参见 将 MySQL Router 集成到 InnoDB ClusterSet。
描述 InnoDB ClusterSet 的状态。该方法从 InnoDB ClusterSet 的每个成员及其复制通道收集状态信息,以生成整个 InnoDB ClusterSet 的状态报告。
JavaScript:
status([options])
Python:
status([options])
可以给出以下选项来控制收集和返回的信息量。选项 extended
可以具有以下值
0
: 常规级别的详细信息。仅关于 InnoDB ClusterSet 和 InnoDB 集群成员状态的基本信息。1
: 包括关于每个集群状态的基本信息,关于每个集群成员角色和状态的信息(如组复制报告),以及关于 InnoDB ClusterSet 复制通道的信息。2
: 包括隔离系统变量、应用程序工作线程、成员 ID 等的列表。关于 InnoDB ClusterSet 复制通道的信息扩展到包括关于应用程序队列大小、应用程序队列 GTID 集、协调器状态等信息。3
: 包括重要的与复制相关的配置设置,例如 InnoDB ClusterSet 复制通道的复制延迟、心跳延迟、重试次数和连接重试。
示例: 连接到 InnoDB ClusterSet 的任何活动成员,并使用分配的 cs
变量。
cs.status()
有关使用此方法的更多信息,请参见 InnoDB ClusterSet 状态和拓扑结构。