启动 OBServer 进程之后,无论所有 ls 的 clog 是否回放完成,一旦某一个回放 clog 的时间达到 15 分钟,OBServer 会强制开始提供服务,__all_server 表中 start service time 不再为0。 此时 OBServer 上面未回放完成的 ls 无法作为全功能副本对外提供服务,GV$OB_LOG_STAT 中 IN_SYNC 状态为 NO,直到 LS 真正回放 CLOG 结束,才能开始对外提供服务。
需要规避的运维风险点为,如果需要轮流重启三副本,请不要看到 start_service_time 不为 0 就手动 Kill 第二个副本,要确保所有ls状态正常,再继续其他的运维操作。
OBServer 回放 CLOG 相关日志。
[2024-04-11 17:11:10.958487] INFO [STORAGE.TRANS] check_tenant_can_start_service (ob_weak_read_service.cpp:186) [47305][observer][T0][YF1BAAC144FD6-000615CE5723D28D-0-0] [lt=14] [WRS] [OBSERVER_NOTICE] waiting log replay... (ret=0, tenant_id=1002, can_start_service=false, min_version=1712826212978031, delta=457980456, slowest_ls_id={id:1002})OBServer 开始提供服务相关日志。
[2024-04-11 17:11:12.958678] INFO [SERVER] start (ob_server.cpp:1088) [47305][observer][T0][YF1BAAC144FD6-000615CE5723D28D-0-0] [lt=17] [OBSERVER_NOTICE] observer start service(start_service_time=1712826672958677)
适用版本
OceanBase 数据库 V4.x 版本。