【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】主备模式FAILOVER会丢失数据吗
【复现路径】问题出现前后相关操作
当主租户不可用时,可以将备租户 FAILOVER 为主租户继续提供服务。FAILOVER 完成后需要整个租户达到数据一致的状态,因此 FAILOVER
操作会将租户统一恢复到所有日志流的最小同步位点,也意味着 FAILOVER 不能保证数据零丢失。
n 将备租户 FAILOVER 为主租户的步骤
① 验证 FAILOVER 命令是否可以执行成功:
Ø TENANT:在 SYS 租户中执行用户租户的 FAILOVER 操作时,需要指定租户名。
Ø VERIFY:执行 FAILOVER 前的验证操作。 FAILOVER 操作不检查主租户的状态,要求备库状态正常。
② 验证通过后,将备租户 FAILOVER 为主租户:
③ 查询 DBA_OB_TENANTS 视图,确认备租户是否已切换为主租户。
ALTER SYSTEM ACTIVATE STANDBY [TENANT = tenant_name] VERIFY;
obclient [oceanbase]> SELECT TENANT_NAME, TENANT_TYPE, TENANT_ROLE, SWITCHOVER_STATUS FROM DBA_OB_TENANTS;
±------------±------------±------------±------------------+
| TENANT_NAME | TENANT_TYPE | TENANT_ROLE | SWITCHOVER_STATUS |
±------------±------------±------------±------------------+
| mysql_back
| USER | PRIMARY
| NORMAL |
±------------±------------±------------±------------------+
ALTER SYSTEM ACTIVATE STANDBY [TENANT = tenant_name];
注意:FAILOVER 将主备租户解耦,因此 Failover 操作也可以用于基于主租户某一个时间点的快照数据的业务验证场景。
学习到了
又斩获一级
failover 主备解耦操作,不保证数据零丢失!