数据块恢复

1.数据块的完整性


物理完整性:数据块头部可访问,数据块载荷符合头部描述,数据块校验值合法,数据块首尾一


致。


逻辑完整性:在数据块物理结构完整的前提下,载荷内容可以访问或在含义上无语。


数据块完整性的前提是数据块在物理上能够被访问。




2.数据块完整性检查


2.1  参数db_block_checking


指示数据库的各种进程在执行了修改操作之后立即对其访问的数据块进行一次逻辑完整性检查,


检查一旦有误,立即自动发起块级别的恢复。


2.2  参数db_block_checksum


控制物理完整性检查时是否检查数据块头部的检验值




2.3 dbv命令 


只能检查数据文件的数据块的物理结构的完整性


dbv file=+DATA/hlr/datafile/catlog.266.926847457 userid=grid/oracle


2.4  analyze命令


analyze ... validate structure  能够检查表和索引的逻辑完整性


2.5  dbms_repair.check_object存储过程


检查表和索引对象的数据块的损坏情况,并提供处理的建议,若受检对象的头部损坏,则会报错


ORA-01578


2.6 dbms_hm.run_check存储过程


能够检查诸多数据库对象的物理完整性,其中包括控制文件块,重做日志的重做记录等,也包括


数据文件块


2.7  backup命令


备份的时候会检查物理和逻辑完整性,备份一旦读取到受损的数据块,rman立即停止工作


backup validate


set maxcorrupt for 子句可以允许坏块进入备份


backup check logical database  额外检查逻辑完整性




3.恢复数据块


3.1 数据块级恢复


利用备份还原健康的数据块,然后利用归档和在线日志将还原的数据块恢复,这种恢复不能利用


增量备份,也不支持不完全恢复,也不能恢复数据文件的第一个数据块。


recover datafile 5 block 203


3.2  dbms_repair数据块修复包


fix_corrupt_blocks  将受损块标记为已损坏


skip_corrupt_blocks  在段头设置标签表示遭遇受损数据块可以不必理会


使用这对搭档可以使得表正常访问,但是受损数据块内的数据丢失


1.调用check_object过程


2.调用fix_corrupt_blocks将受损块标记为已受损


3.调用skip_corrupt_blocks跳过受损块


4.考虑全表扫描和走索引的数据不一致(坏块之前建的索引)


5.从索引中抢救字段值




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

转载于:http://blog.itpub.net/29942527/viewspace-2128489/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值