OBServer 重启到恢复服务的时间是由什么决定的?重启过程都要执行哪些操作?本文就 OBServer 重启过程进行简单的介绍。
适用版本
OceanBase 数据库所有版本。
OBServer 重启过程中需要做什么?
- 与 Leader 副本同步,将 clog 同步并将 SSTable 补齐。
- 通过 clog 回放,将 MemStore 中的内存数据恢复出来(因为 OBServer 进程重启时内存数据丢失了)。
- 负载均衡、切主。
以上操作完成后,OBServer 才可以对外提供服务。
影响 OBServer 提供服务时间的因素是什么?
如果 OBServer 停机过程中发生了转储,则需要先把 SSTable 补齐,需要补齐的数据量影响重启的速度。
如果 OBServer 停机中触发了永久下线,则需要执行副本 rebuild 操作,需要的时间可能很久。
如果 OBServer 重启前 MemStore 中积累了大量的数据,则需要较长的时间进行 clog 回放来恢复,需要的时间可能很久。
在
observer.log中搜索scan process bar来查看预估的剩余时间,详见如何观察 OBServer 重启后 clog 回放进度。
运维时应该怎样提速?
在 OBServer 重启前手动做一次转储,避免第 3 步 clog 回放过久。