本文總結主要參考:
http://blog.itpub.net/23135684/viewspace-759693/
http://www.happyworld.net.cn/post/6.html
一 首先說明RAC 的time synchronization
oracle clusterware有兩種時間同步的方式:
1,基於OS的NTP
2,基於cluster的CTSS(oracle cluster time synchronization service)
以上兩種方式只能選擇其一,
如果選擇了NTP,那麼CTSS就處於觀察模式(observer mode)
如果選擇了CTSS,就必須禁用NTP,且CTSS處於活動模式(active mode),時間同步就在集群成員之間,而不必聯繫外部時間服務器
1,採用CTSS,禁用NTP方法:
# /sbin/service ntpd stop --停止ntpd服務
# chkconfig ntpd off --開機禁止啟動ntpd
# rm /etc/ntp.conf --刪除ntp.conf文件
or, mv /etc/ntp.conf to /etc/ntp.conf.org.
Also remove the following file:
/var/run/ntpd.pid --刪除ntpd.pid文件
確認CTSS處於active mode
[root@xxx1 etc]# crsctl check ctss
CRS-4701: The Cluster Time Synchronization Service is in Active mode.
CRS-4702: Offset (in msec): 0
2,採用ntp方式
主要是為ntpd的配置-x flag
編輯/etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
PTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid" # Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=no # Additional options for ntpdate
NTPDATE_OPTIONS=""
Then, restart the NTP service.
# /sbin/service ntp restart
二 下面說明一下NTP的時間同步方式
NTP時間同步有兩種方式:
(1)手動的ntpdate(一般做成定時任務)
特點是一次調整到位
(2)通過ntpd服務自動調整
ntpd服務調整有兩種策略:
①平滑、緩慢漸進式調整(微調),叫做slewing time
②步進、跳躍式
兩種方式區別就在於,微調方式在啟動NTP服務是加了“-x”(slew)參數,默認不加“-x”
加“-x”的副作用:時間差別較大,同步時間長。
兩種方式都有閾值(threshold),超過閾值,則跳躍
不加“-x” 閾值 128s,小於128s ,使用微調,大於,就跳躍
加“-x” 閾值600s,小於600s,使用微調,大於,就跳躍
兩種方式都會在閾值超過1000的時候,ntpd停止,加“-g”參數忽略
三 下面說明為什麼使用NTP要加“-x” --slewing
使用 slewing 选项实施 NTP
适用平台: 所有 Linux 和 Unix 平台。
原因: 如果没有 slewing 选项,在时间差异超过特定(取决于平台)阈值时,NTP 将向前或向后调整系统时钟。大幅度向后调整时间会导致 Clusterware 以为错过了签到,从而发生节点驱逐的情况。出于此原因,我们强烈建议将 NTP 配置调整为 slewing time (加快或减慢)时钟时间以同步时间,以防止此类驱逐情况的发生。