閏秒對數據庫和linux的影響


xiangzhenggui(向正貴) 07-01 17:52:36
從日志情況看,這次zookeeper,hadoop出現異常確實與2015年7月1號8:00閏秒有關系
xiangzhenggui(向正貴) 07-01 17:59:06
DataInputStream.java:370)
    at org.apache.jute.BinaryInputArchive.readInt(BinaryInputArchive.java:63)
    at org.apache.zookeeper.server.quorum.QuorumPacket.deserialize(QuorumPacket.java:83)
    at org.apache.jute.BinaryInputArchive.readRecord(BinaryInputArchive.java:108)
    at org.apache.zookeeper.server.quorum.Learner.readPacket(Learner.java:152)
    at org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:85)
    at org.apache.zookeeper.se
xiangzhenggui(向正貴) 07-01 17:59:06
2015-07-01 08:00:54,151 WARN org.apache.zookeeper.server.quorum.Learner: Exception when following the leader
java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
    at java.io.DataInputStream.readInt(
xiangzhenggui(向正貴) 07-01 17:59:06
rver.quorum.QuorumPeer.run(QuorumPeer.java:740)
2015-07-01 08:00:54,152 INFO org.apache.zookeeper.server.quorum.Learner: shutdown called
java.lang.Exception: shutdown Follower
    at org.apache.zookeeper.server.quorum.Follower.shutdown(Follower.java:166)
    at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:744)
----------------------------------------------------------------------------------------------------

(1)10.2.0.3在影響版本范圍內

(2)注意兩點可以避免:1. ntp進程使用 -x 選項漸進式調整; 2. Oracle針對BUG 5015469, 6022204打了fix
(3)我這邊的做法是:一、非工作時間暫時關閉ntp同步,明天非工作時間再啟用;二、工程師早上standby,以防萬一。 2012年閏秒的時候確實有一個生產節點飛掉了
(4)發布一個Oracle運維方面的緊急預警,由於7月1日閏秒問題,服務器存在隱患,需要通知預防:
 
雖然閏秒調整對普通民眾的日常生活不會產生影響。不過,這個問題將影響部分開啟ntp服務的Linux操作系統——會導致Linux內核Crash!Linux kernel是在2.6.18-164.e15之后的版本中解決了這個問題。換句話說,Linux kernel低於2.6.18-164的Linux系統,無論是什么公司的Linux都將受到影響。
閏秒產生后,由於NTP同步時間,則對於10.2.0.4 (不包括)之前的RAC系統, 存在BUG 5015469 和BUG 6022204 可能在一定場景下會導致節點重啟。

參考oracle 官方文檔,          Leap seconds (extra second in a year) and impact on the Oracle database. (文檔 ID 730795.1)
 
建議解決辦法:在6月30日停掉所有Linux及Oracle版本在上述影響范圍內的Oracle RAC數據庫服務器的NTP網絡時間同步服務,到7月1日零點以后再重新打開。該方法對應用系統無影響(只是短時間內不自動校時罷了,服務器自己的時間精度短時間內足夠應付一般應用)。

(5)使用了timestamp,那么應用可能會報錯ORA-01852
(6)分享一下閏秒調整會對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”的時間戳,可能會導致應用掛起或主機重啟。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM