有关《【RAC】部署安装RAC时确保主节点的时间小于其他节点时间》(http://space.itpub.net/519536/viewspace-674458)文中提到的问题,一般情况下,我们可以使用文中介绍的手工调整方法解决问题。不过仍然存在使用这种手工调整的方法解决不了的问题。例如,在虚拟机环境中,经常出现短时间内系统时钟出现较大偏差的情况,在手工调整后很快便会出现时钟不稳定的情况。应对这种问题的最好方法便是使用网络时间服务(NTP)。
有关网络时间服务的细节请参考文章《【NTP】Redhat5.1环境下网络时间服务NTP的安装部署》(http://space.itpub.net/?uid-519536-action-viewspace-itemid-608186)。
本文通过实践,给出一种保证秒级时钟一致的方法。主要目的是解决VMware虚拟机上RAC主机之间的时间总是没有办法达到秒级别的同步问题(使用crontab可以满足每分钟同步一次的目的,无法达到秒级的时间同步)。
1.操作系统信息
[root@rac1 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.1 (Tikanga)
[root@rac1 ~]# uname -a
Linux rac1 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:02 EDT 2007 i686 i686 i386 GNU/Linux
2.确保NTP已安装
[root@rac1 ~]# rpm -qa | grep ntp
chkfontpath-1.10.1-1.1
ntp-4.2.2p1-7.el5
3.若未安装,在安装光盘中找到安装介质完成安装
rpm -ivh ntp*.rpm
4.配置NTP
[root@rac1 ~]# vi /etc/ntp.conf
在文件尾部添加如下内容,表示任何192.168.247网段的主机都可以与这台主机进行时间同步
restrict 192.168.247.0 mask 255.255.255.0 nomodify notrap
5.启动NTP服务
[root@rac1 ~]# service ntpd start
Starting ntpd: [ OK ]
6.设置开机启动服务
[root@rac1 ~]# chkconfig ntpd on
需要稍等几分钟(3分钟左右)该服务才能够生效,否则在主机rac2与主机rac1进行同步的时候会收到如下的报错信息。
[root@rac2 ~]# ntpdate rac1
18 Oct 21:25:20 ntpdate[3545]: no server suitable for synchronization found
7.部署自定义时间同步脚本
此时,可以在rac2主机上部署如下脚本完成每秒的时间同步
[root@rac2 ~]# cat ntpdate_to_rac1.sh
while :; do ntpdate rac1; sleep 1; done
如若仍不满足需求,可以在后台同时启动多个同步脚本。
8.小结
本文给出的是通过手工同步NTP的方法来达到主机间的秒级一致,解决虚拟机环境下RAC主机间时钟极端不稳定的问题。仅建议在试验坏境下使用这种方法,真实的服务器不会出现时钟过分不一致问题,使用crontab每隔一段时间同步一次即可。
Good luck.
secooler
10.10.18
-- The End --