Backup And Recovery User's Guide-决定是否允许恢复标志损坏的块:阶段3

决定是否允许恢复标志损坏的块:阶段3

当介质恢复遇到了问题,则预警日志可能会表明,如果允许将引起问题的块标记为损坏的块,则恢复是可以继续的。

预警日志包含块的信息:块的类型块的地址块属于的表空间。对于包含用户数据的块,预警日志也可以报告数据对象号。

 

在这种情况下如果允许标记有问题的块为损坏的,则数据库可以继续恢复。然而这种方式不总是建议的。

如果这个块是SYSTEM表空间中的重要的块,把这个块标记为损坏可能会最终阻止你打开恢复的数据库。

 

另一个考虑是这个恢复问题是否是独立的。

如果这个问题在后面立即跟了redo流中的许多其它问题,则可能想使用RESETLOGS选项打开数据库。

对于用户数据的块,可以查询数据库来发现哪个对象或表拥有这个块。

如果数据库没有打开,你可以使用只读方式打开,即使你正在恢复整个数据库备份。

下面的代码中断了恢复,以只读方式打开数据库:

CANCEL

ALTER DATABASE OPEN READ ONLY;

假设在alert_SID.log中报告的数据对象的编号为8031,则可以通过下面的查询确定所有者、对象名和对象类型。

SELECT OWNER, OBJECT_NAME, SUBOBJECT_NAME, OBJECT_TYPE

FROM DBA_OBJECTS WHERE DATA_OBJECT_ID = 8031;

 

判断一个恢复问题是否是独立的,可以运行一个诊断的试验恢复,这个试验恢复会扫描redo流,

但不会对恢复的数据库进行任何改变。如果试验恢复发现了任何恢复问题,则会在alert_SID.log中报告这些问题。

使用RECOVER…TEST开始一个试验恢复过程。

 

在已经做了上述调查之后可以遵循 29.6中的指导来决定是否允许恢复允许损坏块。

29.6  允许对允许损坏的数据块的恢复

如果问题是

如果块是

不独立

 

应该能够使用RESETLOGS选项打开数据库。这个响应对于stuck恢复问题是非常重要的。因为stuck恢复问题可以被操作系统或存储系统丢失写操作而引起。如果操作系统或存储系统突然失败,则可以在多个块上引起stuck恢复问题。

独立

SYSTEM表空间中

不损坏块,因为它可能会最终阻止你打开数据库。然而,有些时候在SYSTEM表空间的数据是不重要的。如果你必须损坏SYSTEM块并恢复所有的改变,则联系Oracle Support Service

独立

索引数据

考虑破坏索引,因为索引可以在数据库被恢复之后被重建。

独立

用户数据

根据的数据的重要性来决定。如果继续数据文件恢复并且损坏了一个数据块,则会丢失在数据块中的数据。然而后面可以使用RMAN来执行快介质恢复,即在恢复完成之后。

独立

回滚或undo数据

如果所有的事务都被提交了,则可以考虑损坏回滚或undo数据块。如果产生这些undo信息的事务永远不被回滚,则数据库是不会受到伤害的。然而如果那些事务被回滚,则损坏undo数据块可能会引起问题。如果不确定,则联系Oracle Support Service

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1101388/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17013648/viewspace-1101388/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值