【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.1.10
【问题描述】为什么执行了启动服务的命令,查询启动时间还是null,这是bug吗
2 个赞
还没启动完成吧?看看日志
现在有了,这个启动很慢吗?大概20多分钟,而且OCP页面看已经正常了
根据您提供的信息和文档库中的信息,我将为您解析 OB(OceanBase)启动过程中遇到的问题。
1. 启动时间显示为 NULL
在您提供的查询结果中,START_SERVICE_TIME
列的值为 NULL
。这并不一定是 bug。在 OceanBase 数据库中,START_SERVICE_TIME
表示的是服务实际开始提供对外服务的时间。如果这个时间是 NULL
,可能是因为:
-
服务尚未完全初始化:即使
STATUS
显示为ACTIVE
,某些内部组件和服务可能仍在初始化过程中。 -
查询时机问题:在某些情况下,虽然服务已经启动并可以接受连接,但
START_SERVICE_TIME
可能还没有被更新。
2. 启动时间较长
您提到启动过程大约需要 20 多分钟,并且 OCP 页面显示已经正常。根据文档片段 1 的描述,启动预计需要 2~5 分钟。然而,实际启动时间可能会因多种因素而延长,包括但不限于:
- 硬件性能:服务器的 CPU、内存、磁盘 I/O 等性能会影响启动速度。
- 数据量大小:如果有大量的历史数据需要恢复或加载,启动时间会相应增加。
- 配置复杂度:复杂的配置或较大的集群规模也会导致启动时间变长。
3. 内部启动步骤
执行 start server
命令后,OceanBase 内部启动服务涉及的主要步骤包括:
- 读取配置文件:解析并加载配置文件中的各项参数。
- 初始化系统表:确保系统表结构正确无误。
- 恢复日志:从日志中恢复未完成的事务,确保数据一致性。
- 启动各个模块:如 SQL 引擎、存储引擎等核心模块。
- 检查健康状态:进行一系列自检,确保所有组件正常工作。
- 注册到集群:向集群中的其他节点注册自身信息,加入集群网络。
4. 建议与操作
为了进一步确认启动是否存在问题,您可以采取以下措施:
-
查看日志:通过
docker logs <container_name>
或直接查看observer.log
文件,检查是否有异常信息。 -
监控资源使用情况:使用系统工具(如
top
、iostat
等)监控 CPU、内存、磁盘 I/O 的使用情况,判断是否存在瓶颈。 -
调整参数:如果启动时间过长,可以尝试调整一些启动相关的参数,如
ob_log_restore_parallel_degree
(见文档片段 3),以优化启动性能。
如果您仍然怀疑存在 bug 或者启动时间异常,请联系 OceanBase 技术支持人员协助排查。希望以上信息对您有所帮助!
更多信息请查看:
可以参考了解下小助手的回复 内部启动步骤涉及挺多步骤的