闰秒对数据库和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”的时间戳,可能会导致应用挂起或主机重启。
 
 
posted @ 2015-07-20 10:32  arun_yh  阅读(3244)  评论(1编辑  收藏  举报