oracle如何應對潤秒

datapeng發表於2015-06-29
由於今年7月1日全世界會多出一秒,這可能對時間敏感的IT系統造成較大影響。中亦科技資料庫團隊對此問題做了深入的研究,並對使用者系統提出了相應的解決方法及建議。
中亦科技資料庫產品總監黃遠邦認為,閏秒調整會對Oracle資料庫有以下影響:
對於單點資料庫,這個調整沒有任何的影響;
對於RAC系統,NTP閏秒問題可能會導致節點reboot;
對於使用NTP進行時間同步的RAC系統,對高於10.2.0.4版本的系統(包括11G)無影響;對低於10.2.0.0.4以下的版本,如果使用了第三方cluster 軟體,如HACMP,Sun Cluster or Veritas SFRAC也是沒有影響;
對於Linux及Oracle VM,部分應用程式無法處理該非常規“23:59:60”的時間戳,可能會導致應用掛起或主機重啟。
閏秒的背景介紹
2015年1月5日,總部設在法國巴黎的國際地球自轉和參考系統服務組織IERS(International Earth Rotation and Reference Systems Service)在其49期C公報釋出閏秒公告:國際標準時間UTC(Coordinated Universal Time,協調世界時)將在2015年6月30日(格林尼治時間)實施一個正閏秒,即增加1秒。1月8日國際權度局時間部BIPM(Bureau International des Poids et Mesures)向全球參加國際原子時TAI計算的各守時實驗室釋出了閏秒調整預報。由於時差的原因,我國將在北京時間2015年7月1日的7時59分59秒和全球同步進行閏秒調整,屆時會出現7:59:60的特殊現象。上一次“閏秒”出現在北京時間2012年7月1日。本次閏秒調整步驟及調整前後的時間標記為:
UTC時間:
2015年6月30日,23時59分59秒
2015年6月30日,23時59分60秒
2015年7月1日, 0時0分0秒
北京時間:
2015年7月1日,7時59分59秒
2015年7月1日,7時59分60秒
2015年7月1日,8時 0分 0秒
觸發條件及避免方式
節點reboot的需要同時滿足以下觸發條件才會重啟:
條件1:
xntpd daemon does not have slewing enabled (default) or does not have 
PLL mode disabled (default)
條件2:
A. The Oracle Clusterware version does not have a fix for bug 5015469 or bug 
6022204 or the Oracle Clusterware version does have a fix for at least one these 
defects, but due to Solaris CR#6595936 the alarm signal arrival has been 
delayed exceeding the oprocd 0.5 sec default margin (only Solaris)
因為這兩個條件需要同時滿足才能觸發,可以使用以下的方式避免相應條件的失效:
條件1:
使用ntp –x開啟 ntpd(xntpd)程式的“slewing”特性,進而避免其快速調整。
每個系統不同,詳細可以參考:
NTP leap second event causing Oracle Clusterware node reboot [ID759143.1]
條件2:
Apply Oracle Clusterware patch bundles or MLR (i.e. MLR # 9 or higher) in 
order to resolve bugs 5015469 and 6022204,修復相應的bug,使觸發條件失效
Bug 5015469: 
fix included in Oracle Clusterware 10.2.0.3 and higher, one off fixes 
exist for 10.1.0.3, 10.1.0.4, 10.1.0.5, 10.2.0.1, 10.2.0.2 This fix mainly 
rearms the oprocd timer after a negative time drift.
Bug 6022204: 
fix included in Oracle Clusterware 10.2.0.4 and higher (including 
11g), included in Oracle Clusterware 10.2.0.3 MLR 9 and higher 
and Oracle Clusterware 10.2.0.3 bundle patches 2 and 3 (patch # 
6756433 and 7117233). This fix doesn't exist for Oracle Clusterware 
10.2.0.2 or 
10.2.0.1. This fix supersedes 5015469 and is needed in conjunction 
with increasing the oprocd margin.

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

相關文章