首批通过分布式安全可靠测评,为关键业务系统打造
(可选)配置时钟源
更新时间:2026-04-10 11:58:00
本文介绍如何为集群内的多台机器配置 NTP 时钟源,如果您计划单机部署 OceanBase 数据库,或者做个人测试,亦或者已配置 NTP 时钟同步,则无需设置。
如果您计划部署分布式 OceanBase 集群,需要保证集群内各机器的时间同步,否则集群无法启动,服务在运行时也会出现异常。OceanBase 集群允许的时钟偏差不能超过 2s。当超过 2s 时,会出现无主情况。恢复时钟同步后,重启 OceanBase 集群,可以恢复正常。
说明
本文基于 x86 架构的 CentOS Linux 7.9 镜像环境提供操作指导,其余环境可能略有不同,请以实际环境为准。
OceanBase 自 V4.0.0 起支持动态修改时钟,修改的间隔在 2s 以内时不会对数据正确性和集群稳定运行带来影响。
若 OCP 未部署在 OceanBase 集群节点上,也需为 OCP 节点与 OceanBase 集群节点配置时钟同步,以避免使用过程中因时钟偏差引发 OCP 操作异常。
前提条件
配置 NTP 时钟源前,确保您拥有所有机器的 root 用户权限。
操作步骤
按以下步骤配置 NTP 时钟同步。
在每台机器上执行以下命令安装 NTP。
yum install ntp ntpdate -y运行以下命令查看服务器的 NTP 连接。
[root@centos-01 ~]# ntpq -4p remote refid st t when poll reach delay offset jitter ============================================================================== *time6.aliyun.co xxx.xxx.xxx.xxx 2 u 712 1024 377 21.951 4.253 4.208(可选)开启 NTP 服务端服务。
如果您已经有了 NTP 服务端服务器,则可跳过此步骤。本文档使用目标机器
10.10.10.1作为 NTP 服务端服务器。编辑配置文件。
以 root 用户登录 NTP 服务端服务器,运行以下命令编辑配置文件:
vi /etc/ntp.conf在配置文件中添加以下内容:
server <your_ntp_server_ip>保存并关闭配置文件。
运行以下命令重启 NTP 服务端服务:
service ntpd restart运行以下命令查看 NTP 服务端服务是否启动成功:
ps -ef | grep -i ntpd运行以下命令设置 NTP 服务开机自启动:
chkconfig ntpd on
开启 NTP 客户端服务。
注意
NTP 服务端服务启动后,您需要等待 5 分钟再开启 NTP 客户端服务。否则系统会提示 "no server suitable for synchronization found"。
使用 root 用户登录 OBServer 节点服务器。
运行以下命令停止 NTP 服务:
service ntpd stop运行以下命令同步 NTP 服务端时间:
ntpdate 10.10.10.1编辑配置文件。
运行以下命令打开配置文件:
vi /etc/ntp.conf在配置文件中添加以下内容:
server <your_ntp_server_ip>运行以下命令,启动 NTP 服务:
/etc/init.d/ntpd start
运行以下命令验证配置是否成功。
运行命令:
ntpstat返回以下结果:
synchronised to NTP server (xxx.xxx.xxx.xxx) at stratum 3 time correct to within 2 ms polling server every 64 s运行命令:
timedatectl返回以下结果:
Local time: Thu 2021-04-22 11:02:32 CST Universal time: Thu 2021-04-22 03:02:32 UTC RTC time: Thu 2021-04-22 11:02:32 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: yes RTC in local TZ: yes DST active: n/a执行如上命令能返回对应结果说明 NTP 服务生效。