oracle修复Oracle数据库坏块的恢复
浏览量: 次 发布日期:2023-08-11 21:28:18
模拟数据块坏块:
对于发生数据块不一致的数据块,如果当前数据库有备份且处于归档模式,那么就可以利用rman工具数据块恢复功能 对数据块进行恢复,这种方法最简单有效,而且可以在数据文件在线时进行,不会发生数据丢失。对于被有备份的数据库 发生数据块损坏,可能会发生数据的丢失或数据不丢失,这要根据发生坏块的所在的对象决定的,如索引块发生损坏,数据 就不会丢失,重建索引就可以了,发生数据丢失的多发生在表或分区表数据块上。
1.不丢数据的恢复方法
如果坏块上的表最近都没有更新,还可以利用bbed的copy命令来从一个最近的备份中copy过来一个数据块恢复,具体不演示。
2.有可能存在数据丢失的恢复(在没有备份没有归档的情况下)
---用户表数据损坏
正常情况下数据条目数
制作一个坏块
发现我们第6个文件第76号数据块损坏,报ORA-0178错误,我们知掉只要数据库报ORA-01578错误,
说明该数据块已经被标识为:"software corrupt"
确认坏块的类型
经查我们的数据损坏坏位于我们的用户表上,无备份数据会丢失。
标记坏块为"software corrupt"
在第2步的时候全表扫描时已经报ORA-01578错误,说明该数据块已经被标识为:"software corrupt", 正常情况下可以跳过这步。 我们使用dbms_repair包演示标记坏块为"software corrupt"
使用dbms_repair包可参考:http://blog.itpub.net/8494287/viewspace-1357457/
--利用dbms_repair包必须先创建repair table两个表:
--再创建orphan key table
--检查对象,检查结果会放到我们之前创建的repair_table中
检查出有1个坏块
兆柏数据恢复公司--检查校验的坏块结果
我们知道当marked_corrupt为TRUE时,标识这个数据块已经被标识过software corrupt
---标识坏块为software corrupt(重新演示一下)
--再次检查,因为已经被标志为software corrupt,所以在此标志也没什么变化
未被标志为oftware corrupt ,marked_corrupt列会显示FALSE
检查其他关联对象
检查有多少个索引项指向了坏块的记录
查询发现有一个索引指向这个坏块
--检查都有多少索引数据
可以看到有146条数据指向坏块
使用dbms_repair.skip_corrupt_blocks或10231事件方式跳过坏块
兆柏数据恢复公司
可以看到当执行完dbms_repair.skip_corrupt_blocks数据可以正常访问了,只是统计出来的数据比原先
少了146条(50604-50458),也就是我们坏块上的数据没有统计,被跳过了。
---使用10231事件跳过
使用CTAS方式重建表及索引
使用重建对象的freelists方式修复原表
使用这种方式防止坏块以后被加入到freelists中 注意这个方法只适用于段空间手动管理的表空间(SEGMENT SPACE MANAGEMENT MANUAL), 否则会报ORA-10614: Operation not allowed on this segment 错误
坏块中的数据
如果坏块中的数据不可丢失,只能尝试其他方法从恢复坏块内容,这其中也有一些第三方付费工具可使用, 也可进行以下尝试:
*尝试从索引内容中恢复出索引列的内容
*尝试使用logminer,从日志中挖掘
*联系Oracle Support,会有些工具解释数据块中的内容。 oracle修复 oracle修复
重要数据丢失请联系兆柏数据恢复公司
. oracle11g修复,Oracle 11g TNS-12545错误排查与修复指南
. 控制器坏了如何修复视频,控制器故障排查与视频修复技巧解析
. 磁盘阵列坏了怎么修复啊,RAID磁盘阵列故障诊断与修复全攻略
. 戴尔笔记本硬盘损坏怎么办,戴尔笔记本硬盘故障排查与修复指南
. 数据恢复中心有哪些,揭秘硬盘故障与数据丢失的解决方案n2. 硬盘数据恢复攻略:数据恢
. 戴尔笔记本硬盘损坏修复,戴尔笔记本硬盘故障排查与修复指南
. oracle数据库数据恢复,Oracle数据库数据恢复策略与实战指南
. 硬盘数据恢复后文件损坏怎么办,硬盘数据恢复后文件损坏的应对策略与修复方法
. oracle数据库官网,深入探索Oracle数据库官网——您的数据库学习与资源宝库
. oracle数据库导入dmp,Oracle数据库导入dmp文件详解