DBAtlas · 数据库运维图谱

InnoDB Cluster 中计划内的主节点切换

MySQLInnoDB Cluster

命令

# Shell: planned switchover
mysqlsh icadmin@db1:3306 -- cluster set-primary-instance db2:3306

-- SQL alternative: target member's server_uuid, 30 s timeout for open transactions
SELECT MEMBER_HOST, MEMBER_ID, MEMBER_ROLE FROM performance_schema.replication_group_members;
SELECT group_replication_set_as_primary('3f06e651-c356-11f1-8aac-927a9034ef99', 30);

作用

在 single-primary 模式下有控制地将主节点角色迁移到另一个成员;旧主节点变为 super_read_only,新主节点应用其积压后开放写入。MySQL Router 会自动获知新的主节点。

适用场景

在维护、操作系统打补丁或升级主节点之前,以及硬件迁移时。

注意

超时到期时,旧主节点上未结束的事务会被终止;不设置超时时,切换会等待它们,耗时更长。如果应用不通过 Router 连接,必须自行重定向。使用 BEFORE_ON_PRIMARY_FAILOVER 时,写入会等待新主节点清空其积压;请先在集群状态中确认 apply_queue 为空。在 InnoDB Cluster 中优先使用 Shell 命令;它与元数据保持一致。

在 DBAtlas 中打开 →

相关内容