ORA-00600 kclchkblk_4 错误恢复方法介绍(1/2)
最近客户在恢复数据库时遇到了ORA-600 kclchkblk_4错误,这个错误在MOS上有官方的解释和解决方案。
在以下错误提示下:
代码如下 | 复制代码 |
Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_smon_7493.trc: Starting background process QMNC Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_smon_7493.trc: Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_smon_7493.trc: |
其问题,可能是由于临时表空间的SCN问题导致的,可以尝试删除所有的临时文件,启动数据库,通常可能正常启动。
可能的采取步骤是,在Mount状态下确定并删除临时文件:
代码如下 | 复制代码 |
SQL>select file_name, file_id from dba_temp_files; |
如果数据库能够成功启动,可以重建临时文件。
问题描述:
服务器突然故障死机,导致数据库无法驱动,redo的CURRENT组的损坏。oracle 10g rac环境,asm磁盘组,redhat linux系统。每个组一个成员这个是组被破坏无法修复的关键。
没有归档,没有备份。使用ASM无法将数据文件冷备份出来。
代码如下 | 复制代码 |
|
查看日志组文件信息,报错的日志组为CURRENT模式。
代码如下 | 复制代码 |
SQL> select group#,sequence#,archived,status from v$log; GROUP# SEQUENCE# ARC STATUS
|
组成员只有一个。
代码如下 | 复制代码 |
SQL>
2 1 +DG1/police/onlinelog/group_2. CURRENT 500 3 2 +DG1/police/onlinelog/group_3. INACTIVE 500 4 2 +DG1/police/onlinelog/group_4. CURRENT 500
|
无法使用clear命令清楚redo的信息
代码如下 | 复制代码 |
SQL> alter database clear unarchived logfile group 2 SQL> alter database clear logfile group 2; |
处理步骤
把数据库down掉
代码如下 | 复制代码 |
SQL>shutdown immediate
|
5、在init<sid>.ora中加入如下参数
代码如下 | 复制代码 |
_allow_resetlogs_corruption=TRUE |
6、重新启动数据库,利用until cancel恢复
SQL>recover database until cancel;
Cancel
如果出错,不再理会,发出
代码如下 | 复制代码 |
SQL>alter database open resetlogs; |
如果运气好的话可以正常启动数据库,就可以导出数据了。但是这里有点意外不知道是点背还是rac环境的恢复比较特殊。在alert.log中有如下报错:
代码如下 | 复制代码 |
|
补充:数据库,Oracle教程