问题现象
业务程序偶发收到 the observer or zone is not the master 异常。
问题原因
该异常出现的原因是存在副本无主导致,可能发生了切主行为。
影响版本
OceanBase 数据库 V2.x 和 3.x 版本。
解决方法及排查方式
如果该问题是偶发低频出现,一般不需要特殊处理。但如果该问题高频出现或一直不恢复,则需要进行排查确认原因。下面是排查方法。
确认问题时间点是否发生了切主行为。
如果可以连接 sys 租户,执行如下 SQL 来进行查询。
select * from __all_virtual_election_event_history where gmt_create between '问题开始时间' and '问题结束时间' order by gmt_create;如果无法连接到 sys 租户,则可以使用
table_id过滤对应时间点的 RS 日志进行确认。
分析切主行为是否符合预期,常见的异常切主原因为如下几种。
- leader lease expired:租约过期,节点间的网络或者时钟可能存在问题。
- disk error:磁盘异常。
- clog reconfirm timeout:reconfirm 超时异常,异常原因需要具体分析。
- clog sliding_window timeout:滑动窗口超时异常,异常原因需要具体分析。
- clog disk full:clog 磁盘异常。
- clog disk hang:clog 磁盘异常。