首批通过分布式安全可靠测评,为关键业务系统打造
locality 变更卡住导致合并卡住的排查方法
更新时间:2024-07-10 06:22
当在变更 locality 过程中,如将 locality 从 z1,z2 变更为 z1,z2,z3,且在新增加的 z3 上的 Zone 日志流成为 Leader,可能会导致数据合并操作卡住。
操作步骤
监控 __all_tenant 表
在 locality 变更过程中,__all_tenant 表中的 previous_locality 字段不为空表示正在进行 locality 的变更。
obclient> SELECT * FROM oceanbase.__all_tenant;返回结果如下:

查询 locality 变更作业状态
通过
dba_ob_tenant_jobs可以查看 locality 变更作业的状态。obclient> SELECT * FROM oceanbase.dba_ob_tenant_jobs WHERE job_type LIKE "%locality%";检查日志流的主
通过 __all_virtual_ls_meta_table 表可以查看日志流中 Leader 的分布。
obclient> SELECT svr_ip, svr_port FROM oceanbase.__all_virtual_ls_meta_table;观察 __all_server_event_history 表,了解 Leader 切换的事件和时间
obclient> SELECT gmt_create,svr_ip,svr_port,event,name3,value3 FROM __all_server_event_history WHERE module="ELECTION" AND value1=$tenant_id AND value2=$ls_id ORDER BY gmt_create;
解决方法
如果确认是因为日志流 Leader 在新 Zone 导致数据合并卡住,可以尝试人工干预 Leader 选举,将 Leader 迁移回原 Zone。