错误示例: block corrupt 的log Current log# seq# mem# : /data/obs_db/obs_log/obs_redo_log *** Corrupt block relative dba: xff file= blocknum= Fractured block found during buffer read Data in bad block type: format: rdba:xff 解决方法 用Oracle的工具包 首先需要用dbms_repaircheck_object先检查一下然后再用dbms_repairfix_corrupt_blocks修复如果修复不了你可以用dbms_repairskip_corrupt_blocks 具体过程的说明 DBMS_REPAIRCHECK_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_REPAIRFIX_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_REPAIRSKIP_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_SIDlog)中记录坏块的信息 ORA: ORACLE data block corrupted (file # block # ) ORA: data file : /oracle/oradata/V/oradata/V/usersdbf 请注意<AFN>代表坏块所在数据文件的绝对文件号代表坏块是数据文件上的第几个数据块出现这种情况时应该首先检查是否是硬件及操作系统上的故障导致Oracle数据库出现坏块在排除了数据库以外的原因后再对发生坏块的数据库对象进行处理 [] [] |