数据库恢复指的是在数据库无法启动、数据文件损坏、表或库被误删之后,把业务数据重新抢救出来的过程。它和硬盘恢复不是一回事:硬盘恢复看的是存储介质还能不能读,数据库恢复还要看数据文件内部的结构是否成立——日志链、数据页、索引、事务一致性,任何一环对不上,数据库就起不来。
反复重启数据库服务、在磁盘已经报警的情况下长时间跑一致性检查、把 MDF 文件拷到另一台机器上反复做“附加”试验,这三件事都会对原始数据产生写操作。数据库文件被写坏往往不是故障本身造成的,而是故障之后的错误动作造成的。正确的第一步是停服务、停写入,把物理盘或者虚拟机磁盘整盘做只读镜像,后面所有分析都在镜像上做。
第一条是逻辑层恢复:数据库能启动但数据不对,比如表被删、数据被误改、误执行了删除语句。这时从完整备份、差异备份或事务日志(LDF)做时间点回滚,是代价最小的做法,能不能做取决于日志链是否完整。第二条是文件层修复:数据库处于置疑状态、MDF 文件头损坏、页校验错误、823/824 错误,需要在底层按页解析结构,把可用数据页逐个提取出来,再重建一个新的数据库承载它们。第三条是存储层恢复:数据库文件所在的 RAID 阵列掉线、固态硬盘掉固件、服务器无法加电,必须先修好介质、把数据文件完整取出来,才谈得上数据库恢复。
遇到数据库故障,可以先确认四项信息:最近一次可用备份是什么时间点、备份文件本身能不能通过校验、故障前后有没有人做过改配置或动磁盘的操作、阵列和硬盘有没有报警记录。这四项直接决定恢复方案能不能少走弯路。只要开始做写入性质的试验,后面找专业机构,难度和费用都会上升。
数据库置疑、823/824 错误、MDF 文件损坏、阵列掉线、被勒索加密,这几类基本都不适合企业自己动手。补天时代的处理顺序是:先整盘只读镜像,再做数据库结构分析,能走日志回滚就走日志,走不通再逐页提取数据。数据库恢复的成功率取决于损坏程度和前期干预,逻辑层损坏多数可以把数据取回,物理层损坏要看介质本身的状态,我们不会事前给客户打包票。
补天时代专注数据恢复二十余年,累计恢复硬盘2万个、服务器及存储3000台,处理过 Oracle、SQL Server、MySQL、DB2、SYBASE 以及国产数据库的各类损坏案例。公司地址:深圳市福田区华强北深南中路2070号电子科技大厦A座35楼,服务电话 0755-83775551。数据库一旦报错,先来电说明现象,我们会告诉你第一步该怎么处理。