IT中的闰秒问题(r5笔记第85天)

时间:2022-05-04
本文章向大家介绍IT中的闰秒问题(r5笔记第85天),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

虽然闰秒的考验已经结束了,不少IT人都为这一秒付出了很大的代价。 我也是在周末知道闰秒的说法,自己听到时也是一知半解,原本以为是个很新鲜的名词,看着微信朋友圈和微信群里大家都在热烈讨论,因为都是oracle圈子的,大家讨论的更多关注点都在数据库层面了。 讨论比较多的说法是: 这个问题将影响部分开启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日零点以后再重新打开。该方法对应用系统无影响(只是短时间内不自动校时罢了,服务器自己的时间精度短时间内足够应付一般应用)。 自己也潮了一把。也顺便看看公司是否也有相应的防范措施,结果一查看邮件历史,真是让人大跌眼镜。公司早在今年1月份就已经明确发出邮件,而且讨论的邮件列表已经很长了。着实让我感慨了一把。 官方结构的宣布是在1月5日左右。http://datacenter.iers.org/web/guest/eop/-/somos/5Rgv/latest/16

To authorities responsible for the measurement and distribution of time                                                                            UTC TIME STEP                            on the 1st of July 2015                       A positive leap second will be introduced at the end of June 2015. The sequence of dates of the UTC second markers will be:                          2015 June 30,     23h 59m 59s                          2015 June 30,     23h 59m 60s                          2015 July  1,      0h  0m  0s

所以可以很明显的看到,时间会多出一秒来。关于闰秒,也简单说几句,因为自己确实是文化水平不够:)。闰秒是指为保持协调世界时接近于世界时时刻,由国际计量局统一规定在年底或年中(也可能在季末)对协调世界时增加或减少1秒的调整。由于地球自转的不均匀性和长期变慢性(主要由潮汐摩擦引起的),会使世界时(民用时)和原子时之间相差超过到±0.9秒时,就把世界时向前拨1秒(负闰秒,最后一分钟为59秒)或向后拨1秒(正闰秒,最后一分钟为61秒) 当然还有一些数据来看看,可能还有点意思。 下面是闰秒实施的一些时间情况,都是正闰秒。看到这我就在想,下一次是什么时候呢,结果百度了一大圈,没有任何收获,最后又认真读了读闰秒的百科,才发现闰秒的添加频率是不固定的,有时一年添加两次闰秒,有时7年添加一次闰秒,而这一次添加闰秒的时间是4年,如此“漂浮不定”,大体意思应该是说取决于地球的转速了。这样来看以后可能还有一些这种补丁要做。

实施年份

6月30日23:59:60

12月31日23:59:60

实施年份

6月30日23:59:60

12月31日23:59:60

1972年

+1秒

+1秒

1989年

——

+1秒

1973年

——

+1秒

1990年

——

+1秒

1974年

——

+1秒

1992年

+1秒

——

1975年

——

+1秒

1993年

+1秒

——

1976年

——

+1秒

1994年

+1秒

——

1977年

——

+1秒

1995年

——

+1秒

1978年

——

+1秒

1997年

+1秒

——

1979年

——

+1秒

1998年

——

+1秒

1981年

+1秒

——

2005年

——

+1秒

1982年

+1秒

——

2008年

——

+1秒

1983年

+1秒

——

2012年

+1秒

——

1985年

+1秒

——

2015年

+1秒

——

大概了解了一下闰秒,当然从IT层面来看,是不是只有2.6.18-164.e15之后的才不会有影响呢。以redhat为例,在不同的版本中,其实还是有一些不同。

Required Kernel Updates

RHEL 4

RHEL 4 Update 8 - kernel-2.6.9-89.EL

建议升级为RHEL 4 update 9 – kernel-2.6.9-100 RHEL 5.x

5.x: Kernel must be updated to a release >=kernel-2.6.18-164.el5

RHEL 6.x minimum required patch levels:

6.1: kernel-2.6.32-131.30.2

6.2: kernel-2.6.32-220.25.1.el6

6.3: kernel-2.6.32-279.5.2

6.4 and later already contain the patch.

7.x: currently not affected 各大厂商都会或多或少的影响到,在2012年很多互联网公司就受到很大的影响。 所以这次的闰秒时间应该是格外重视。 redhat官方的讨论文章 https://access.redhat.com/articles/15145

https://rhn.redhat.com/errata/RHEA-2015-0141.html

HP 官方的讨论 http://h30499.www3.hp.com/t5/General/HP-Support-Statement-for-XNTPD-Leap-Second-Processing/td-p/3663790?notmigrated#.VZOQjpWKDcs

IBM的官方讨论 http://www-03.ibm.com/support/techdocs/atsmastr.nsf/5cb5ed706d254a8186256c71006d2e0a/f592455a33db567086257a35005d4028/$FILE/IBM%20AIX%20Oracle%20Database%20Leap%20Second%20REDER%20%2030JUN2012.pdf

从数据库层面,在Oracle RAC 11.1.0.7版本基于AIX和Solaris时,如果使用了集群,在闰秒问题发生时,很可能会出现莫名其妙的重启情况,所以还是强烈建议打上对应的补丁。metalink的文章还是很值得推荐的。Leap seconds (extra second in a year) and impact on the Oracle database. (文档 ID 730795.1) 从这一点来看,很多问题和我们都是紧密相关的,处理问题也需要与时俱进,能够前瞻的预见问题和分析排查,就能在出现的问题的时候更加从容一些。