首批通过分布式安全可靠测评,为关键业务系统打造
OBServer 节点时钟同步延迟判断方法
更新时间:2026-06-12 07:31
OBServer 节点时钟同步延迟,会影响集群服务稳定性,延迟过大会将节点拉入黑名单,甚至会造成集群不可用,因此需要保证时钟同步稳定。
适用版本
OceanBase 数据库 V3.x 版本。
影响的租户
OceanBase 数据库的 SYS 租户、MySQL 租户、Oracle 租户。
操作方法
检查节点时钟是否同步,有以下方法:
通过 observer 日志关键字
SERVER_BLACKLIST,查看clockdiff_time时钟偏差情况。这里有一个条件,仅当时间同步有延迟clockdiff_time > CLOCKDIFF_TIME_THRESHOLD500ms 时,才会打印到日志。这里clockdiff_time=2781777为节点之间,时钟同步延迟时间。observer.log:[2024-02-21 17:43:46.646997] WARN [SHARE] operator() (ob_server_blacklist.cpp:120) [12982][0][YB420AB68406-000611A51D9AA84C-0-0] [lt=9] [dc=0] [SERVER_BLACKLIST] clock diff time is too large, attention !(clockdiff_time=2781777, member={server:"xxx.xxx.xxx.xxx:2882", cluster_id:1670228807})clockdiff xx.x.x.x(ip地址) 命令
从集群一个节点,向其他所有节点 clockdiff 查看 delta 结果,来判断节点之前是否存在时钟延迟情况。
clockdiff xxx.xxx.xxx.12返回结果如下:
host=xxx.xxx.xxx.12 rtt=750(187)ms/0ms delta=0ms/0ms Fri Apr 5 03:43:10 2024ping 命令
当环境无法通过 observer 日志和 clockdiff 查看延迟情况,可以通过以下 ping 命令,通过两次数据包时间差来判断时钟延迟情况,其中:
-T tsandaddr:在 ping 命令 ip 数据包中插入时间戳,其中 -T 选项 tsandaddr 为 timestamps and addresses,tsandaddr 会返回 timstamp 和发送数据包的地址。
-c:指定发送的数据包次数。
ping -T tsandaddr xxx.xxx.xxx.xxx -c 2返回结果如下:
PING xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) 56(124) bytes of data. 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=64 time=0.073 ms TS: xxx.xxx.xxx.xxx 13591260 absolute xxx.xxx.xxx.xxx 1 //这个值代表节点之前到时间差,单位是 ms xxx.xxx.xxx.xxx 0 xxx.xxx.xxx.xxx -1 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2 ttl=64 time=0.082 ms TS: xxx.xxx.xxx.xxx 13592300 absolute xxx.xxx.xxx.xxx 1 //这个值代表节点之前到时间差,单位是 ms xxx.xxx.xxx.xxx 0 xxx.xxx.xxx.xxx -1 --- xxx.xxx.xxx.xxx ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1040ms rtt min/avg/max/mdev = 0.073/0.077/0.082/0.009 ms
如若判断节点之间存在时钟存在延迟,建议及时调整,以免影响服务。