love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

记一次TB级别的Exadata数据库恢复

本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

本文链接地址: 记一次TB级别的Exadata数据库恢复

某客户的exadata环境,由于大量硬件故障,导致数据库宕机。经过分析确认是由于某个cell节点的某个disk出现异常,导致部分

cell节点的disk 离线后无法进行asm reblance;最终导致diskgroup 被强制dismount了。如下是alert log:

我们可以看到,cell 2节点的第10号disk存在异常,通过cellcli命令行也可以进一步确认:

通过对该磁盘进行修复检查,确实也发现了坏道,如下所示:

修复完毕后,成功mount diskgroup。但是最后检查数据库存在部分数据坏块,如下所示:

对于数据坏块的修复相对比较简单,只是由于是asm环境处理起来相对麻烦一些,加上客户没有备份,所以无法进行blockcover。对于system的几个数据坏块,经过检查发现为审计对象,因此通过truncate然后insert数据即可格式化掉;

另外第25号文件的数据坏块为逻辑坏块,通过查询确认为index,直接rebuild index即可。

至于说最后第第35,36号文件,由于均为数据文件,涉及的对象均为分区表的partiiton,因此处理相对麻烦一些。

这里我通过创建测试表,然后清理掉数据,构造一个数据空块,然后将该数据块复制到asm diskgroup中替换到这几个坏块即可,注意替换之前,需要修改数据坏块的rdba地址和obj id信息,如下是数据块的复制替换过程:

最后通过rman检查,确认一切正常。如下是rman的检测结果:

Leave a Reply

You must be logged in to post a comment.