ORA-00600: 内部错误代码, 参数:[kcbzpb_1] DBWR启动期间终止实例

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]

 

本文的信息适用于:

任何平台的Oracle RDBMS ,通常由一些硬件问题引起实例崩溃之后。
症状
~~~~~~~~~~

启动期间实例崩溃,会收到下列错误和DBWR终止实例:

***
Corrupt block relative dba: 0x02c31d6a (file 11, block 204138)
Bad header found during preparing block for write
Data in bad block –
type: 100 format: 101 rdba: 0x1e010101
last change scn: 0x0000.0c117747 seq: 0x2 flg: 0x20
consistency value in tail: 0x77476402
check value in block header: 0x0, block checksum disabled
spare1: 0x1, spare2: 0x1, spare3: 0x2020
***
Thu May 22 10:32:16 2003
Errors in file /oracle/app/oracle/admin/UNST/bdump/dbw0_1123.trc:
ORA-00600: internal error code, arguments: [kcbzpb_1], [46341482], [4], [0], [],
[], [], []
DBW0: terminating instance due to error 600
Instance terminated by DBW0, pid = 1123

原因
~~~~~~~

通常,一些硬件出问题,如磁盘或内存故障,会收到这种错误,不能打开数据库,除非损坏块的数据文件处于离线状态 (可以在警报日志中找到) 。

实例崩溃时,损坏块在日记列中,DBWR启动期间会尝试将其写入磁盘,出现了故障。

修复
~~~~

首先必须找出硬件故障并修复它,之后,用 init.ora中的如下参数打开数据:

_db_block_cache_protect=true
db_block_checksum = true
db_block_checking = true

在数据文件被标记为需要恢复的文件的情况下,如果需要,执行恢复数据文件命令 ‘…’。

现在必须确认对象类型,决定修复损坏的做法:

例如:

file -> 11
block -> 204138

SELECT segment_name , segment_type , owner , tablespace_name
FROM sys.dba_extents
WHERE file_id = &bad_file_id
AND &bad_block_id BETWEEN block_id and block_id + blocks -1

如果它是一个索引,你可以轻松地创建它。如果是表,可以使用ROWID范围扫描,保存表中数据。 见 Note:61685.1.

对于其他的对象类型,请阅读 Note:28814.1 以确定修复损坏的最佳方法。
参考文献
~~~~~~~~~~~

Note:28814.1 – Handling Oracle Block Corruptions in Oracle7/8/8i/9i
Note:61685.1 – Extracting Data from a Corrupt Table using ROWID Range Scans in


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *