---
title: ntpdate 强制快速同步时间-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于ntpdate 强制快速同步时间相关的常见问题和使用技巧，帮助您快速解决ntpdate 强制快速同步时间的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# ntpdate 强制快速同步时间

更新时间：2026-06-08 02:41

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：Troubleshoot  

## 适用版本

OceanBase 数据库 2.x 和 3.x 版本

## 问题描述

在一些服务器重启或者集群扩容的场景中，如果遇到时钟偏差比较大可以使用 ntpdate 强制与时钟源进行同步。但是 ntpdate 有一个特性就是当时钟偏差不超过 0.5s（500ms）时默认会调用 adjtime 系统调用进行慢同步；超过 0.5s（500ms）时才会调用 settimeofday 系统调用快速强制同步时间。

OceanBase 数据库对时间要求特别敏感，节点时间差不能超过 100ms，所以遇到时钟差在 100ms-500ms 之间的情况就比较棘手，ntpdate 默认也不能快速同步。

## 问题原因

ntpdate 的默认行为。ntpdate 通过两种方式进行时间调整。如果 ntpdate 确定时钟误差超过 0.5 秒，它将通过调用系统的 `settimeofday()` 例程简单地调整时间。如果误差小于 0.5 秒，它将通过调用系统的 `adjtime()` 例程逐渐调整时间。后一种技术在误差小的情况下更准确且不会造成太大干扰，当通过 cron 每隔一两个小时运行 ntpdate 时，它的效果非常好。

通过 `-b` 参数可以在启动文件的启动时，使用 `settimeofday()` 系统调用来强制进行时间步进，而不是使用 `adjtime()` 系统调用进行渐进调整（默认）。在启动时调用时应使用此选项。

## 解决方法

在没有拉起 OceanBase 服务之前，可以 ntpdate 指定 `-b` 参数让 ntpdate 强制调用 settimeofday 系统调用快速同步系统时间。

#### 注意

服务运行期间禁止使用 ntpdate 强制跳变同步时间。

以下例子完美解释了此现象：

- 大于 500ms 快速同步

  ```
   ```
   [root@ocp002 ~]# clockdiff ocp001
   .
   host=ocp001 rtt=750(187)ms/0ms delta=3606ms/3606ms Fri Jul 29 11:31:37 2022
   [root@ocp002 ~]# ntpdate -u 100.xxx.x.x
   29 Jul 11:31:55 ntpdate[19513]: step time server 100.xxx.x.x offset 3.605313 sec
   [root@ocp002 ~]# clockdiff ocp001
   ..
   host=ocp001 rtt=562(280)ms/0ms delta=1ms/1ms Fri Jul 29 11:31:58 2022
   ```

  ```
 - 默认 500ms 内慢同步

  ```
   ```
   [root@ocp002 ~]# clockdiff ocp001
   .
   host=ocp001 rtt=750(187)ms/0ms delta=383ms/383ms Fri Jul 29 10:57:08 2022
   [root@ocp002 ~]# ntpdate -u 100.xxx.x.x
   29 Jul 10:57:16 ntpdate[18680]: adjust time server 100.xxx.x.x offset 0.381066 sec
   [root@ocp002 ~]# clockdiff ocp001
   .
   host=ocp001 rtt=750(187)ms/0ms delta=378ms/378ms Fri Jul 29 10:57:18 2022
   [root@ocp002 ~]# clockdiff ocp001
   ..
   host=ocp001 rtt=562(280)ms/0ms delta=376ms/376ms Fri Jul 29 10:57:21 2022
   [root@ocp002 ~]# clockdiff ocp001
   .
   host=ocp001 rtt=750(187)ms/0ms delta=375ms/375ms Fri Jul 29 10:57:22 2022
   [root@ocp002 ~]# clockdiff ocp001
   .
   host=ocp001 rtt=750(187)ms/0ms delta=375ms/375ms Fri Jul 29 10:57:23 2022
   [root@ocp002 ~]# clockdiff ocp001
   ..
   host=ocp001 rtt=562(280)ms/0ms delta=374ms/374ms Fri Jul 29 10:57:25 2022
   [root@ocp002 ~]# clockdiff ocp001
   .
   host=ocp001 rtt=750(187)ms/0ms delta=373ms/373ms Fri Jul 29 10:57:27 2022
   [root@ocp002 ~]# clockdiff ocp001
   .
   host=ocp001 rtt=750(187)ms/0ms delta=373ms/373ms Fri Jul 29 10:57:28 2022
   [root@ocp002 ~]# clockdiff ocp001
   .
   host=ocp001 rtt=750(187)ms/0ms delta=372ms/372ms Fri Jul 29 10:57:29 2022
   [root@ocp002 ~]# clockdiff ocp001
   .
   host=ocp001 rtt=750(187)ms/0ms delta=372ms/372ms Fri Jul 29 10:57:30 2022
   [root@ocp002 ~]# clockdiff ocp001
   .
   host=ocp001 rtt=750(187)ms/0ms delta=371ms/371ms Fri Jul 29 10:57:31 2022
   ```

  ```
 - 500ms 内快速同步

  ```
   ```
   [root@ocp002 ~]# clockdiff ocp001
   ..
   host=ocp001 rtt=562(280)ms/0ms delta=403ms/403ms Fri Jul 29 11:02:56 2022
   [root@ocp002 ~]# ntpdate -ub 100.xxx.x.x
   29 Jul 11:03:10 ntpdate[18769]: step time server 100.xxx.x.x offset 0.402626 sec
   [root@ocp002 ~]# clockdiff ocp001
   .
   host=ocp001 rtt=750(187)ms/0ms delta=1ms/1ms Fri Jul 29 11:03:12 2022
   ```

  ```

上一篇

[OceanBase 数据库时钟源排查指南](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000043)

下一篇

[clockdiff: xx.xx.xx.xx is down](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207674) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
