Oracle数据块损坏恢复

本文介绍了如何使用DBV工具检查数据库文件中的坏块,并提供了一种通过设置内部事件来允许导出并绕过损坏块的方法。同时强调了备份策略的重要性。

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

今天在网上搜到这个地址:
[url]http://www.eygle.com/faq/Block_corruption.htm[/url]
很好,很强大。
主要是利用DBV检查数据文件,检测坏块

CMD>dbv file=block.dbf blocksize=8192

在这种情况下,如果有备份,需要从备份中恢复
如果没有备份,那么坏块部分的数据肯定要丢失了
在这种情况下,不允许导出。
检查损坏对象

SQL>SELECT tablespace_name, segment_type, owner, segment_name
FROM dba_extents WHERE file_id = 4
and 35 between block_id AND block_id + blocks - 1;

TABLESPACE_NAME SEGMENT_TYPE OWNER SEGMENT_NAME
---------------------------------------------------------------------------
BLOCK TABLE EYGLE T


如果损失的是数据可以设置内部事件,使exp跳过这些损坏的block

ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10';

然后导出数据,并删除损坏的table,再导入。

折腾半天,还是有数据丢失的情况,所以一定要做好备份策略,这才是万全之策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值