备份作为数据保护的最后屏障,平时很少用到。但每每用到的时候都是关键时刻。但是。越是关键时刻。越容易掉链子。大家一起来说说看。你们都遇到过哪些数据备份在关键时刻无法恢复的情况呢
备份还是要有验证和恢复演练。
比较常见的是备份数据不可用,比如磁带损坏、备份到重删池,重删池底层计算错误,导致校验失败等等,都会导致数据恢复不出来。
有条件的话,数据还是存两份,且在不同的介质上比较好。
收起此前在运营商闯荡的时候,遇到过一起很典型的掉链子例子:
运营商的好多客户数据都是需要长期保存的,而且不能丢,遇到重大刑侦案件的时候往往要调取这些数据协助调查,如果提供不出来,会对公司当年的考核影响很大。有一次呢,遇到了一个大案,上头发文让协助调查,需要恢复指定的通话记录和部分内容,在系统里很快就查到当年数据的所在业务系统,定位到了数据所在的服务器,随后确定了数据的时间,接着就让备份管理员开始着手恢复数据,检查恢复环境,检查数据备份状态,确认数据时间版本,一切OK,开始恢复,恢复完了都傻眼了……恢复了一堆数据,里面压根没有需要的数据。
后来查证,原来因为系统的某个需求变更,一部分业务数据被独立出来,存取路径变更了,变更也没告知备份管理员,同时这部分业务数据体量又很小,整个系统数据备份的体量远大于这部分数据,备份软件的监控上备份任务详情里无论从备份数据量、备份时间都在正常范围内。更不幸的是,这个系统从来都没被抽到进行数据恢复演练……因此独立出来的数据,这几年都没备份……
目前备份只有DB2数据库用到过,没有遇到过硬件无法启动、数据库无法启动等大的故障,只是误删除表数据,误删除某个或几个表。 这个时候数据库还能运行,只是丢失部分数据,直接从备份中还原即可。
SQLServer数据库只做过测试,通过数据库备份和事物日志备份能够在新机器上还原到事物日志最后备份的时间点数据库状态。
Oracle数据库RMAN恢复未做过测试,只是用exp、imp做过导出导入的还原操作,这种肯定会丢失部分数据。
Mysql数据库也是用sqldump备份 source还原过。
所以,Mysql和Oracle如何能够还原到故障点发生时的数据库状态,还需各位大侠一起分享经验。