专栏首页沃趣科技沃趣科技火线救援某公安系统核心业务数据

沃趣科技火线救援某公安系统核心业务数据

求助电话

只剩下键盘敲打声的办公室,被一个突如其来的电话打破了宁静。电话那头,是某公安客户的紧急求助。

案发现场

其核心数据库,由于存储突然断电,导致数据库实例crash,待存储工程师修复好存储后,时间已经过去一天多了。期间客户为了避免业务中断,把十几天前的一个逻辑备份恢复回来以供临时使用,却发现由于缺少几张关键表的数据导致部分业务无法正常进行,客户方压力很大,希望存储修复好后,尽快把旧库上一些核心数据恢复回来。

天公不作美

天公不作美,存储修复好后,发现ASM实例不能将磁盘组装载,听客户说到这里,沃趣工程师当时第一反应是ASM磁盘头损坏,使ASM实例不能发现足够的ASM磁盘,进而导致磁盘组不能被装载。事不宜迟,赶紧联系了对方的技术人员远程支持,登陆上去以后先把所有磁盘的前10M数据通过dd备份了出来,防止后面误操作还原不了现场,通过kfed工具查看ASM磁盘的磁盘头,发现磁盘头都是有效的,但是实例的报错信息又非常清晰的提示磁盘组由于没有足够的磁盘导致不能被装载,这时,想到了amdu工具,它是用来抽取ASM磁盘组中的数据,但是它还有一个隐藏的功能,校验ASM磁盘头是否完整,莫非磁盘头看着是有效的,但是其实已经有不一致的数据了?

初现希望

由于客户使用的是10.2版本的ASM,默认并没有带amdu工具,因此赶紧去MOS上进行下载,安装好amdu工具后,直接在grid用户下敲amdu回车,然后会生成一个目录,目录下有report.txt文件,这个文件中记录了发现的asm磁盘以及磁盘头信息是否完好,查看这个文件后发现一共8个ASM磁盘,其中有6个磁盘的磁盘头都已经损坏,提示check值无效,对于这种情况其实非常好修复,只需要通过kfed工具把磁盘头的信息重新merge回去,Oracle会自动计算新的checksum值写回,按照这种办法做了之后,重新使用amdu工具检查,8个磁盘已经都能够正确识别,尝试重启装载磁盘组,磁盘组可以正常被装载。

雪上加霜

事情进展到这里非常的顺利,可就在感觉已经离成功仅一步之遥的时候,又遇到了问题,在拉起数据库实例的过程中,后台alert日志中显示了大量的坏块,尝试把相关的数据文件offline掉再启动数据库,又发现了大量的system表空间的坏块,当时想通过把system表空间通过amdu抽取出来,再使用bbed工具来修改相关系统坏块来尝试修复,但是接着又发现amdu工具根本没有办法使用,提示了ASM的元信息文件PST表和AT表损坏,对于PST表和AT表损坏,一般可以使用磁盘组的alter diskgroup check方式修复磁盘组元数据,但是我们这次的案例里可能损坏的信息过于严重,命令执行过程中,磁盘组直接被卸载掉了,重新尝试挂载磁盘组,可成功挂载后立即就又被卸载,查看后台进程的跟踪日志,依然是提示PST表和AT表损坏。

希望重现

通过kfed工具查看所提示磁盘的这两个元数据文件的内容,并没有发现有明显的损坏,事情到了这里貌似是无法继续了,当时脑子一转,莫非还是checksum值不一致?抱着尝试的心态,把跟踪文件中提示磁盘的AT表的元数据merge了一下,再次尝试拉起磁盘组,依然不能被装载,但是这次报错的信息变化了,提示另外一个磁盘的AT表和PST表损坏,看来有希望啊,如法炮制,就这样修复了有4个磁盘,都没有遇到问题。

TOO YOUNG TOO SIMPLE

可就在第五个磁盘的时候,这种办法不起作用了,一直提示这个盘的AT 表和PST表损坏,单独把这个盘的AT表和PST表导出来和正常的磁盘比对,没有发现有什么异常。后面又尝试了多次把之前备份的磁盘头还原后再尝试修复都不起作用。

上dul,会是万能的吗?

看来只能dul 工具上了,但是不到万不得已,又不想使用这个工具。跟客户沟通后,咨询他们是否有购买第三方的一些数据恢复服务,告之并没有,现在再找人时间上也来不及,没办法,先不管那么多了,尽快让客户的数据库能提供服务最重要,赶紧上dul工具吧,看能恢复多少数据回来。

不幸中的万幸

不幸中的万幸,本次掉电数据库的系统表空间并没有严重的数据字典毁坏,通过使用dul工具非常顺利的把几张关键表的数据都恢复了出来。恢复过程中遇到了一些问题,例如由于数据量有接近3个T,dul扫盘过程中非常的慢,还有由于表中有blob数据,dul的参数中的lob buffer给的默认值比较小导致抽取失败等等,都一一解决了。

备份,备份,还是备份!!!

整个恢复过程一波三折,不过结果总算是好的。这里强调:备份重于一切,经济条件允许的,离线备份和在线dataguard备份都要有,没有条件的,至少要有两者中的一个,否则真的发生了灾难,就只能寄希望于dul这样的恢复工具了,但是需要严重强调,dul不是万能的,而且一般能提供数据恢复服务的公司,收费都非常的昂贵,这些钱足够你来搭建一个DataGuard了。

QBackup 让你远离“火线”

双重备份

数据备份秒级验证

一键式操作

增量存储

工程师有话说

1.由于本次故障一切的操作都远程完成,很多日志和命令都没有保留。

2.别问我dul从哪下载的。

3.有任何数据库问题可随时咨询沃趣科技

本文分享自微信公众号 - 沃趣科技(woqutech),作者:沃趣科技

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-06-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ASM 翻译系列第十一弹:高级知识 Offline or drop?

    原作者:Bane Radulovic 译者: 庄培培 审核: 魏兴华 DBGeeK社群联合出品 Offline or drop? 当一个ASM磁盘不...

    沃趣科技
  • ASM 翻译系列第七弹:高级知识 How many partners?

    原作者:Bane Radulovic 译者: 庄培培 审核: 魏兴华 DBGeeK社群联合出品 ASM的数据冗余机制是通过将extent的镜像副本复...

    沃趣科技
  • ASM磁盘容量改变的故障处理

    某个数据库环境中的ASM磁盘,由于历史原因,全部配置为没有RAID信息的JBOD模式。今天在做产品升级,由于软件需要,需要将原来加入到ASM中每个JBOD的磁盘...

    沃趣科技
  • 开发应该知道的Linux系统分析-IO篇

    小文件读写的性能瓶颈是磁盘的寻址(随机读写性能更差),评估的标准是tps。大文件读写的性能瓶颈是带宽,评估的标准是持续的读写速度。Linux可以利用空闲内存作文...

    只喝牛奶的杀手
  • ASM 翻译系列第十一弹:高级知识 Offline or drop?

    原作者:Bane Radulovic 译者: 庄培培 审核: 魏兴华 DBGeeK社群联合出品 Offline or drop? 当一个ASM磁盘不...

    沃趣科技
  • ASM 翻译系列第七弹:高级知识 How many partners?

    原作者:Bane Radulovic 译者: 庄培培 审核: 魏兴华 DBGeeK社群联合出品 ASM的数据冗余机制是通过将extent的镜像副本复...

    沃趣科技
  • 视频流媒体平台EasyNVR直播出现卡顿及重复播放视频片段问题应该如何解决?

    我们之前为大家解答过不少关于流媒体服务器可能出现的问题,比如降低直播延迟、302重定向、播放中断等问题,都为大家提出了适合的解决办法。我们的流媒体服务器一次授权...

    EasyNVR
  • Flink 使用大状态时的一点优化

    Flink 支持多种 StateBackend,当状态比较大时目前只有 RocksDBStateBackend 可供选择。RocksDB 是基于 LSM 树原理...

    zhisheng
  • 云计算RAID的六种应用场景

    1、客户要求高可靠性:客户的数据最终存储到了磁盘,如SATA、SAS、SSD介质,如果磁盘损坏,数据不能丢失,怎么办?

    希望的田野
  • 操作系统核心原理-6.外存管理(上)磁盘基础

      计算机是处理数据的机器,而数据就需要有地方存放。在计算机中,可供数据存放的地方并不太多,除了内存之外,最主要的存储数据的媒介就是磁盘。对于大多数计算机领域的...

    Edison Zhou

扫码关注云+社区

领取腾讯云代金券