eygle.com   eygle.com
eygle.com  
 

« December 29, 2005 | Blog首页 | December 31, 2005 »



December 30, 2005

谁偷走了一秒光阴?

作者:eygle

出处:http://blog.eygle.com

1second.jpg

Julia发短信告诉我,今年将会有一个闰秒出现.在网上搜索了一下,居然是真的:

2005年7月4日,国际地球自转服务组织(IERS)发布C公报,协调世界时(UTC)将在2005年底实施一个正闰秒,即增加1秒。届时,所有的时钟将拨慢1秒。具体实施步骤如下:

UTC协调世界时:

23时59分59秒(2005年12月31日)

23时59分60秒(2005年12月31日)

00时00分00秒(2006年1月1日)

相应地,北京时间:

7时59分59秒(2006年1月1日)

7时59分60秒(2006年1月1日)

8时00分00秒(2006年1月1日)

世界时是基于地球自转的一种时间计量系统,原子时是基于原子物理技术的一种更加均匀的时间系统。由于两种时间尺度速率上的差异,一般来说1~2年会差1秒。我们日常生活所用的时间是协调世界时(UTC),它是一种折衷的时间尺度,用原子时的速率,而在时刻上逼近世界时,所用方法就是“闰秒”,也就是协调世界时和世界时之差即将超过±0.9秒时,就对协调世界时作一整秒的调整。

由于地球自转变慢,而引起到2005年底协调世界时和世界时之差即将越限,因此,国际地球自转服务组织宣布此次闰秒。

看到这则消息,忽然想起了以前看过的一部电影《偷天陷阱》,老帅哥肖恩·康纳利(Sean Connery)和凯瑟琳·泽塔-琼斯(Catherine Zeta-Jones) 共同演绎了一对偷天大盗,记得他们就是利用时间调整中时间差(“千年虫”),潜入吉隆坡银行,将八十亿美元转入己自己的帐户。

这一次时间差再次出现,可是还有人能利用这一秒的差异偷天换日么?

 

我们的DBA们,如果调整一秒的数据库时间,这个世界上又会发生什么呢?

我们的2006年的第一天将会多出了一秒钟,这一秒钟从何而来又将向何处去呢?

 

时间的历史
        远古时期,人类以太阳的东升西落作为时间尺度,日出而作,日落而息。
  公元前,我国人民发明了土圭日晷,一天差15分钟。据记载,公元前一干年左右的西周初期,就已经发明了最原始的计时器土圭,所测的一年时间,已接近于地球绕太阳公转的时间。后来发展为“圭表”。“日晷”大约发明于汉代以前,同土圭一样,都是观测阳光投影方向的计时器。我国目前发现最早的一件日晷出于汉代。
  我国的北宋时期和一千多年前的希腊,都曾设计出水钟,精确到每日10分钟的误差;我国在公元前五世纪发明的“壶漏”(又称“漏壶”)是用漏水的方法,观测“刻箭”的昼夜计时器。
  在六百多年前,机械钟问世.它将昼夜正式分为24小时;到了十七世纪,单摆用于机械钟,使计时精度提高近一百倍;到了20世纪的30年代,石英晶体震荡器出现,对于精密的石英钟,三百年只差一秒。1953年世界上第一台原子钟在美国研制成功,最终使时间误差减少为零!

在一秒钟,发生了些什么呢?

1秒钟 人呼吸93毫升空气
1秒钟 人的心脏跳动1次并将60毫升血液输送到体内
1秒钟 人鼻腔中的纤毛摆动4次
1秒钟 人的小肠里有170万个细胞发生新陈代谢
1秒钟 猎豹在草原上可飞奔28米
1秒钟 蚯蚓吞食0.17毫克的土壤
1秒钟 蜂鸟振翅55次
1秒钟 植物中生长最快的竹子长10微米
1秒钟 全球平均降雨420万吨
1秒钟 地球绕太阳转动29.8公里
1秒钟 深层海流在4000米深的海底向前流动10厘米
1秒钟 夏威夷群岛向日本靠近2.9纳米
1秒钟 地球从太阳接收486亿千瓦小时的能量
1秒钟 宇宙空间里有79个星体发生爆炸结束其“生命”
1秒钟 太阳系在银河系内运行220公里
1秒钟 全球排放的二氧化碳达39万立方米,相当于32栋体育馆的面积
1秒钟 地球表面的平均气温上升0.00000000167摄氏度
1秒钟 格陵兰岛的冰川融化1620立方米
1秒钟 全球大气中减少了可供140万人用1天(710号)的氧气
1秒钟 全世界使用252吨石化燃料,相当于63辆卡车的装载量
1秒钟 Ogallala地下蓄水层的水减少380立方米,相当于一个25米游泳池的容量
1秒钟 世界灌溉农田总面积增加870平方米,足以停放58辆汽车
1秒钟 全世界天然林消失5100平方米,相当于20个网球场的面积
1秒钟 地球上平均有0.002种生物灭绝,即在7分钟里就会有1种生物灭绝掉
1秒钟 中国新沙化的土地达78平方米,相当于48个榻榻米的面积
1秒钟 全世界耕地减少2300平方米,相当于3.45亩的面积
1秒钟 全世界生产4.7公斤氟利昂气体

Posted by eygle at 9:50 PM | Comments (8)


Oracle HowTo: How to deal with Ora-600 4193 error

作者:eygle

出处:http://blog.eygle.com

在解决2662错误之后,经常会出现Ora-00600 4193错误,经常可以在alert文件中看到的错误号类似:

Fri Dec 16 22:37:27 2005
Errors in file /opt/oracle/admin/conner/bdump/conner_smon_22817.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [4193], [1171], [1187], [], [], [], [], []
Fri Dec 16 23:28:40 2005
Errors in file /opt/oracle/admin/conner/bdump/conner_smon_22817.trc:
ORA-00600: internal error code, arguments: [4193], [1171], [1187], [], [], [], [], []

4193错误通常是因为恢复时redo与undo不一致所导致。

Oracle的解释如下:

  While backing out an undo record (i.e. at the time of rollback) we found a  transaction id mis-match indicating either a corruption in the rollback   segment or corruption in an object which the rollback segment is trying to  apply undo records on.

  This would indicate a corrupted rollback segment.

检查具体的Trace文件,可以发现类似如下错误:

*** 2005-12-16 20:54:53.496
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [4193], [1171], [1187], [], [], [], [], []
Current SQL statement for this session:
UPDATE SMON_SCN_TIME SET SCN_WRP=:1, SCN_BAS=:2, TIME_MP=:3, TIME_DP=:4
WHERE TIME_MP = :5  AND   THREAD = :6  AND   ROWNUM <= 1

由于是UNDO存在不一致,可以通过重建UNDO表空间来解决:

SQL> create undo tablespace undotbs2 
   2 datafile '/opt/oracle/oradata/conner/undotbs2.dbf' size 10m;
Tablespace created.
SQL> alter system set undo_tablespace=undotbs2 scope=both;
System altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area  114365800 bytes
Fixed Size                   451944 bytes
Variable Size              50331648 bytes
Database Buffers           62914560 bytes
Redo Buffers                 667648 bytes
Database mounted.
Database opened.
SQL> show parameter undo
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     10800
undo_suppress_errors                 boolean     FALSE
undo_tablespace                      string      UNDOTBS2
SQL> drop tablespace undotbs1 including contents and datafiles;
Tablespace dropped.

至此,Ora-600 4193错误不再出现。

从alert文件中,可以看到自动控制文件备份生效:

Sun Dec 18 22:37:59 2005
drop tablespace undotbs1 including contents and datafiles
Sun Dec 18 22:37:59 2005
Deleted file /opt/oracle/oradata/conner/undotbs01.dbf
Starting control autobackup
Control autobackup written to DISK device
        handle '/opt/oracle/product/9.2.0/dbs/c-3152029224-20051218-01'
Completed: drop tablespace undotbs1 including contents and da

Posted by eygle at 2:25 PM | Comments (3)



CopyRight © 2004-2008 eygle.com, All rights reserved.