Oracle 11G RAC ntp時間同步配置

guocun09發表於2018-01-29
Oracle是用SCN來記錄資料庫事務操作的,SCN就是時間戳。設想:RAC中如果節點間的時間有差別,可能導致資料不一致。因此,如果出現節點時間不一致,就會導致叢集重構(讓某個node重啟)。一個大幅度的時間跳躍也會讓叢集認為發生了節點掛起,觸發節點fencing。因此,對RAC時間同步是非常有必要的。

時間同步方法:
1.CTSS(Cluster Time Synchronization Server Daemon)

11G GRID 自己提供的時間同步服務
如果所有節點上已經部署NTP服務,CTSS以Observer mode 執行,這種模式下CTSS只會在叢集alert.log中記錄時間不一致資訊,但不會去調整

如不是所有幾點上部署NTP,CTSS以Active mode執行,並和主節點同步。分為兩種方式:
1> 當節點加入叢集,如果這個節點存在時間差異,但差異在界限範圍之內,就會以步進方式同步,每次調整很小幅度。如果時間差異超過了界限範圍就不允許節點加入叢集,並記錄在alert.log
2> 執行過程中,如果節點和主節點發生時間差異,會把OS時鐘加快或者減慢已達到同步,成為clock slewing

CTSS mode 檢視:

# su - grid

$ crsctl check ctss

開啟Active mode方法:
# service ntpd stop

# chkconfig ntpd off
# mv /etc/ntp.conf /etc/ntp.conf.bak

# su - grid

$ crsctl check ctss

注意:
1.CTSS不會把系統時間向前調整,Oracle 10.2 RAC中有因為始終向前調整時間引起節點重啟BUG
2.CTSS可以保證個節點間時間同步,但不能和外部標準時鐘(北京時間或臺北時間)保持一致了


2.Linux NTP(Network Time Protocol) --推薦
此方法既保證節點時間同步,又保證了時鐘和標準時間同步,修改RAC 所有節點:
/etc/ntp.conf, 10.191.130.130,10.191.131.131為公司內部的時間同步伺服器(已和準備時間同步)
# vi /etc/ntp.conf
server 10.191.130.130 prefer
server 10.191.131.131
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

# vi /etc/sysconfig/ntpd    
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"
注: -x 引數代表使用clock slewing 漸進模式同步,避免時鐘大幅度跳躍導致叢集重構

開啟ntpd服務
# service ntpd start

開啟ntpd開機啟動
# chkconfig ntpd on

稍等一會檢視時間同步狀態:
# ntpstat
synchronised to NTP server (10.191.130.130) at stratum 4 
   time correct to within 529 ms
   polling server every 1024 s

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.191.130.130  10.191.131.173   3 u  977 1024  377   23.995  -66.546  24.713
+10.191.131.131  118.163.81.61    3 u  985 1024  377   28.876   56.586  10.010












來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25583515/viewspace-2150590/,如需轉載,請註明出處,否則將追究法律責任。

相關文章