数据库服务器的时间与真实时间一旦出现差异,就要对数据库服务器进行时间同步。很多地方都把ntpdate放到cron中,5分钟自动同步一次。然而,这么做,常常会引会数据库ORA-01555,甚至db crash。

找到一种方法据说可以解决这个问题。即使用ntpd -x来同步时间 instead of ntpdate。

实际上ntpd,不只是一种时间服务器的server端,同时也可以做client端,相当于ntpdate。当它做client时,与ntpdate的差别是,ntpdate已近淘汰,ntpd则可看作是它升级版。

下面的方法是讲如何在linux的环境中设置ntpd:

1. 修改/etc/ntp.conf

2. 加入time server。每个数据库中心都应用会有一组时间服务器,可以找sa要, 比如国际站,加入:

server ntp1.alibaba.com

server ntp2.alibaba.com

server ntp3.alibaba.com

ntp.conf有很多参数,都忽略就行。

3. 修改/etc/sysconfig/ntpd, 加入-x参数,变成:

OPTIONS="-U ntp -x -p /var/run/ntpd.pid"

这据说是为db同步所要求的。

4. 首先同步一次时间:

ntpdate time.nist.gov; hwclock --systohc

如果数据库还要在运行,建议不要这么做。待例行维护时再处理。

5. 然后启动ntpd:

/etc/init.d/ntpd start

6. 最后加入到自动启动列表:

chkconfig --level 2345 ntpd on

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐