oracle block corrupted,ORA-01578: ORACLE data block corrupted

当遇到Oracle数据库的ORA-01578错误,即数据块损坏时,处理步骤包括备份恢复、坏块标记和跳过。首先,确认损坏文件和段信息,如表空间、段类型等;接着,检查并处理受影响的对象,如索引、主键约束等;然后,使用DBV检查其他损坏块,并通过DBMS_REPAIR包的SKIP_CORRUPT_BLOCKS标记坏块。若无备份,可能需要牺牲部分数据或重建索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误告警:

ERROR at line 1:

ORA-01578: ORACLE data block corrupted (file # 10, block # 131)

ORA-01110: data file 10:

'/u01/app/oracle/oradata/orcl/pdborcl/pdborcl_users01.dbf'

最要中是处理思路:

如果有备份有归档

rman target /

blockrecover datafile 10 block 131

好恢复

如果没有备份没归档

处理思路

1:放弃坏块的数据,抢救其他块的数据

2:将坏块打上标记,让业务skipped

一:收集信息

1、文件号

SELECT tablespace_name ,file_name,relative_fno,FILe_id FROM DBA_data_files

SELECT tablespace_name ,file_name,relative_fno,FILe_id FROM DBA_temp_files

2、段信息

select owner,segment_name,segment_type,tablespace_name from dba_extents

WHERE file_id = 10 AND 131 BETWEEN  block_id AND block_id+blocks-1

分区表(partition_name)

select owner,segment_name,segment_type,tablespace_name,partition_name from dba_extents

WHERE file_id = 10 AND 131 BETWEEN  block_id AND block_id+blocks-1

如果是表,同时要考虑表上的索引,主键约束,还有外键约束

select owner,table_name,constraint_name ,r_constraint_name pk_other_table

from user_constraints a where a.constraint_type = 'R'

-- P 代表主键, R 代表外键

如果是分区表,先将有问题的区exchange为一个普通表,按照普通表处理

如果是索引,删掉,重建,如果rebuild需要alter index ...rebulid online如果不带online则会依赖原本的坏块重建索引

如果是主键索引,考虑是否有外键指向该索引

3、dbv确实file中有无其他损坏的块

-bash-3.2$ dbv file=/u01/app/oracle/oradata/orcl/pdborcl/pdborcl_users01.dbf userid=system/5963187

二:处理让应用跳过坏块

sys用户 使用SKIP_CORRUPT_BLOCKS来告知Oracle哪些坏块需要被跳过

BEGIN

DBMS_REPAIR.SKIP_CORRUPT_BLOCKS (

SCHEMA_NAME => 'DSW',

OBJECT_NAME => 'BB',

OBJECT_TYPE => dbms_repair.table_object,

FLAGS => dbms_repair.skip_flag);

END;

/

三:扩展

如果是坏块 报ORA-0600,处理思路是,先将块标记成坏块(多了这一步),然后配置跳过坏块。

如果报ORA 01578s说明已经将坏块标记出了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值