适用场景: OCP 不可用,黑屏 Failover 故障应急场景,客户端登录备租户所在集群,检查备租户是否具备 Failover 条件、查询 Failover 目标 SCN 快照位点,及完整 Failover 过程指令。
详细说明
执行 Failover 切换预检查。
-- 集群 sys 租户: ALTER SYSTEM ACTIVATE STANDBY TENANT = $tenant_name VERIFY; -- 或者业务租户: ALTER SYSTEM ACTIVATE STANDBY VERIFY; -- 结果样例: Query OK, 0 rows affected (3.172 sec) "Query OK" --> 则验证通过查询备租户的 Failover SCN。
-- 集群 sys 租户 select tenant_id,tenant_name,tenant_role,scn_to_timestamp(sync_scn) failover_target_scn from dba_ob_tenants where tenant_name=$tenant_name; +-----------+-------------+-------------+----------------------------+ | tenant_id | tenant_name | tenant_role | failover_target_scn | +-----------+-------------+-------------+----------------------------+ | 1026 | $tenant_name| STANDBY | 2025-12-09 15:44:19.582936 | +-----------+-------------+-------------+----------------------------+执行 Failover 切换。
-- 集群 sys 租户: ALTER SYSTEM ACTIVATE STANDBY TENANT = $tenant_name; -- 或者业务租户: ALTER SYSTEM ACTIVATE STANDBY;确认 Failover 结果。
-- 集群 sys 租户 SELECT TENANT_NAME, TENANT_TYPE, TENANT_ROLE, SWITCHOVER_STATUS FROM oceanbase.DBA_OB_TENANTS where tenant_name = $tenant_name; +-----------------+-------------+-------------+-------------------+ | TENANT_NAME | TENANT_TYPE | TENANT_ROLE | SWITCHOVER_STATUS | +-----------------+-------------+-------------+-------------------+ | $tenant_name | USER | PRIMARY | NORMAL | +-----------------+-------------+-------------+-------------------+ 备租户的 TENANT_ROLE 变为 PRIMARY,且 SWITCHOVER_STATUS 为 NORMAL,则表示备租户切主成功
Failover 切换预检查项
租户状态检查。
SELECT TENANT_ID, TENANT_NAME, TENANT_ROLE, STATUS, SWITCHOVER_STATUS, RECOVERY_UNTIL_SCN, scn_to_timestamp(SYNC_SCN) failover_target_scn FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = $tenant_name OR TENANT_ID = $tenant_id; +-----------+-------------+-------------+--------+-------------------+---------------------+----------------------------+ | TENANT_ID | TENANT_NAME | TENANT_ROLE | STATUS | SWITCHOVER_STATUS | RECOVERY_UNTIL_SCN | failover_target_scn | +-----------+-------------+-------------+--------+-------------------+---------------------+----------------------------+ | 1026 | $tenant_name| STANDBY | NORMAL | NORMAL | 4611686018427387903 | 2025-12-09 15:50:57.752932 | +-----------+-------------+-------------+--------+-------------------+---------------------+----------------------------+说明
- 租户角色必须是 STANDBY(不能是 PRIMARY)。
- 租户状态必须为 NORMAL。
- 租户
SWITCHOVER_STATUS必须是 NORMAL。 RECOVERY_UNTIL_SCN必须有效且不为最小值。
服务器在线状态检查。
select svr_ip,zone,status,stop_time,last_offline_time from __all_server order by zone; +---------------+-------+--------+-----------+-------------------+ | svr_ip | zone | status | stop_time | last_offline_time | +---------------+-------+--------+-----------+-------------------+ | xxx.xx.xx.101 | zone1 | ACTIVE | 0 | 0 | | xxx.xx.xx.102 | zone2 | ACTIVE | 0 | 0 | | xxx.xx.xx.103 | zone3 | ACTIVE | 0 | 0 | +---------------+-------+--------+-----------+-------------------+说明
- 不能有临时离线服务器(temporary offline servers)。
- 永久离线服务器上不能存在该租户的 LS 副本。
备租户所有日志流副本在线。
select LS_ID,STATUS,PRIMARY_ZONE,scn_to_timestamp(sync_scn) SYNC_SCN from cdb_ob_ls where tenant_id=1026; +-------+--------+-------------------+----------------------------+ | LS_ID | STATUS | PRIMARY_ZONE | SYNC_SCN | +-------+--------+-------------------+----------------------------+ | 1 | NORMAL | zone1;zone2;zone3 | 2025-12-09 16:03:16.835525 | | 1001 | NORMAL | zone1;zone2;zone3 | 2025-12-09 16:03:18.432208 | +-------+--------+-------------------+----------------------------+
适用版本
OceanBase 数据库 V4.x 版本。