C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 12月 29 12:51:12 2019
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
MOUNTED
SQL>
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-00600: 内部错误代码, 参数: [kcrf_resilver_log_1], [0x7FFF86AEE440], [2],
[], [], [], [], [], [], [], [], []
SQL> select file#,to_char(checkpoint_change#,'999999999999') from v$datafile;
FILE# TO_CHAR(CHECK
---------- -------------
1 376978890
2 376978890
3 376978890
4 376978890
5 376978890
6 376978890
7 376978890
8 376978890
9 376978890
10 376978890
11 376978890
FILE# TO_CHAR(CHECK
---------- -------------
12 376978890
已选择12行。
SQL> select group#, first_change# from v$log;
GROUP# FIRST_CHANGE#
---------- -------------
1 376978890
3 376978027
2 376977186
SQL> select file#,online_status,to_char(change#,'999999999999') from v$recover_file;
未选定行
SQL> select file#,to_char(checkpoint_change#,'999999999999') from v$datafile_header;
FILE# TO_CHAR(CHECK
---------- -------------
1 376978890
2 376978890
3 376978890
4 376978890
5 376978890
6 376978890
7 376978890
8 376978890
9 376978890
10 376978890
11 376978890
FILE# TO_CHAR(CHECK
---------- -------------
12 376978890
已选择12行。
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 376978890 (在 12/29/2019 09:00:09 生成) 对于线程 1 是必需的
ORA-00289: 建议:
E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2019_12_29\O1_MF_1_11
6467_%U_.ARC
ORA-00280: 更改 376978890 (用于线程 1) 在序列 #116467 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG
已应用的日志。
完成介质恢复。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database open resetlogs;
数据库已更改。
数据库告警日志:
Sun Dec 29 09:17:26 2019
********************* ATTENTION: ********************
The controlfile header block returned by the OS
has a sequence number that is too old.
The controlfile might be corrupted.
PLEASE DO NOT ATTEMPT TO START UP THE INSTANCE
without following the steps below.
RE-STARTING THE INSTANCE CAN CAUSE SERIOUS DAMAGE
TO THE DATABASE, if the controlfile is truly corrupted.
In order to re-start the instance safely,
please do the following:
(1) Save all copies of the controlfile for later
analysis and contact your OS vendor and Oracle support.
(2) Mount the instance and issue:
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
(3) Unmount the instance.
(4) Use the script in the trace file to
RE-CREATE THE CONTROLFILE and open the database.
*****************************************************
LGWR (ospid: 7284): terminating the instance
Instance terminated by LGWR, pid = 7284
数据库启动时报错:
Started redo scan
Errors in file e:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_7960.trc (incident=312215):
ORA-00600: ??????, ??: [kcrf_resilver_log_1], [0x7FFF86AEE440], [2], [], [], [], [], [], [], [], [], []
Incident details in: e:\app\administrator\diag\rdbms\orcl\orcl\incident\incdir_312215\orcl_ora_7960_i312215.trc
Aborting crash recovery due to error 600
Errors in file e:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_7960.trc:
ORA-00600: ??????, ??: [kcrf_resilver_log_1], [0x7FFF86AEE440], [2], [], [], [], [], [], [], [], [], []
Errors in file e:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_7960.trc:
ORA-00600: ??????, ??: [kcrf_resilver_log_1], [0x7FFF86AEE440], [2], [], [], [], [], [], [], [], [], []
ORA-600 signalled during: alter database open...
Trace dumping is performing id=[cdmp_20191229121832]
参考:
http://www.xifenfei.com/2014/03/ora-00600kcrf_resilver_log_1%E5%BC%82%E5%B8%B8%E6%81%A2%E5%A4%8D.html
MOS:
++ Checkpoint change# of controlfile and data file header was matching and was at same SCN, but all datafiles were in fuzzy state.
++ ORL was intact and not corrupted
Steps followed to resolve the issue:
Before you recreate the controlfile, Make a OS level copy of the controlfile.
1. Recreate the controlfile.. How to recreate controlfile (Doc ID 735106.1)
2, Once recreated... while the db is in mount state.. SQL> recover database using backup controlfile; If it ask for recovery, make sure you have all the required archive logs available and then recover the db. If the required archive log sequence is not yet archived and it is part of the current ORL, then pass the full path of the CURRENT ORL as below and press <Enter> : /<path>/redo02.log If it says.. "Media Recovery complete... SQL> alter database open resetlogs;
Once the database is up and Running , Run Rman> backup validate check logical database ; To rule out any Physical/Logical corruption on datafiles
