启动OceanBase集群时提示Cluster NTP is out of sync的解决方法

问题现象描述

启动OceanBase集群时提示:

[ERROR] Cluster NTP is out of sync.

关键过程、根本原因分析

由于OceanBase集群中主机时差超过100ms导致产生该报错,需要通过NTP服务来进行时间同步。

结论、解决方案及效果

  1. 关闭防火墙。

    systemctl stop firewalld
    systemctl disable firewalld
    systemctl status firewalld

  2. 安装并配置NTP服务。

    1. 在所有集群和NTP客户端节点安装NTP。
      1
      yum -y install ntp ntpdate
      

    2. 在所有集群和NTP客户端节点备份旧配置。
      1
      cd /etc && mv ntp.conf ntp.conf.bak
      
    3. 选择一台服务器为NTP服务端节点,在该服务器上新建并配置NTP文件。在本例中以192.168.0.216服务器为NTP服务端节点。
      1. 创建文件。
        1
        vi /etc/ntp.conf
        
      2. 按“i”进入编辑模式,并在文件中新增如下内容作为NTP服务端:
        1
        2
        3
        4
        5
        restrict 127.0.0.1
        restrict ::1
        restrict 192.168.0.216 mask 255.255.255.0
        server 127.127.1.0
        fudge 127.127.1.0 stratum 8
        

        其中,restrict 192.168.0.216 mask 255.255.255.0是NTP服务器的网段与掩码。

      3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    4. 在其他所有NTP客户端节点新建NTP文件。
      1. 打开文件。
        1
        vi /etc/ntp.conf
        
      2. 按“i”进入编辑模式,并在文件中新增如下内容作为客户端节点:
        1
        server 192.168.0.216
        
      3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  3. 启动和同步NTP服务。

    1. 在192.168.0.216 NTP服务端节点启动NTP服务并查看NTP服务状态。
      1
      2
      3
      systemctl start ntpd
      systemctl enable ntpd
      systemctl status ntpd
      

    2. 在其他所有NTP客户端节点强制同步192.168.0.216 NTP服务端节点的时间。
      1
      ntpdate 192.168.0.216
      
    3. 在除了192.168.0.216 NTP服务端节点的所有节点写入硬件时钟,以避免重启服务器后时间同步失效。
      1
      hwclock -w
      
    4. 在除了192.168.0.216 NTP服务端节点的所有节点安装并启动crontab工具。
      1
      2
      3
      4
      yum install -y crontabs
      chkconfig crond on
      systemctl start crond
      crontab -e
      

      在执行crontab -e命令后将打开当前用户的crontab文件,用于编辑定时任务。

    5. 在打开的crontab文件中添加以下内容,设置每隔10min自动与192.168.0.216 NTP服务端节点同步时间。
      1
      */10 * * * * /usr/sbin/ntpdate 192.168.0.216
      
    6. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。