（可选）配置时钟源 
==============================

本文介绍如何为集群内的多台机器配置 NTP 时钟源。如果您在单机安装 OceanBase 数据库，或者做个人测试，则无需设置。
如果您使用集群安装 OceanBase，则需要保证集群内各机器的时间同步。否则集群无法启动，服务在运行时也会出现异常。如果您已配置 NTP 时钟同步，则无需重新配置。
OceanBase 集群中的服务器时间必须保持一致，否则会导致 OceanBase 集群无法启动，运行时也会出现故障。物理机与时钟服务器的误差在 50ms 以下可认为时钟是同步状态，OceanBase 集群最大容忍误差不能超过 200ms。当超过 200ms 时，会出现无主情况。恢复时钟同步后。重启 OceanBase 集群, 可以恢复正常。

前提条件 
-------------------------

配置 NTP 时钟源前，确保您拥有所有机器的 root 用户权限。

操作步骤 
-------------------------

按以下步骤配置 NTP 时钟同步：

1. 在每台机器上执行以下命令安装 NTP：

   ```bash
   yum install ntp ntpdate -y
   ```

   

2. 运行以下命令查看服务器的 NTP 连接：

   当物理机与时钟服务器的时间误差在 50ms 以内时，系统即认为时钟是同步的。

   ```bash
   [root@centos-01 /root]#ntpq -4p
   remote refid st t when poll reach delay offset jitter
   ==============================================================================
   *time6.aliyun.co 10.137.38.86 2 u 712 1024 377 21.951 4.253 4.208
   ```

   

3. （可选）开启 NTP 服务端服务

   如果您已经有了 NTP 服务端服务器，则可跳过此步骤。本文档使用目标机器 `10.244.0.114` 作为 NTP 服务端服务器。
   1. 编辑配置文件。

      以 root 用户登录 NTP 服务端服务器，运行以下命令编辑配置文件：

      ```bash
      vi /etc/ntp.conf
      ```

      

      在配置文件中添加以下内容：

      ```bash
      server <yout_ntp_server_ip>
      ```

      

      保存并关闭配置文件。
      
   
   2. 运行以下命令重启 NTP 服务端服务：

      ```bash
      service ntpd restart
      ```

      
   
   3. 运行以下命令查看 NTP 服务端服务是否启动成功：

      ```bash
      ps -ef | grep -i ntpd
      ```

      
   
   4. 运行以下命令设置 NTP 服务开机自启动：

      ```bash
      chkconfig ntpd on
      ```

      
   

   

4. 开启 NTP 客户端服务。

   **注意**

   NTP 服务端服务启动后，您需要等待 5 分钟再开启 NTP 客户端服务。否则系统会提示 "no server suitable for synchronization found"。
   1. 使用 root 用户登录 OceanBase 数据库。

      
   
   2. 运行以下命令停止 NTP 服务：

      ```bash
      service ntpd stop
      ```

      
   
   3. 运行以下命令同步 NTP 服务端时间：

      ```bash
      ntpdate <yout_ntp_server_ip>
      ```

      
   
   4. 编辑配置文件。

      运行以下命令打开配置文件：

      ```bash
      vi /etc/ntp.conf
      ```

      

      在配置文件中添加以下内容：

      ```bash
      server <yout_ntp_server_ip>
      ```

      
   
   5. 运行以下命令，启动 NTP 服务：

      ```bash
      service ntpd start
      ```

      
   

   

5. 运行以下命令验证配置是否成功：

   ```bash
   ntpstat
   ```

   

   返回以下结果：

   ```bash
   synchronised to NTP server (10.143.0.44) at stratum 3
   time correct to within 2 ms
   polling server every 64 s
   ```

   

   ```bash
   timedatectl
   ```

   

   返回以下结果：

   ```bash
         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 服务生效。
   




