服务器与时钟源偏移过大。服务器与时钟源偏移过大,时钟偏移(367.613 毫秒)超过阈值(100 毫秒)。

【 使用环境 】生产环境
【 OB or 其他组件 】obproxy版本:4.3.2.0 oceanbaser 4.3.5.0版本
【 使用版本 】
【问题描述】告警中会间歇性出现服务器与时钟源便宜过大的告警,过一会自己又可以恢复。请问下这个问题会对数据库的使用产生影响吗?需不需要处理,怎么操作呢?感谢!

@论坛小助手

根据文档库中的信息,以下是关于您提到的“服务器与时钟源偏移过大”的详细解答:

1. 问题的影响

  • 对 OceanBase 集群的影响:OceanBase 是一个分布式数据库,集群中多个节点的时间同步非常重要。如果时钟偏移超过 2 秒,可能会导致以下问题(参考文档片段 1 和 4):
    • 集群选举模块异常,可能导致没有主副本或脑裂。
    • 如果时钟偏差恢复后,需要重启 OceanBase 集群才能恢复正常运行。
  • 间歇性告警的影响:虽然您的告警是间歇性的,并且能够自行恢复,但仍然可能在偏移较大的时间段内影响集群的稳定性。即使当前未出现明显问题,长期来看仍需解决以避免潜在风险。

2. 是否需要处理

  • 需要处理:尽管告警能够自行恢复,但为了保证生产环境的高可用性和稳定性,建议及时处理时钟偏移问题,确保所有节点的时间偏差始终在 2 秒以内。

3. 操作步骤

以下是具体的处理方法(参考文档片段 1、3 和 4):

(1) 检查 NTP 偏移量

  • 使用以下命令检查当前服务器与 NTP 时钟源的偏移量:
    ntpq -p
    
    输出示例:
       remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    +time.google.co .GOOG.       2 u   50   64    1   12.345   367.613   0.012
    
    如果 offset 超过 100 毫秒,则需要调整。

(2) 调整操作系统时间

  • 如果偏移量较大,NTP 服务可能不会自动调整系统时间。可以通过以下命令手动调整:
    sudo ntpdate -u <ntp_server>
    
    替换 <ntp_server> 为您的 NTP 服务器地址。

(3) 配置 NTP 服务

  • 确保 NTP 服务已正确配置并持续运行。编辑 /etc/ntp.conf 文件,添加或修改以下内容:
    server <ntp_server> iburst
    driftfile /var/lib/ntp/drift
    
  • 启动或重启 NTP 服务:
    sudo systemctl start ntpd
    sudo systemctl enable ntpd
    

(4) 验证配置

  • 再次运行 ntpq -p 命令,确认偏移量已降至合理范围(小于 100 毫秒)。

(5) 检查 OBProxy 和 OBServer 时间

  • 确保 OBProxy 和 OBServer 所在的所有节点都已完成上述配置,并验证时间同步状态。

4. 其他注意事项

  • OCP 节点同步:如果 OCP Express 或 OCP 的节点与 OceanBase 集群不在同一节点上,也需要同步时钟源(参考文档片段 4)。
  • 动态修改时钟支持:从 OceanBase 4.0.0 开始,支持动态修改时钟,修改间隔在 2 秒以内不会影响数据正确性和集群稳定运行(参考文档片段 4)。

总结

间歇性时钟偏移告警可能会对 OceanBase 集群的稳定性产生潜在影响,建议按照上述步骤进行处理,确保所有节点的时间偏差始终在 2 秒以内。完成配置后,继续观察告警情况,确保问题彻底解决。

如果您还有其他疑问,请随时联系 OceanBase 的技术支持团队获取进一步帮助。

检索到的文档如下:

  1. 检查 NTP 偏移量
  2. 在您开始前
  3. (可选)配置时钟源
  4. detect_server_timeout
  5. 4000 ~ 4499
  6. 集群管理 FAQ
  7. 4500 ~ 4999
  8. 监控告警