【ORA-600】12c R1上的600[kcratr_nab_less_than_odr]

简介:
SQL> startup;
ORACLE instance started.

Total System Global Area 1419685888 bytes
Fixed Size                  2288344 bytes
Variable Size             536872232 bytes
Database Buffers          872415232 bytes
Redo Buffers                8110080 bytes
Database mounted.
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [2],
[38], [4248], [4250], [], [], [], [], [], [], []


SQL> recover database;
Media recovery complete.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [2],
[38], [4248], [4250], [], [], [], [], [], [], []


SQL>
SQL> oradebug setmypid
Statement processed.
SQL> oradebug tracefile_name
/s01/diag/rdbms/mac/MAC_1/trace/MAC_1_ora_8585.trc



----------------------------------------------
WARNING! Crash recovery of thread 2 seq 38 is
ending at redo block 4248 but should not have ended before
redo block 4250
Incident 19490 created, dump file: /s01/diag/rdbms/mac/MAC_1/incident/incdir_19490/MAC_1_ora_8585_i19490.trc
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [2], [38], [4248], [4250], [], [], [], [], [], [], []

2013-07-07 01:01:41.295135 : Abort recovery for domain 0, flags = 0x4
2013-07-07 01:01:41.295177 : kjb_abort_recovery: domain flags=0x0, valid=0
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [2], [38], [4248], [4250], [], [], [], [], [], [], []
2013-07-07 01:01:41.295860 : Abort recovery for domain 0, flags = 0x4
2013-07-07 01:01:41.295876 : aborting recovery of 0 (0) with cluster inc 2 (0) recovery 1
2013-07-07 01:01:41.295890 : kjb_abort_recovery: domain flags=0x0, valid=0
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [2], [38], [4248], [4250], [], [], [], [], [], [], []

*** 2013-07-07 01:01:51.235
*** 2013-07-07 01:01:51.235800 13917 dbsdrv.c
Successfully allocated 2 recovery slaves
Parallel Media Recovery started with 2 slaves

*** 2013-07-07 01:02:07.397
Slave# 3: PR01 exited
Slave# 2: PR02 exited
Slave# 1: PR00 exited
ksvp2penabled: ep->flg = 0, rpr->slv_flg = 0
ksvp2penabled: ep = 0x7f9d0f67fe98, rpr = 0xb4da61c8

*** 2013-07-07 01:02:11.666
2013-07-07 01:02:11.666458 : Start recovery for domain=0, valid=0, flags=0x4
Successfully allocated 2 recovery slaves
Using 67 overflow buffers per recovery slave
Thread 2 checkpoint: logseq 38, block 2, scn 2678499
  cache-low rba: logseq 38, block 3797
    on-disk rba: logseq 38, block 4250, scn 2679872
  start recovery at logseq 38, block 3797, scn 0
Thread 1 checkpoint: logseq 35, block 2, scn 2661821
  cache-low rba: logseq 35, block 52000
    on-disk rba: logseq 35, block 52006, scn 2679836
  start recovery at logseq 35, block 52000, scn 0

*** 2013-07-07 01:02:11.696
Started writing zeroblks thread 1 seq 35 blocks 52006-52013
WARNING! Crash recovery of thread 2 seq 38 is
ending at redo block 4248 but should not have ended before
redo block 4250
Incident 19491 created, dump file: /s01/diag/rdbms/mac/MAC_1/incident/incdir_19491/MAC_1_ora_8585_i19491.trc
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [2], [38], [4248], [4250], [], [], [], [], [], [], []

2013-07-07 01:02:12.266277 : Abort recovery for domain 0, flags = 0x4
2013-07-07 01:02:12.266316 : kjb_abort_recovery: domain flags=0x0, valid=0
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [2], [38], [4248], [4250], [], [], [], [], [], [], []
2013-07-07 01:02:12.266546 : Abort recovery for domain 0, flags = 0x4
2013-07-07 01:02:12.266566 : aborting recovery of 0 (0) with cluster inc 2 (0) recovery 1
2013-07-07 01:02:12.266578 : kjb_abort_recovery: domain flags=0x0, valid=0
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [2], [38], [4248], [4250], [], [], [], [], [], [], []



SQL> oradebug setmypid
Statement processed.
SQL> oradebug dump controlf 3;
Statement processed.
SQL> oradebug tracefile_name
/s01/diag/rdbms/mac/MAC_1/trace/MAC_1_ora_8898.trc

low cache rba:(0x26.ed5.0) on disk rba:(0x26.109a.0)
on disk scn: 0x0000.0028e440 07/06/2013 13:11:33
原因是读取thread 2的redo logfile发现其仅写到4248个块, 但实际control中记录ON DISK DBA该为109a 即4250。 尝试重建控制文件:
SQL> alter database backup controlfile to trace;

Database altered.



SQL> alter system set cluster_database=false scope=spfile;

System altered.

SQL> startup force nomount;
ORACLE instance started.

Total System Global Area 1419685888 bytes
Fixed Size                  2288344 bytes
Variable Size             536872232 bytes
Database Buffers          872415232 bytes
Redo Buffers                8110080 bytes

CREATE CONTROLFILE REUSE DATABASE "MAC" NORESETLOGS  NOARCHIVELOG
    MAXLOGFILES 192
    MAXLOGMEMBERS 3
    MAXDATAFILES 1024
    MAXINSTANCES 32
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 (
    '+DATADG/MAC/ONLINELOG/group_1.263.819691857',
    '+DATADG/MAC/ONLINELOG/group_1.264.819691859'
  ) SIZE 50M BLOCKSIZE 512,
  GROUP 2 (
    '+DATADG/MAC/ONLINELOG/group_2.265.819691861',
    '+DATADG/MAC/ONLINELOG/group_2.266.819691861'
  ) SIZE 50M BLOCKSIZE 512,
  GROUP 3 (
     '+DATADG/MAC/ONLINELOG/group_3.272.819692415',
    '+DATADG/MAC/ONLINELOG/group_3.273.819692417'
  ) SIZE 50M BLOCKSIZE 512,
  GROUP 4 (
    '+DATADG/MAC/ONLINELOG/group_4.274.819692419',
    '+DATADG/MAC/ONLINELOG/group_4.275.819692421'
  ) SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  '+DATADG/MAC/DATAFILE/system.258.819691771',
  '+DATADG/MAC/DATAFILE/sysaux.257.819691725',
  '+DATADG/MAC/DATAFILE/undotbs1.260.819691817',
  '+DATADG/MAC/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/system.269.819691869',
   '+DATADG/MAC/DATAFILE/users.259.819691817',
  '+DATADG/MAC/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/sysaux.268.819691869',
  '+DATADG/MAC/DATAFILE/undotbs2.271.819692307',
  '+DATADG/MAC/DD7D8C1D4C234B38E04325AAE80AF577/DATAFILE/system.279.819692587',
  '+DATADG/MAC/DD7D8C1D4C234B38E04325AAE80AF577/DATAFILE/sysaux.277.819692585',
  '+DATADG/MAC/DD7D8C1D4C234B38E04325AAE80AF577/DATAFILE/users.280.819692587',
  '+DATADG/MAC/DD7D8C1D4C234B38E04325AAE80AF577/DATAFILE/example.278.819692585'
CHARACTER SET AL32UTF8
;


RECOVER DATABASE
-- Database can now be opened normally.

alter system set cluster_database=true scope=spfile;

startup force mount;


ALTER DATABASE OPEN;
-- Open all the PDBs.
ALTER PLUGGABLE DATABASE ALL OPEN;
-- Commands to add tempfiles to temporary tablespaces.
-- Online tempfiles have complete space information.
-- Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE '+DATADG/MAC/TEMPFILE/temp.267.819691865' REUSE;
ALTER SESSION SET CONTAINER = PDB$SEED;
ALTER TABLESPACE TEMP ADD TEMPFILE '+DATADG/MAC/DD7C48AA5A4404A2E04325AAE80A403C/DATAFILE/pdbseed_temp01.dbf' REUSE;

ALTER SESSION SET CONTAINER = MACC;
ALTER TABLESPACE TEMP ADD TEMPFILE '+DATADG/MAC/DD7D8C1D4C234B38E04325AAE80AF577/DATAFILE/macc_temp01.dbf' REUSE;
ALTER SESSION SET CONTAINER = CDB$ROOT;



重建控制文件后问题消失, 主要问题还是 主机断电对redo logfile的写丢失, 而控制文件却更新了on disk rba,导致控制文件中的RBA大于redo logfile中实际存在的, 通过重建控制文件后2者一致 从而问题消失。



本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/p2


相关文章
|
关系型数据库 网络性能优化 容器
ora.qosmserver
ora.qosmserver 作用
3342 0
|
Oracle 关系型数据库
|
关系型数据库 Oracle
|
Oracle 关系型数据库
|
机器学习/深度学习 关系型数据库 Oracle
1025ORA-00600[kkpo_rcinfo_defstgdelseg]
[20161025]ORA-00600 [kkpo_rcinfo_defstgdelseg], [xxxx].txt --链接http://www.anbob.com/archives/2745.html,重复操作,做1个记录。
1272 0
|
SQL Oracle 关系型数据库
ORA-00704、ORA-39700处理
文章版权所有Jusin Hao(luckyfriends),支持原创,转载请注明。 原来的数据库11.2.0.1,现在安装的是11.2.0.3 SQL> alter database open; alter database open ...
1001 0