ORA-00600 kclchkblk_4 错误恢复方法介绍(1/2)

原创
2016-06-07 17:46:24 1463浏览

文章总结了ORA-00600 kclchkblk_4 错误恢复方法介绍,有需要学习的朋友可参考一下。

文章总结了ORA-00600 kclchkblk_4 错误恢复方法介绍,有需要学习的朋友可参考一下。

最近客户在恢复数据库时遇到了ORA-600 kclchkblk_4错误,这个错误在MOS上有官方的解释和解决方案。

在以下错误提示下:

代码如下 复制代码

Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_smon_7493.trc:
ORA-600: internal error code, arguments: [kclchkblk_4], [1904],[18446744073431179384], [1904],18446744073403569507], [], [], []

Starting background process QMNC
QMNC started with pid=24, OS id=8329

Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_smon_7493.trc:
ORA-600: internal error code, arguments: [2662], [1904], [3988985522],[1904], [4016595064], [8388610], [], []

Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_smon_7493.trc:
ORA-600: internal error code, arguments: [2662], [1904], [3988985525],[1904], [4016595064], [8388610], [], []
SMON: terminating instance due to error 474
Instance terminated by SMON, pid = 7493


其问题,可能是由于临时表空间的SCN问题导致的,可以尝试删除所有的临时文件,启动数据库,通常可能正常启动。
可能的采取步骤是,在Mount状态下确定并删除临时文件:

代码如下 复制代码

SQL>select file_name, file_id from dba_temp_files;
SQL>alter database tempfile_name drop;
SQL>alter tablespace add tempfile size N;


如果数据库能够成功启动,可以重建临时文件。

问题描述:
服务器突然故障死机,导致数据库无法驱动,redo的CURRENT组的损坏。oracle 10g rac环境,asm磁盘组,redhat linux系统。每个组一个成员这个是组被破坏无法修复的关键。
没有归档,没有备份。使用ASM无法将数据文件冷备份出来。

代码如下 复制代码


ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 254606 change 12131176305969 time 03/08/2011 01:03:00
ORA-00312: online log 2 thread 1: '+DG1/police/onlinelog/group_2.258.657430669'

查看日志组文件信息,报错的日志组为CURRENT模式。

代码如下 复制代码

SQL> select group#,sequence#,archived,status from v$log;

GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 17495 NO INACTIVE
2 17496 NO CURRENT
3 17365 NO INACTIVE
4 17366 NO CURRENT


组成员只有一个。

代码如下 复制代码

SQL>


Group Instance Member STATUS Size(MB)
---------- ---------- ------------------------------ ---------------- ----------
1 1 +DG1/police/onlinelog/group_1. INACTIVE 500
257.657430665

2 1 +DG1/police/onlinelog/group_2. CURRENT 500
258.657430669

3 2 +DG1/police/onlinelog/group_3. INACTIVE 500
265.657431819

4 2 +DG1/police/onlinelog/group_4. CURRENT 500
266.657431825


无法使用clear命令清楚redo的信息

代码如下 复制代码

SQL> alter database clear unarchived logfile group 2
2 ;
alter database clear unarchived logfile group 2
*
ERROR at line 1:
ORA-01624: log 2 needed for crash recovery of instance police1 (thread 1)
ORA-00312: online log 2 thread 1: '+DG1/police/onlinelog/group_2.258.657430669'

SQL> alter database clear logfile group 2;
alter database clear logfile group 2
*
ERROR at line 1:
ORA-01624: log 2 needed for crash recovery of instance police1 (thread 1)
ORA-00312: online log 2 thread 1: '+DG1/police/onlinelog/group_2.258.657430669'


处理步骤

把数据库down掉

代码如下 复制代码

SQL>shutdown immediate


5、在init.ora中加入如下参数

代码如下 复制代码

_allow_resetlogs_corruption=TRUE

6、重新启动数据库,利用until cancel恢复

SQL>recover database until cancel;
Cancel

如果出错,不再理会,发出

代码如下 复制代码

SQL>alter database open resetlogs;

如果运气好的话可以正常启动数据库,就可以导出数据了。但是这里有点意外不知道是点背还是rac环境的恢复比较特殊。在alert.log中有如下报错:

代码如下 复制代码


Errors in file /u01/app/oracle/admin/police/bdump/police2_j003_17720.trc:
ORA-00600: internal error code, arguments: [4194], [9], [8], [], [], [], [], []
Wed Mar 9 18:08:06 2011
Errors in file /u01/app/oracle/admin/police/bdump/police2_j004_17722.trc:
ORA-00600: internal error code, arguments: [4193], [55749], [55753], [], [], [], [], []
Wed Mar 9 18:08:08 2011
Errors in file /u01/app/oracle/admin/police/bdump/police2_mmon_11328.trc:
ORA-00600: internal error code, arguments: [4194], [12], [17], [], [], [], [], []
Wed Mar 9 18:08:08 2011
Errors in file /u01/app/oracle/admin/police/bdump/police2_j002_17718.trc:
ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_3], [0], [0], [1], [], [], [], []


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。