当前位置: 代码迷 >> 综合 >> 操作系统时间被修改导致ORA-01075和ORA-00600[2252]
  详细解决方案

操作系统时间被修改导致ORA-01075和ORA-00600[2252]

热度:97   发布时间:2023-12-15 07:40:50.0

操作系统时间被修改引发数据库ORA-00600内部错误:

ERROR1:

$ sqlplus /nolog

SQL*Plus: Release 11.1.0.7.0 - Production on Fri Mar 10 09:40:55 2000

Copyright (c) 1982, 2008, Oracle.  All rights reserved.

SQL> connect /as sysdba
ERROR:
ORA-01075: you are currently logged on    <<<<此时已经无法连接至数据库

ERROR2:

SQL> connect user/password
ERROR:
ORA-00600: internal error code, arguments: [2252], [3156], [2060352899], [],
[], [], [], [], [], [], [], []

<<<<<ORA-00600[2252]是由于操作系统时间被修改并且跨度太大而引起的,SCN依赖于操作系统的时间,同时内部包含scn_to_timestamp和timestamp_to_scn两个函数用于SCN和时间戳的转换,如果时间跨度太大而导致数据库异常也很好被理解。

将smon后台进程kill掉,重启数据库依然报ORA-00600[2252],查看以下信息:


SQL> select a.FILE#,a.checkpoint_change#,b.CHECKPOINT_CHANGE# from v$datafile a join v$datafile_header b on a.FILE#=b.FILE#;

     FILE#            CHECKPOINT_CHANGE#            CHECKPOINT_CHANGE#
---------- ----------------------------- -----------------------------
         1                13556623902483                13556623902483
         2                13556623902483                13556623902483
         3                13556623902483                13556623902483
         4                13556623902483                13556623902483
         5                13556623902483                13556623902483
         6                13556623902483                13556623902483
         7                13556623902483                13556623902483
         8                13556623902483                13556623902483
         9                13556623902483                13556623902483
        10                13556623902483                13556623902483
        11                13556623902483                13556623902483
        12                13556623902483                13556623902483
        13                13556623902483                13556623902483
        14                13556623902483                13556623902483
        15                13556623902483                13556623902483
        16                13556623902483                13556623902483
        17                13556623902483                13556623902483
        18                13556623902483                13556623902483
        19                13556623902483                13556623902483
        20                13556623902483                13556623902483
        21                13556623902483                13556623902483
        22                13556623902483                13556623902483
        23                13556623902483                13556623902483
        24                13556623902483                13556623902483
        25                13556623902483                13556623902483
        26                13556623902483                13556623902483
        27                13556623902483                13556623902483
        28                13556623902483                13556623902483
        29                13556623902483                13556623902483
        30                13556623902483                13556623902483
        31                13556623902483                13556623902483
        32                13556623902483                13556623902483
        33                13556623902483                13556623902483
        34                13556623902483                13556623902483
        35                13556623902483                13556623902483
        36                13556623902483                13556623902483
        37                13556623902483                13556623902483
        38                13556623902483                13556623902483
        39                13556623902483                13556623902483
        40                13556623902483                13556623902483
        41                13556623902483                13556623902483
        42                13556623902483                13556623902483
        43                13556623902483                13556623902483
        44                13556623902483                13556623902483
        45                13556623902483                13556623902483
        46                13556623902483                13556623902483
        47                13556623902483                13556623902483
        48                13556623902483                13556623902483
        49                13556623902483                13556623902483
        50                13556623902483                13556623902483
        51                13556623902483                13556623902483
        52                13556623902483                13556623902483
        53                13556623902483                13556623902483
        54                13556623902483                13556623902483
        55                13556623902483                13556623902483
        56                13556623902483                13556623902483
        57                13556623902483                13556623902483
        58                13556623902483                13556623902483
        59                13556623902483                13556623902483
        60                13556623902483                13556623902483
        61                13556623902483                13556623902483
        62                13556623902483                13556623902483
        63                13556623902483                13556623902483
        64                13556623902483                13556623902483
        65                13556623902483                13556623902483
        66                13556623902483                13556623902483
        67                13556623902483                13556623902483
        68                13556623902483                13556623902483
        69                13556623902483                13556623902483
        70                13556623902483                13556623902483
        71                13556623902483                13556623902483
        72                13556623902483                13556623902483
        73                13556623902483                13556623902483
        74                13556623902483                13556623902483
        75                13556623902483                13556623902483
        76                13556623902483                13556623902483
        77                13556623902483                13556623902483
        78                13556623902483                13556623902483
        79                13556623902483                13556623902483
        80                13556623902483                13556623902483
        81                13556623902483                13556623902483
        82                13556623902483                13556623902483
        83                13556623902483                13556623902483
        84                13556623902483                13556623902483
        85                13556623902483                13556623902483
        86                13556623902483                13556623902483
        87                13556623902483                13556623902483
        88                13556623902483                13556623902483
        89                13556623902483                13556623902483
        90                13556623902483                13556623902483
        91                13556623902483                13556623902483
        92                13556623902483                13556623902483
        93                13556623902483                13556623902483
        94                13556623902483                13556623902483
        95                13556623902483                13556623902483
        96                13556623902483                13556623902483
        97                13556623902483                13556623902483
        98                13556623902483                13556623902483
        99                13556623902483                13556623902483

99 rows selected.

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS                     FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ----------------------- ---------
         1          1        193 5368709120          1 NO  CURRENT                   13556623783577 09-MAR-15
         4          1        192 5368709120          1 NO  INACTIVE                  13556623778112 09-MAR-15
         3          1        191 5368709120          1 NO  INACTIVE                  13556623772751 09-MAR-15
         2          1        190 5368709120          1 NO  INACTIVE                  13556623763532 09-MAR-15

同时对控制文件做了dump:

***************************************************************************
DATABASE ENTRY
***************************************************************************
 (size = 316, compat size = 316, section max = 1, section in-use = 1,
  last-recid= 0, old-recno = 0, last-recno = 0)
 (extent = 1, blkno = 1, numrecs = 1)
 01/12/2015 18:49:02
 DB Name "ODSPTDB"
 Database flags = 0x00404000 0x00001000
 Controlfile Creation Timestamp  01/12/2015 18:49:02
 Incmplt recovery scn: 0x0000.00000000
 Resetlogs scn: 0x0000.00000001 Resetlogs Timestamp  01/12/2015 18:49:02
 Prior resetlogs scn: 0x0000.00000000 Prior resetlogs Timestamp  01/01/1988 00:00:00
 Redo Version: compatible=0xb100000
 #Data files = 99, #Online files = 99
 Database checkpoint: Thread=1 scn: 0x0c54.65c08713
 Threads: #Enabled=1, #Open=0, Head=0, Tail=0

--------------------------

SQL> select to_number('0c5465c08713','xxxxxxxxxxxxxxxxxxxxxxxxx') abc_scn from dual;

                      ABC_SCN
-----------------------------
               13556623902483

 --------------------------


***************************************************************************
CHECKPOINT PROGRESS RECORDS
***************************************************************************
 (size = 8180, compat size = 8180, section max = 11, section in-use = 0,
  last-recid= 0, old-recno = 0, last-recno = 0)
 (extent = 1, blkno = 2, numrecs = 11)
THREAD #1 - status:0x2 flags:0x0 dirty:3
low cache rba:(0xc1.6b5346.0) on disk rba:(0xc1.6b5349.0)
on disk scn: 0x0c54.65c038f3 03/10/2000 10:16:58
resetlogs scn: 0x0000.00000001 01/12/2015 18:49:02

***************************************************************************
REDO THREAD RECORDS
***************************************************************************
 (size = 256, compat size = 256, section max = 8, section in-use = 1,
  last-recid= 0, old-recno = 0, last-recno = 0)
 (extent = 1, blkno = 9, numrecs = 8)
THREAD #1 - status:0xe thread links forward:0 back:0
 #logs:4 first:1 last:4 current:1 last used seq#:0xc1
 enabled at scn: 0x0000.00000001 01/12/2015 18:50:33
 disabled at scn: 0x0000.00000000 01/01/1988 00:00:00
 opened at 01/13/2015 09:39:34 by instance odsptdb
Checkpointed at scn:  0x0c54.65c08713 03/10/2000 10:16:58
 thread:1 rba:(0xc1.6b5349.10)
***************************************************************************
LOG FILE RECORDS
***************************************************************************
 (size = 72, compat size = 72, section max = 16, section in-use = 4,
  last-recid= 4, old-recno = 0, last-recno = 0)
 (extent = 1, blkno = 10, numrecs = 16)
LOG FILE #1:
  (name #1) /oradata/odsptdb/odsptdb/redo01.log
 Thread 1 redo log links: forward: 2 backward: 0
 siz: 0xa00000 seq: 0x000000c1 hws: 0x2 bsz: 512 nab: 0x6b5349 flg: 0xa dup: 1
 Archive links: fwrd: 0 back: 0 Prev scn: 0x0c54.65bea140
 Low scn: 0x0c54.65beb699 03/09/2015 21:08:01
 Next scn: 0xffff.ffffffff 01/01/1988 00:00:00

<<<<<<<<<<<<<
databasescn: 0x0c54.65c08713  <<<< 控制文件的SCN
on disk scn:   0x0c54.65c038f3   <<<<  实例恢复的目标SCN,却明显小于控制文件的SCN
redo low scn: 0x0c54.65beb699
<<<<<<<<<<<<<

鉴于控制文件里的SCN和数据文件头部SCN都一致,所以尝试resetlogs方式打开数据库

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery


SQL> recover database until cancel;
Media recovery complete.
SQL> alter database open ;        
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open


SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [2252], [3156], [1707116310], [], [], [], [], [], [], [], [], []

SQL> select a.FILE#,a.checkpoint_change#,b.CHECKPOINT_CHANGE# from v$datafile a join v$datafile_header b on a.FILE#=b.FILE#;

     FILE#            CHECKPOINT_CHANGE#            CHECKPOINT_CHANGE#
---------- ----------------------------- -----------------------------
         1                13556623902484                13556623902484
         2                13556623902484                13556623902484
         3                13556623902484                13556623902484
         4                13556623902484                13556623902484
         5                13556623902484                13556623902484
         6                13556623902484                13556623902484
         7                13556623902484                13556623902484
         8                13556623902484                13556623902484
         9                13556623902484                13556623902484
        10                13556623902484                13556623902484
        11                13556623902484                13556623902484
        12                13556623902484                13556623902484
        13                13556623902484                13556623902484
        14                13556623902484                13556623902484
        15                13556623902484                13556623902484
        16                13556623902484                13556623902484
        17                13556623902484                13556623902484
        18                13556623902484                13556623902484
        19                13556623902484                13556623902484
        20                13556623902484                13556623902484
        21                13556623902484                13556623902484
        22                13556623902484                13556623902484
        23                13556623902484                13556623902484
        24                13556623902484                13556623902484
        25                13556623902484                13556623902484
        26                13556623902484                13556623902484
        27                13556623902484                13556623902484
        28                13556623902484                13556623902484
        29                13556623902484                13556623902484
        30                13556623902484                13556623902484
        31                13556623902484                13556623902484
        32                13556623902484                13556623902484
        33                13556623902484                13556623902484
        34                13556623902484                13556623902484
        35                13556623902484                13556623902484
        36                13556623902484                13556623902484
        37                13556623902484                13556623902484
        38                13556623902484                13556623902484
        39                13556623902484                13556623902484
        40                13556623902484                13556623902484
        41                13556623902484                13556623902484
        42                13556623902484                13556623902484
        43                13556623902484                13556623902484
        44                13556623902484                13556623902484
        45                13556623902484                13556623902484
        46                13556623902484                13556623902484
        47                13556623902484                13556623902484
        48                13556623902484                13556623902484
        49                13556623902484                13556623902484
        50                13556623902484                13556623902484
        51                13556623902484                13556623902484
        52                13556623902484                13556623902484
        53                13556623902484                13556623902484
        54                13556623902484                13556623902484
        55                13556623902484                13556623902484
        56                13556623902484                13556623902484
        57                13556623902484                13556623902484
        58                13556623902484                13556623902484
        59                13556623902484                13556623902484
        60                13556623902484                13556623902484
        61                13556623902484                13556623902484
        62                13556623902484                13556623902484
        63                13556623902484                13556623902484
        64                13556623902484                13556623902484
        65                13556623902484                13556623902484
        66                13556623902484                13556623902484
        67                13556623902484                13556623902484
        68                13556623902484                13556623902484
        69                13556623902484                13556623902484
        70                13556623902484                13556623902484
        71                13556623902484                13556623902484
        72                13556623902484                13556623902484
        73                13556623902484                13556623902484
        74                13556623902484                13556623902484
        75                13556623902484                13556623902484
        76                13556623902484                13556623902484
        77                13556623902484                13556623902484
        78                13556623902484                13556623902484
        79                13556623902484                13556623902484
        80                13556623902484                13556623902484
        81                13556623902484                13556623902484
        82                13556623902484                13556623902484
        83                13556623902484                13556623902484
        84                13556623902484                13556623902484
        85                13556623902484                13556623902484
        86                13556623902484                13556623902484
        87                13556623902484                13556623902484
        88                13556623902484                13556623902484
        89                13556623902484                13556623902484
        90                13556623902484                13556623902484
        91                13556623902484                13556623902484
        92                13556623902484                13556623902484
        93                13556623902484                13556623902484
        94                13556623902484                13556623902484
        95                13556623902484                13556623902484
        96                13556623902484                13556623902484
        97                13556623902484                13556623902484
        98                13556623902484                13556623902484
        99                13556623902484                13556623902484

99 rows selected.

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS                     FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ----------------------- ---------
         1          1          1 5368709120          1 NO  CURRENT                   13556623902484 10-MAR-00      <<<<<<<<<<<<<注意这里的时间是2000年!!
         4          1          0 5368709120          1 YES UNUSED                                 0
         3          1          0 5368709120          1 YES UNUSED                                 0
         2          1          0 5368709120          1 YES UNUSED                                 0

这个时间按理应该能够顺利将数据库打开的...此时注意到以上的时间年份为2000年

 

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY
-------------------
2000-03-10 11:42:22

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
$ date
Fri Mar 10 11:42:25 CST 2000

时间跨度整整15年...此时将时间改为2015年,数据库就能顺利打开.

 

后来了解到他们调整时间的原因是:操作系统使用了"夏令时"时区,前几天发现时间提前了1小时,修改时间的命令格式不正确,将时间误调整为2000年.

反观整个恢复过程,其实可以先通过还原操作系统时间而避开一系列繁琐的操作,其实当自己发现在线日志的SCN小于控制文件的SCN时,曾想过增进SCN来解决,但发现控制文件和数据文件头部的SCN一致,所以才想通过RESETLOGS方式去启库。另外要提醒大家,避免使用夏令时时区,以免时间自动发生变化而引起不必要的麻烦.

---------------------------------------------------

道行尚浅,欢迎拍砖。

转载请注明出处.

  相关解决方案