科学上有两种时间计量系统:基于地球自转的天文测量而得出的“世界时”和以原子振荡周期确定的“原子时”。“世界时”由于地球自转的不稳定(由地球物质分布不均匀和其它星球的摄动力等引起的)会带来时间的差异,“原子时”(一种较恒定的时制,由原子钟得出)则是相对恒定不变的。这两种时间尺度速率上的差异,一般来说一至二年会差大约1秒时间。1971年国际计量大会通过决议:使用“协调世界时(UTC) ”来计量时间。当“协调世界时”和“世界时”之差超过0.9秒时,国际地球自转服务组织(IERS)就负责对“协调世界时”拨快或拨慢1秒,这就是闰秒。闰秒一般加在公历年末或公历六月末。

不增加闰秒的影响

如果不增加闰秒会有什么影响呢?如果按照世界时与原子时之间时差的累积速度来看(43年减慢了25秒),大概在七八千年后,太阳升起的时间可能就会与现在相差2个小时了,本来中午12点太阳当头照,而七八千年后就要下午2点太阳才当头照了。

因为我国是东八时区(UTC+8),所以我国将在北京时间2017年1月1日的7时59分59秒也会做闰秒调整和全球同步,到时会出现7:59:60的特殊现象。但是我们常用的电子产品如果有时间自动校正都不会影响.但是对时间敏感的系统不可忽略,像航天领域, 我们的数据库系统应该也要做好检查, 润秒有可能会使OS Reboot,应用HANG, Clusterware restart问题.

关于ORACLE环境在ORACLE MOS Information Center: Leap Second Information for All Products – Database – Exadata – Middleware – Exalogic – Linux – Sun – Fusion – EBS – JDE – Siebel – Peoplesoft (Doc ID 2019397.2)中描述的很详细.The next leap second will be added on December 31, 2016 23:59:60 UTC.

2017/1/1这次增加一秒后显示为:

23:59:57 -> 23:59:58 -> 23:59:59 ->23:59:60 -> 00:00:00 -> 00:00:01

数据库以下环境不会受影响:

1, 单实例数据库

2, 使用了第三方 cluster 软件,如 Sun Cluster or Veritas SFRAC 配置。

3, 使用 Oracle Clusterware 10.2.0.4(Server Patch Set),11.1.0.7, 11.2.0.3, 12.1.0.1及更高的GI版本

4, 没有配置NTP, 系统使用本地时间,不会关心闰秒,因为没有做时间调整,而是会与实际相差1秒

以下10.2.0.4以前(老)的版本的RAC环境会可能受影响,但同时满足如下2个条件:

1. xntpd daemon does not have slewing enabled (default) or does not have PLL mode disabled (default)

2.  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)

解决方法:

ORACLE同样是推荐修改NTP方式

a). 在linux中修改/etc/sysconfig/ntpd中,修改:

OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -x",使用-x参数启动ntp。

b). 在solaris中修改/etc/inet/ntp.conf中,添加:

slewalways yes

disable pll

c). 在AIX中修改/etc/rc.tcpip文件

start /usr/sbin/xntpd "$src_running" "-x"   ,增加-x

d). 在HPUX中修改/etc/rc.config.d/netdaemons

NTPDATE_SERVER=

XNTPD=1

XNTPD_ARGS="-x"

e). 其它系统咨询厂商

NOTE:

Restart the xntpd and Clusterware after change NTP

另外:如果数据库当时insert xx:xx:60的闰秒到时间类型字段时会出现ora-1852, 解决方法可以用varchar2储存. 这难道是有些银行库字段使用varchar存储时间列的原因?我不知道.

下列MySQL版本不会受闰秒影响:

5.5 and higher.

version 5.1.31 and higher

version 5.0.74 and higher

1,The function NOW() will return ...:59:59 twice.

2,Even if the OS shows ...:59:60 will MySQL change it to ...:59:59.

ORACLE LINUX 和 OVM影响:

对于Linux而言 ,内核版本大于2.6.22的都受影响,含OEL5,6,\UEK\ RHEL4,5,6,7\ SUSE11,  对于RHEL环境建议阅读这篇Resolve Leap Second Issues in Red Hat Enterprise Linux

time environment

Arch

without ntpd

with ntpd(with default zoneinfo)

with old/default zoneinfo

with right zoneinfo

ntpd >= 4.2.2p1-9

ntpd < 4.2.2p1-9

leap=01

leap=10

Physical (baremetal) Server

OL4/OL5/OL6/UEK1/UEK2

x86/x86_64

not adjusted (differs 1sec, not backward)

adjusted as per leap second (with out backward, but with inserting ##:##:60 or removing ##:##:59)

adjusted gradually taking for a long time (not backward)

adjusted with 1 sec backward

adjusted with skipping 1 sec (not backward)

Xen or Oracle VM

Dom0

paused for 1 sec immediately before leap second (not backward)

DomU(PVM) Linux PVM kernel(kernel-xen)

DomU(HVM)

depend on HVM kernel

对于这个问题的预防可以使用下面的方法:

/etc/init.d/ntpd stop

date -s “`date`”

/etc/init.d/ntpd start

对OEM\ Java API 的影响

闰秒对于JVM的影响可能会出现java进程cpu使用100%现象, 同样oracle 的EM或Cloud Control也是基于java的应用,  影响的版本从10.2.0.5 到 12c, 包含EM agnet和OMS,  解决方法是reset 时间, 重启应用, 如果不能解决重启服务器.

对于ORACLE EXADATA的影响

对于EXADATA没有运行在 12.1.2.1.0.版本上的环境不需要执行操作, 但是如果是这个版本, 参考MOS note 1986986.1更新NTP配置.

References:

百度百科

Information Center: Leap Second Information for All Products – Database – Exadata – Middleware – Exalogic – Linux – Sun – Fusion – EBS – JDE – Siebel – Peoplesoft (Doc ID 2019397.2)

How Leap Second Affects The OS Clock on Linux and Oracle VM (Doc ID 1453523.1)

NTP leap second event causing Oracle Clusterware node reboot (Doc ID 759143.1)

Related questions with leap second on mysql (Doc ID 1450441.1)

打赏

微信扫一扫,打赏作者吧~

oracle 日期 加一秒,Leap Second (闰秒) 在ORACLE环境的影响相关推荐

  1. oracle sysdate加减日期,oracle 日期 加减方法

    oracle 日期 加减方法 oracle 日期加减方法 2011-04-18 08:40 加法 select sysdate,add_months(sysdate,12) from dual; -- ...

  2. Java String格式日期加1秒(分钟或小时)

    需求: 将如下:2017-09-18 23:59:58 String类型日期加1秒,并输出. SimpleDateFormat df = new SimpleDateFormat("yyyy ...

  3. Oracle 日期加减运算

    -- Start 我们都知道数字可以进行加.减.乘.除等运算.那么,日期可不可以呢?答案是,日期只能进行加.减运算. 在开始操作日期之前,我们先了解一下 Oracle 支持哪些日期数据类型,如下所示: ...

  4. oracle日期加减计算

    oracle数据库中有多种对日期加减的计算方法,废话不多说,开始. 1.直接加减. (1)求当前时间及一天后: select sysdate,sysdate + 1 from dual; 输出为: 2 ...

  5. oracle 日期加3个月,三个日期函数(十分有用)!!!!!!!!

    函数一: CREATE OR REPLACE FUNCTION dayadd( p_Component         varchar2, p_Number        number, p_Date ...

  6. java日期加减秒_Java日期——年、月、日、时、分、秒、周加减计算

    Java日期--年.月.日.时.分.秒.周加减计算 Java日期--年.月.日.时.分.秒.周加减计算 1.Pom依赖 joda-time joda-time 2.9.9 2.示例代码 package ...

  7. Oracle日期加3天 加月 加年 上一月(MySQL获取上一月 上个月) 上一日 上一天 日期加一天

    Oracle日期增加 对当前日期增加3天 SQL> select sysdate, sysdate+3 from dual; 对当前日期增加一个小时: select sysdate, sysda ...

  8. ORACLE日期加减【转】

    首先,感谢这个作者的辛勤汗水给我们带来的总结,因为日期函数操作对平时的使用真的是很常用,所以收藏一下以作后期使用. 原贴地址:http://www.cnblogs.com/xiao-yu/archiv ...

  9. ORACLE 日期加减操作

    无论是DATE还是timestamp都可以进行加减操作. 可以对当前日期加年.月.日.时.分.秒,操作不同的时间类型,有三种方法: 1 使用内置函数numtodsinterval增加小时,分钟和秒 2 ...

最新文章

  1. 专注文本处理,达观数据完成B轮融资,累计融资超2亿元
  2. 【c语言】打印*型金字塔
  3. mysql 自定义哈希函数_C++ STL无序容器自定义哈希函数和比较规则(超级详细)...
  4. ES6 中 Promise 详解
  5. Android被逼学习例子2
  6. 【机器学习】银行贷款违约预测
  7. js控制scss的变量_web前端:js如何操作sass里的变量及calc 使用sass变量
  8. python链表定长翻转_python实现单链表翻转
  9. NVIDIA新旗舰GeForce GTX 780深度评测
  10. phpexcel 数字格式_将文本转换为phpexcel中的数字格式
  11. 深度学习2.0-32.经典卷积网络VGG,GoogleNet,Inception-1
  12. JTabel 中监听某个单元格的值确实改变了
  13. 【从C到C++学习笔记】内敛函数/内敛函数与带参数宏的区别/新的类型转换运算符
  14. 如何使用IDEA格式化JSON数据
  15. postgreSQL 中raise notice用法
  16. 什么是IPFS - BlockChain Storage 区块链存储 (1)
  17. 网络流24题 餐巾计划(费用流)
  18. 2020计算机专业保研夏令营面经:中科院计算所网数机试题目
  19. 什么是局域网监控?是如何监控的...
  20. 勇敢面对人生的苦难(转载自https://www.xuemeiwen.com/)

热门文章

  1. hdu4410(Boomerang)(计算几何)
  2. SilverLight中的数据绑定
  3. linux试密码3次则屏蔽ip,linux centos封锁多次ssh密码错误的主机IP
  4. 编译linux源码,linux源码树编译
  5. 王伟storm_王伟 - 南京大学 - 化学化工学院
  6. vim linux python3,VIM:在python-mode中使用python3解释器
  7. smallint占用几个字节_面试官问我:Object o = new Object() 占用了多少个字节?
  8. 温馨剪纸风三八妇女节PSD分层海报模板
  9. 家居海报PSD模板,是否也是你理想的生活!
  10. UI设计师必备的APP设计素材