oracle下时间表示什么意思,Oracle与Linux/Unix下的时间处理

Oracle与Linux/Unix下的时间处理

6ee5639a40442445944d63b514b2dd02.png

在Linux/Unix上,Oracle在很多地方都从系统取得时间。

记录一下Linux/Unix上的时间处理:

UNIX及Linux的时间系统是由「新纪元时间」Epoch开始计算起,单位为秒,Epoch则是指定为1970年一月一日凌晨零点零分零秒,格林威治时间。

目前大部份的UNIX系统都是用32位元来记录时间,正值表示为1970以后,负值则表示1970年以前。我们可以很简单地计算出其时间领域:

2^31/86400(s) = 24855.13481(天) ~ 68.0958(年)

1970+68.0958 = 2038.0958

1970-68.0958 = 1901.9042

时间领域为[1901.9042,2038.0958]。

准确的时间为2038年一月十八日星期一晚上十点十四分七秒。那一刻,时间将会转为负数,变成1901年十二月十三日黑色星期五下午三点四十五分五十二秒,然後Jason就会跑出来用斧头砸掉您的电脑。

这就是所谓的UNIX 2038 BUG,或者您也可戏称为Jason hatchet bug。在大部份的UNIX上,并没有所谓Y2K问题,不过都有2038年问题。

在一些64位元的平台上,例如Digital Alpha、SGI、Sparc等等,则用64位元来表示时间。

2^63/86400 ~ 1E14(天) ~ 2.92E11(年)

大约是292亿年。

因此,使用64位元的电脑可能会有Armageddon bug的问题。届时位於猎户座旋臂的太阳,已经是黑矮星或暗黑物质,猎户座旋臂大概也已经被重力波震断,银河系大概则已经变成小型似星体了。

虽然许多人认为UNIX的2038年问题会随着科技的进步,而将电脑逐步汰换成64位元电脑,因此无须担心。但我个人相信,在2038年,依然会有许多状况出现。因为,就事实而言,目前许多UNIX系统都有足够的能力服役到2038年而毫无问题。因此,如果有意添购电脑主机,而且有预期会使用到那个时候,最好是选购64位元电脑,确认只有世界末日问题(除非您想要把资料流传给下一个宇宙,那就要另当别论了)。

以上资料转引自网络。

-The End-

By eygle on 2007-03-11 19:24 |

Comments (6) |

Internal | 1370 |

6 Comments

这个世纪的资料留到下个宇宙,不知道是不是古董啊

因为,就事实而言,目前许多UNIX系统都有足够的能力服役到2038年而毫无问题

------- 一般硬件服务器服役超过5年 可靠性就比较差了,一般不大会做关键应用,如果超过10年还敢放心的使用…… 那算厉害了。

再者,时间过去10年,那服务器恐怕不管是cpu 还是内存还是硬盘还是io方面都难以满足时代的需要了,在财务上也早就报废了。 所以这句话说的实在有点扯。 31年,现在谁要是还在用 2007-31=1976 年的服务器来提供商业应用那才是笑话。

顺便再几句:

如果服务器在使用5年后还在提供相同的服务,除了少数投资比较大保修要求高的服务器外,对于大多数不曾升级的unix服务器而言,那么基本说明该业务并没有显著的增长,或者该业务逐渐成为很少关注的业务。 但投资再大的关键业务,10年服务器也应该更新换代了,即使不考虑性能和扩展性问题,可靠性肯定是个大问题。

我记录一下这个是因为Unix/Linux的计时问题。

因为C的计时起点是1970年1月1日起,Oracle有很多地方时间取自操作系统,所以很多Bug可能会出现,类似以前有过的497天的bug:

http://www.eygle.com/archives/2004/11/job_can_not_execute_auto.html

最近写作的过程中发现了很多好玩的东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值