今天是有人在淘寶WangWang上找我,需要oracle資料庫恢複支援
遠程登入上去一看探索資料庫mount的時候報ORA-600[kccpb_sanity_check_2]錯誤
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Jul 29 16:23:18 2015
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kccpb_sanity_check_2], [14169],
[14160], [0x0], [], [], [], []
嘗試重建控制檔案
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup pfile='D:\database\m104\pfile\init.ora' nomount
ORACLE instance started.
Total System Global Area 444596224 bytes
Fixed Size 1291072 bytes
Variable Size 155192512 bytes
Database Buffers 281018368 bytes
Redo Buffers 7094272 bytes
SQL> SHOW PARAMETER CONT;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string D:\DATABASE\M104\CTRL\CONTROL0
2.CTL
global_context_pool_size string
SQL> ALTER DATABASE MOUNT;
ALTER DATABASE MOUNT
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kccpb_sanity_check_2], [14169],
[14160], [0x0], [], [], [], []
SQL>
SQL> CREATE CONTROLFILE REUSE DATABASE "m104_db" NORESETLOGS FORCE LOGGING NOAR
CHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 2921
7 LOGFILE
8 GROUP 1 'D:\database\m104\log\redo01.log' SIZE 51200K,
9 GROUP 2 'D:\database\m104\log\redo02.log' SIZE 51200K,
10 GROUP 3 'D:\database\m104\log\redo03.log' SIZE 51200K
11 DATAFILE
12 'd:\database\m104\data\system01.dbf',
13 'd:\database\m104\data\sysaux01.dbf',
14 'd:\database\m104\data\USERS01.DBF',
15 'd:\database\m104\data\UNDOTBS01.DBF',
16 'd:\database\m104\data\INDX01.DBF'
17 CHARACTER SET WE8ISO8859P1
18 ;
CREATE CONTROLFILE REUSE DATABASE "m104_db" NORESETLOGS FORCE LOGGING NOARCHIVE
LOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-00600: internal error code, arguments: [kccsga_update_ckpt_4], [1], [8],
[], [], [], [], []
SQL>
SQL> CREATE CONTROLFILE REUSE DATABASE "m104_db" RESETLOGS FORCE LOGGING NOARCH
IVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 2921
7 LOGFILE
8 GROUP 1 'D:\database\m104\log\redo01.log' SIZE 51200K,
9 GROUP 2 'D:\database\m104\log\redo02.log' SIZE 51200K,
10 GROUP 3 'D:\database\m104\log\redo03.log' SIZE 51200K
11 DATAFILE
12 'd:\database\m104\data\system01.dbf',
13 'd:\database\m104\data\sysaux01.dbf',
14 'd:\database\m104\data\USERS01.DBF',
15 'd:\database\m104\data\UNDOTBS01.DBF',
16 'd:\database\m104\data\INDX01.DBF'
17 CHARACTER SET WE8ISO8859P1
18 ;
CREATE CONTROLFILE REUSE DATABASE "m104_db" RESETLOGS FORCE LOGGING NOARCHIVELO
G
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-00600: internal error code, arguments: [kccsga_update_ckpt_4], [1], [8],
[], [], [], [], []
無論是使用noresetlogs還是resetlogs,重建控制檔案都報ORA-600[kccsga_update_ckpt_4]錯誤.比較奇怪,無解指定控制檔案新名稱重建試試看
修改控制檔案路徑
SQL> SHUTDOWN ABORT
ORACLE instance shut down.
SQL> startup pfile='D:\database\m104\pfile\init.ora' nomount
ORACLE instance started.
Total System Global Area 444596224 bytes
Fixed Size 1291072 bytes
Variable Size 155192512 bytes
Database Buffers 281018368 bytes
Redo Buffers 7094272 bytes
SQL> SHOW PARAMETER CONT;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string D:\DATABASE\M104\CTRL\CONTROL0
4.CTL
global_context_pool_size string
SQL> CREATE CONTROLFILE REUSE DATABASE "m104_db" RESETLOGS FORCE LOGGING NOARCH
IVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 2921
7 LOGFILE
8 GROUP 1 'D:\database\m104\log\redo01.log' SIZE 51200K,
9 GROUP 2 'D:\database\m104\log\redo02.log' SIZE 51200K,
10 GROUP 3 'D:\database\m104\log\redo03.log' SIZE 51200K
11 DATAFILE
12 'd:\database\m104\data\system01.dbf',
13 'd:\database\m104\data\sysaux01.dbf',
14 'd:\database\m104\data\USERS01.DBF',
15 'd:\database\m104\data\UNDOTBS01.DBF',
16 'd:\database\m104\data\INDX01.DBF'
17 CHARACTER SET WE8ISO8859P1
18 ;
Control file created.
使用新的控制檔案位置,這次終於資料庫重建控制檔案成功
嘗試指定redo進行恢複,資料庫正常開啟
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
ORA-00279: change 3643108240801 generated at 07/26/2015 20:15:22 needed for
thread 1
ORA-00289: suggestion :
D:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS\ARC00567_0866390669.001
ORA-00280: change 3643108240801 for thread 1 is in sequence #567
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
D:\database\m104\log\redo01.log
ORA-00310: archived log contains sequence 566; sequence 567 required
ORA-00334: archived log: 'D:\DATABASE\M104\LOG\REDO01.LOG'
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: 'D:\DATABASE\M104\DATA\SYSTEM01.DBF'
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
ORA-00279: change 3643108240801 generated at 07/26/2015 20:15:22 needed for
thread 1
ORA-00289: suggestion :
D:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS\ARC00567_0866390669.001
ORA-00280: change 3643108240801 for thread 1 is in sequence #567
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
D:\database\m104\log\redo02.log
Log applied.
Media recovery complete.
SQL> ALTER DATABASE OPEN RESETLOGS;
Database altered.
資料庫恢複完成。整個資料庫恢複比較簡單,但是注意這裡的ORA-600[kccsga_update_ckpt_4]通過修改控制檔案路徑規避,具體原因待查。
知識點補充:ORA-600 [kccpb_sanity_check_2] [a] [b] {c}
VERSIONS:
Versions 10.2 to 11.2
DESCRIPTION:
This internal error is raised when the sequence number (seq#) of the
current block of the controlfile is greater than the seq# in the controlfile header.
The header value should always be equal to, or greater than the value
held in the control file block(s).
This extra check was introduced in Oracle 10gR2 to detect lost writes
or stale reads to the header.
ARGUMENTS:
Arg [a] seq# in control block header.
Arg [b] seq# in the control file header.
Arg {c}
聯絡:手機(13429648788) QQ(107644445)
連結:http://www.xifenfei.com/6001.html