首批通过分布式安全可靠测评,为关键业务系统打造
时钟同步问题排查
更新时间:2026-05-02 16:44:22
本节主要介绍了时钟同步问题的排查方法。
适用版本
OceanBase 数据库所有版本
问题排查思路
OceanBase 集群要求 OBServer 服务器间时钟同步时延在 100ms 以内。如果出现了时钟同步不稳定、偏移超出阈值的问题,会直接影响 OceanBase 集群的稳定性和可用性。因此出现集群不可用,频繁切主等问题时,可以考虑排查时钟同步情况。
通常情况下经由 OceanBase 交付的 OceanBase 商业版本在搭建集群之前,已经进行了时钟同步相关的配置和检查。如时钟不同步,请检查时钟的状态与偏移量。
问题排查步骤
在 OceanBase 部署的环境中常见的有 NTP 和 Chrony 两种时钟同步的配置。请按如下步骤检查时钟同步状态与偏移量。
采用 NTP 的时钟同步方式
NTP 服务需要以 -x 模式启动 (slew mode)保证如果在有时钟偏差的情况可以缓慢调整偏移。-x 的选项会保证默认按照 2000s 调整 1s 的步长来调整时钟偏移。
检查 NTP 状态
运行
ntpstat检查 NTP 服务器状态。如果结果为synchronised to NTP server,则可以认定 NTP 的配置处于同步状态。[root@hostname /]# ntpstat synchronised to NTP server (xx.xxx.xx.xxx) at stratum 4 time correct to within 4 ms polling server every 32 s检查 NTP 的偏移量。
可以多次执行如下命令,确保可以看到稳定的
offset。若offset值小于 50ms 则为时钟同步正常。[root@hostname /]# ntpq -p|grep -E "\*|\=|remote" remote refid st t when poll reach delay offset jitter ========================================================================== *xxxxxxxxxxx xxxxx 2 u 16 64 377 1.333 0.046 0.033
采用基于 Chrony 配置的时钟同步方式
检查 Chronyc 的状态。
执行如下命令,检查 Chrony 的同步状态。如果状态为 Normal,则表示时钟同步。
$chronyc -n tracking |grep Leap Leap status : Normal检查 Chronyc 的偏移量。
多次执行如下命令, 显示内容的最后一列代表了时钟的偏移量,如果其值小于 50ms,则表示时钟同步在可接受范围内。
[admin@hostname ~]$ chronyc sources -v MS Name/IP address strarum Poll Reach LastRX Last sample ================================================================================== ^- <hostname> 6 4 377 15 -251us [ -251us] -/- 12ms ^* <hostname> 6 4 377 16 -322us [ -340us] -/- 26ms
在进行了上述检查后,仍没有查到时钟同步不符合预期的原因,请联系 OceanBase 技术支持人员处理。