如果自己搞不定可以找诗檀软件专业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
Leave a Reply