电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

表中出现Block错误的恢复方法及具体步骤[1]


发布日期:2019/6/2
 

错误示例:

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数据库出现坏块在排除了数据库以外的原因后再对发生坏块的数据库对象进行处理

[] []

上一篇:讲解孤立用户和对象名无效问题的解决方法[1]

下一篇:表中出现Block错误的恢复方法及具体步骤[2]