PingKai Logo下载

ADMIN ACTIVATE STANDBY

ADMIN ACTIVATE STANDBY 用于在计划外切换(Failover)场景下将 standby 集群激活为 primary。不指定模式时,系统会根据当前复制状态和已接收日志的安全性自动选择 FLASHBACK(回退到一致性快照点)或 FORCE_COMMIT(强制提交已接收数据)。你也可以显式指定 FLASHBACK、FORCE_COMMIT,或使用 FORCE 强制以 FLASHBACK 方式激活。

该语句必须在当前 standby 集群上执行。

所需权限

执行该语句需要 SUPER 权限。

语法图

ADMIN ACTIVATE STANDBY;
ADMIN ACTIVATE STANDBY MODE = FLASHBACK | FORCE_COMMIT;
ADMIN ACTIVATE STANDBY FORCE;

参数说明

参数说明
不指定模式默认模式。异步复制时使用 FLASHBACK,同步复制时使用 FORCE_COMMIT。
FLASHBACK将 standby 的数据回退到一个一致性快照点后激活为 primary。适用于异步复制场景,或同步复制场景但无法确认原 primary 状态
FORCE_COMMIT强制提交 standby 已接收的所有数据后激活为 primary。仅限同步复制场景,可确保 RPO = 0
FORCE跳过对原 primary 可访问性和复制关系是否已删除的检查,并强制以 FLASHBACK 方式激活。FORCE 不能与 MODE = FORCE_COMMIT 组合使用。

使用 FORCE_COMMIT 前必须满足以下条件:

  • 当前实际复制模式为 SYNC,可通过 INFORMATION_SCHEMA.LR_STATUS_GLOBAL.REPLICATION_MODE 检查。处于 MAXIMUM_AVAILABILITY 保护模式但实际复制模式为 ASYNC 时,不满足此条件。
  • 原 primary 尚未执行 ADMIN DROP LOG REPLICATION
  • 已确认原 primary 已彻底停机或网络隔离

若已在原 primary 上执行过 ADMIN DROP LOG REPLICATION,只能使用 FLASHBACK 方式(显式指定 MODE = FLASHBACK 或使用 FORCE)。

使用默认模式时,无需指定 MODE。如果同步复制期间存在无法安全提交的已接收日志,系统会自动改用 FLASHBACK,而不会以 FORCE_COMMIT 方式激活。

使用 FORCE 会跳过部分故障检查,仅建议在确认需要强制激活时使用。执行前仍应确认原 primary 已彻底停机或网络隔离。

示例

使用默认模式激活:

ADMIN ACTIVATE STANDBY;

使用 FLASHBACK 模式激活:

ADMIN ACTIVATE STANDBY MODE = FLASHBACK;

使用 FORCE_COMMIT 模式激活:

ADMIN ACTIVATE STANDBY MODE = FORCE_COMMIT;

强制以 FLASHBACK 方式激活:

ADMIN ACTIVATE STANDBY FORCE;

MySQL 兼容性

ADMIN ACTIVATE STANDBY 语句是 TiDB 对 MySQL 语法的扩展。

另请参阅