【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】oceanbaseMysql租户4.2.2.5
【问题描述】我使用oceanbase进行主备租户之间的切换,切换后设置了日志恢复源,但是我后续测试了一下同步发现备租户同步进度不再推进了
你们是在测试ob4.2.2.5 如果是的建议使用最新的ob425或者435的版本 看看你们使用tp业务还是ap业务
我换成使用4.2.5.5还是会卡住
但是还是建议使用ob4255 看看使用问题 还是版本的问题 我们在排查
你先大概说一下 步骤 具体怎么操作的我们好排查
具体使用就是进行主备切换,首先开启备租户的归档、然后将主租户切为备租户、将备租户切为主租户、然后设置日志恢复源,但是我测试同步发现备租户的同步进度不再推进了
1、系统租户查询
SELECT * FROM DBA_OB_ROOTSERVICE_EVENT_HISTORY
WHERE EVENT LIKE “%switchover to%” ORDER BY TIMESTAMP;
查看为租户设置恢复源操作历史
系统租户查询
SELECT * FROM DBA_OB_ROOTSERVICE_EVENT_HISTORY
WHERE event = “%admin_set_config%” and value2 like “log_restore_source” ORDER BY TIMESTAMP;
当时切换的时候 检查备租户是否已经同步完恢复源的日志 这个检查了么?
切换前的备租户的系统租户查询一下
SELECT * FROM DBA_OB_ROOTSERVICE_EVENT_HISTORY
WHERE EVENT = “wait sync to latest end” and extra_info like “%tenant id:100X%” ORDER BY TIMESTAMP;
这个备租户是否同步完恢复源的日志怎么检查,不是将备租户通过switchover切为主的时候就会自动检查吗,
这是sql查询的结果:
SELECT * FROM DBA_OB_ROOTSERVICE_EVENT_HISTORY
WHERE event = “%admin_set_config%” and value2 like “log_restore_source” ORDER BY TIMESTAMP;
是的 想了解一下 是否做过检查 根据步骤检查一下
备租户查询
- 首先确认是否备库日志恢复源设置错误
- 确认备租户同步是否卡住
SELECT * FROM DBA_OB_TENANTS WHERE TENANT_NAME=‘XXX’\G; - 查看备租户同步卡住的LS
在备租户的sql 客户端上执行如下查询,查看租户日志流统计是否卡住。如果SYNC_SCN不动,则表示同步卡住。
SELECT MIN(SYNC_SCN) FROM CDB_OB_LS WHERE TENANT_ID=10XX;
根据MIN(SYNC_SCN)的数值,在备租户的sql 客户端上执行如下查询,查看租户日志流信息。
SELECT TENANT_ID, LS_ID, CREATE_SCN, READABLE_SCN, SYNC_SCN, DROP_SCN FROM CDB_OB_LS WHERE SYNC_SCN = xxxx;
根据获得的LS信息,在备租户的sql 客户端上执行如下查询,查看租户日志流同步是否正常
SELECT TENANT_ID, LS_ID, SVR_IP, SVR_PORT, ROLE, IN_SYNC, END_SCN
FROM GV$OB_LOG_STAT
WHERE TENANT_ID=100X AND LS_ID = 100X AND ROLE = ‘LEADER’;
你设置的日志源信息操作信息 怎么在DBA_OB_ROOTSERVICE_EVENT_HISTORY视图中查看不到呀
我是严格按照这个步骤切换的,日志源操作信息我也不知道为什么不存在,但是我查看日志源恢复信息中路径是对的上的
我楼上发的信息 也检查一下 先检查一下 日志源信息
日志源信息 检查一下 备租户业务租户下查看
SELECT * FROM oceanbase.DBA_OB_LOG_RESTORE_SOURCE;
用户租户下查看日志链路相关信息。
SELECT * FROM oceanbase.GV$OB_LOG_TRANSPORT_DEST_STAT;
1、日志恢复源设置没问题
2、
3、sync_scn确实不动了,我查看了一下min(sync_scn)对应的ls_id是1001,然后查看了一下ls的信息,它卡在了2025-08-25 15:07:19
在查一下 主租户的信息
在主租户的sql 客户端上执行如下查询,查看租户归档是否正常
SELECT * FROM V$OB_ARCHIVE_DEST_STATUS WHERE TENANT_ID = 10XX;
在主租户的sql 客户端上执行如下查询,查看租户日志流归档是否正常
select tenant_id,CHECKPOINT_SCN,SCN_TO_TIMESTAMP(CHECKPOINT_SCN), current_timestamp(6),STATUS
from CDB_OB_LS_LOG_ARCHIVE_PROGRESS
where LS_ID=10XX and TENANT_ID = 10XX;