在RAC环境中,Cluster各节点之间需要保持时间同步,所以在安装过程中要注意同步时钟。
我们可以通过date -s来修改系统时间
[root@smsdbrac1 root]# date
Sat Dec 29 09:25:25 CST 2007
[root@smsdbrac1 root]# date -s "Sat Dec 29 09:37:50 CST 2007"
Sat Dec 29 09:37:50 CST 2007
但是注意,系统的硬件时钟可能于此不同:
[root@smsdbrac2 ~]# date
Sat Dec 29 09:38:39 CST 2007
[root@smsdbrac2 ~]# clock --show
Sat 29 Dec 2007 09:27:43 AM CST -0.021796 seconds
注意如果系统时钟和硬件时钟不一致,那么在重新启动过程中,系统时钟会从硬件时钟获得时间信息。
所以需要同步硬件时钟:
[root@smsdbrac1 root]# hwclock --show
Sat 29 Dec 2007 09:32:41 AM CST -0.019265 seconds
[root@smsdbrac1 root]# date
Sat Dec 29 09:44:13 CST 2007
[root@smsdbrac1 root]# hwclock --systohc
[root@smsdbrac1 root]# date
Sat Dec 29 09:44:25 CST 2007
[root@smsdbrac1 root]# hwclock --show
Sat 29 Dec 2007 09:44:29 AM CST -0.015972 seconds
命令hwclock --systohc指定将系统时间同步至硬件时钟。
始终同步之后,RAC各节点之间应该从ntp服务器同步时间,或者将某个节点作为主节点,其他节点依据其时间进行同步。
最简单的是建立一个crontab任务:
1) 在rac1上启动time-stream服务,并设置为自动动
[root@rac1 ~]# chkconfig time-stream on
在redhat 4中,是: #chkconfig time on
2)在rac2上添加任务,每一分钟和rac1进行一次时间同步。
[root@rac2 ~]# crontab -l
*/1 * * * * rdate -s 10.85.10.1
如果存在防火墙,你还需要在节点间开通rdate所需要的37端口:
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 37 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 37 -j ACCEPT