|
由于办公区电力系统维护,直接切断了电源,导致数据库服务器直接系统关闭。
重新开机后,发现数据库实例启动失败。 查看以下trace文件内容:
Trace file /app/oracle/diag/rdbms/afc010c1/AFC010C1/trace/AFC010C1_ora_22669.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /app/oracle/product/server_ee/11.2.0.3
System name: SunOS
Node name: afcsc01
Release: 5.10
Version: Generic_147441-01
Machine: i86pc
Instance name: AFC010C1
Redo thread mounted by this instance: 1
Oracle process number: 17
Unix process pid: 22669, image: oracle@afcsc01 (TNS V1-V3)
*** 2013-11-26 15:31:34.474
*** SESSION ID:(33.50005) 2013-11-26 15:31:34.474
*** CLIENT ID:() 2013-11-26 15:31:34.474
*** SERVICE NAME:() 2013-11-26 15:31:34.474
*** MODULE NAME:(sqlplus@afcsc01 (TNS V1-V3)) 2013-11-26 15:31:34.474
*** ACTION NAME:() 2013-11-26 15:31:34.474
Successfully allocated 7 recovery slaves
Using 161 overflow buffers per recovery slave
Thread 1 checkpoint: logseq 1341, block 2, scn 64588792
cache-low rba: logseq 1341, block 26982
on-disk rba: logseq 1341, block 27563, scn 64602236
start recovery at logseq 1341, block 26982, scn 0
Incomplete read from log member '/oracle/redo1/AFC010C1/redo01a.log'. Trying next member.
*** 2013-11-26 15:31:34.494
Started writing zeroblks thread 1 seq 1341 blocks 27449-27456 *** 2013-11-26 15:31:34.501
Completed writing zeroblks thread 1 seq 1341
==== Redo read statistics for thread 1 ====
Total physical reads (from disk and memory): 4096Kb
-- Redo read_disk statistics --
Read rate (ASYNC): 233Kb in 0.02s => 11.40 Mb/sec
Longest record: 0Kb, moves: 0/639 (0%)
Change moves: 7/202 (3%), moved: 0Mb
Longest LWN: 37Kb, moves: 0/172 (0%), moved: 0Mb
Last redo scn: 0x0000.03d9c00c (64602124)
----------------------------------------------
----- Recovery Hash Table Statistics ---------
Hash table buckets = 262144
Longest hash chain = 1
Average hash chain = 47/47 = 1.0
Max compares per lookup = 1
Avg compares per lookup = 1021/1381 = 0.7
----------------------------------------------
WARNING! Crash recovery of thread 1 seq 1341 is
ending at redo block 27449 but should not have ended before
redo block 27563
Incident 109347 created, dump file: /app/oracle/diag/rdbms/afc010c1/AFC010C1/incident/incdir_109347/AFC010C1_ora_22669_i109347.trc
ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [1341], [27449], [27563], [], [], [], [], [], [], [] ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [1341], [27449], [27563], [], [], [], [], [], [], []
ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [1341], [27449], [27563], [], [], [], [], [], [], []
问题出在
WARNING! Crash recovery of thread 1 seq 1341 is
ending at redo block 27449 but should not have ended before
redo block 27563
解决办法:
SQL> recover database using backup controlfile until cancel; 指定日志文件恢复
Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /oracle/redo1/AFC010C1/redo01a.log Log applied.
Media recovery complete. SQL> alter database open; -必须以RESETLOGS方式打开数据库
alter database open
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open SQL> alter database open RESETLOGS ;
Database altered. SQL>select status from v$instance;
OPEN
|