由于今年7月1日全世界会多出一秒,这可能对时间敏感的IT系统造成较大影响。中亦科技对此问题做了深入的研究,并对客户系统提出相应的解决方法及建议。
届时对ORACLE数据库会有以下影响:
对于单点数据库,这个调整没有任何的影响;
对于RAC系统,NTP闰秒问题可能会导致节点reboot;
对于使用NTP进行时间同步的RAC系统,对高于10.2.0.4版本的系统(包括11G)无影响;
对低于10.2.0.0.4以下的版本,如果使用了第三方cluster 软件,如HACMP,Sun Cluster or VeritasSFRAC也是没有影响;
对于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秒
截止2015年7月1日,协调世界时UTC与国际原子时TAI的差为35秒。本次闰秒调整后UTC与TAI的关系将为:UTC-TAI = - 36s,负值表示UTC相对于TAI慢了36秒。这反映了地球自转长期变慢的趋势。是否闰秒以及什么时候闰,由国际地球自转服务组织IERS根据UT1-TAI的发展趋势来决定。
当前,全球使用两种时间计量系统:基于地球自转的世界时UT1和以原子振荡周期确定的原子时TAI。世界时是以地球自转运动来计量的时间,由于地球自转速率的变化,世界时的秒长会有微小的变化,每天的快慢可以达到千分之几秒。原子时是取微观世界的铯原子两个超精细能级间跃迁辐射频率来定义的时间,其精确度每天快慢不超过千万分之一秒。TAI是均匀的时间尺度,但是与地球的空间位置不关联。世界时虽然均匀性相形见绌,但人们日常生活生产活动、天文观测、大地测量和空间活动需要UT1。TAI的起点确定在1958年1月1日0时0分0秒,随着时间的迁延,TAI和UT1两种时间尺度的时间差越来越大。为此,在UT1和TAI之间进行协调,这就产生了协调世界时UTC。其技术要点是:从1972年1月1日0时起,UTC秒长采用原子时秒长;时刻与世界时UT1时刻之差保持在±0.9秒之内,必要时用阶跃1整秒的方式来调整。这个1整秒,称为闰秒。协调世界时UTC从1972年1月开始正式成为国际标准时间,它代表了国际原子时和世界时两种时间尺度的结合。UTC是当今世界各国时间服务的基础,由各国授时服务机构发播给用户使用。
闰秒调整对普通民众的日常生活不会产生影响,时间快一秒慢一秒大家都感觉不出来。到了闰秒这一天,由国家授时中心负责运行的我国时间基准系统将通过专用“闰秒”软件自动完成闰秒调整。国家授时中心长波、短波、低频时码、互联网、电话和时间戳服务等各类授时服务信号或信息的时间都将做相应“闰秒”调整。因此,全国所有接收国家授时中心发播的标准时间信号、标准时码信息的精密时间用户,都自动完成调整。普通民众的手机时间来自通信基站,会自动调整。一般手表需要对照电视台、电台手调,电波钟表可自动调整。在此,国家授时中心提醒精密用时单位,及时调整并核对时钟钟面显示。
触发条件及避免方式
节点reboot的需要同时满足以下触发条件才会重启:
条件1:
xntpd daemondoes not have slewing enabled (default) or does not have
PLL modedisabled (default)
条件2:
A. The OracleClusterware version does not have a fix for bug 5015469 or bug
6022204 or theOracle Clusterware version does have a fix for at least one these
defects, but dueto Solaris CR#6595936 the alarm signal arrival has been
delayedexceeding the oprocd 0.5 sec default margin (only Solaris)
因为这两个条件需要同时满足才能触发,可以使用以下的方式避免相应条件的失效:
条件1:
使用ntp-x打开ntpd(xntpd)进程的“slewing”特性,进而避免其快速调整。
每个系统不同,详细可以参考:
NTP leap secondevent causing Oracle Clusterware node reboot [ID
759143.1]
条件2:
Apply OracleClusterware patch bundles or MLR (i.e. MLR # 9 or higher) in
order to resolvebugs 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. |
如有疑问或需了解更多,请与中亦科技联系
7×24小时技术支持热线:4006373700-2(数据库技术支持服务)




