首批通过分布式安全可靠测评,为关键业务系统打造
排查 OBServer 启动失败的步骤
更新时间:2024-04-25 08:26
OceanBase 数据库在遇到 OBServer 启动失败的情况下,可以按照以下步骤进行排查。
确认启动线程 ID。
首先,确认启动的线程 ID,可以通过检索日志中包含
start observer begin的条目来找到线程 ID。grep 'start observer begin' -rI输出内容如下:
INFO [SERVER] start (ob_server.cpp:575) [103700][][T0][xxxxx-xxxxx-xxxxx-xxxxx] [lt=22] [OBSERVER_NOTICE] start observer begin在此示例中,线程 ID 是 103700。
确认 init 完成情况。
init 已完成。
grep 'success to init observer' -rI搜索到此日志信息,则表示 init 完成,继续步骤 3。
如果搜不到日志,则是 init 卡在某一个模块,按照以下两个方法继续排查。
根据线程 ID 搜索日志。
grep '\[103700' -rIgcore 后根据线程 ID 查看线程卡在哪一步。
init 未完成。
a. 根据线程 ID 搜索日志。
grep '\[103700' -rIb. gcore 后根据线程 ID 查看线程卡在哪一步。
确认 start 完成情况。
start 已完成。
grep 'server instance start succeed' -rI此日志信息表示 OBServer start 完成,接下来重复步骤 2 中的排查 init 卡的两个方法继续排查。
如果搜不到日志,表示 observer start 卡在某一步,按照以下方法继续缩小范围。
start 未完成。
缩小查找范围。
grep '\[103700.*success to ' -rI
注意
注意线程 ID 替换为实际的线程 ID 值。
然后重复步骤 2 中的排查 init 卡的两个方法继续排查。
适用版本
OceanBase 数据库所有版本。