电脑开机卡在错误恢复 表中出现Block错误的恢复方法及具体步骤[1]
表中出现Block错误的恢复方法及具体步骤[1]
错误示例:
block corrupt 的log Current log# seq# mem# : /data /obs _db/obs _log/obs _redo_ log *** Corrupt block relative dba: x f f file= blocknum= Fractured block found during buffer read Data in bad block type: format: rdba: x f f
解决方法
用Oracle的工具包
首先需要用dbms_repair check_object先检查一下 然后再用dbms_repair fix_corrupt_blocks修复 如果修复不了 你可以用dbms_repair skip_corrupt_blocks
![电脑开机卡在错误恢复 表中出现Block错误的恢复方法及具体步骤[1]](http://img.zhputi.com/uploads/2e01/2e012b2626174a61c7c5c8cee7498f4547242.jpg)
具体过程的说明
DBMS_REPAIR CHECK_OBJECT ( schema_name IN VARCHAR object_name IN VARCHAR partition_name IN VARCHAR DEFAULT NULL object_type IN BINARY_INTEGER DEFAULT TABLE_OBJECT repair_table_name IN VARCHAR DEFAULT REPAIR_TABLE flags IN BINARY_INTEGER DEFAULT NULL relative_fno IN BINARY_INTEGER DEFAULT NULL block_start IN BINARY_INTEGER DEFAULT NULL block_end IN BINARY_INTEGER DEFAULT NULL corrupt_count OUT BINARY_INTEGER); DBMS_REPAIR FIX_CORRUPT_BLOCKS ( schema_name IN VARCHAR object_name IN VARCHAR partition_name IN VARCHAR DEFAULT NULL object_type IN BINARY_INTEGER DEFAULT TABLE_OBJECT repair_table_name IN VARCHAR DEFAULT REPAIR_TABLE flags IN BINARY_INTEGER DEFAULT NULL fix_count OUT BINARY_INTEGER); DBMS_REPAIR SKIP_CORRUPT_BLOCKS ( schema_name IN VARCHAR object_name IN VARCHAR object_type IN BINARY_INTEGER DEFAULT TABLE_OBJECT flags IN BINARY_INTEGER DEFAULT SKIP_FLAG); dbv
你也可以用dbv工具看一下你现在其他的数据文件有没有还有坏块的
dbv file= yourfilename
具体的恢复方法
在Oracle数据库出现坏块时 Oracle会在警告日志文件(alert_SID log)中记录坏块的信息
ORA : ORACLE data block corrupted (file # block # ) ORA : data file : /oracle /oradata/V /oradata/V /users dbf
请注意 <AFN>代表坏块所在数据文件的绝对文件号 代表坏块是数据文件上的第几个数据块 出现这种情况时 应该首先检查是否是硬件及操作系统上的故障导致Oracle数据库出现坏块 在排除了数据库以外的原因后 再对发生坏块的数据库对象进行处理
lishixinzhi/Article/program/SQL/201311/16300