随着信息化建设的发展,人们越来越依赖于计算机应用程序,依赖程度越高,数据库的安全性就越来越重要,一旦数据损坏,我们所做的大量工作就可能毁于一旦。尤其是那些重要的信息和数据受到损坏的时候,系统就无法识别数据文件,用一般的恢复工具也无能为力。

目前,绝大多数中小企业都选择使用SQL Server进行各类数据的管理,比如财务数据、业务数据、客户关系管理数据、合同管理、网站管理等等。因此,对于中小企业来说,SQL Server数据库运行的稳定性至关重要,一旦发生问题,将会给单位带来不可估量的损失。

2014年1月13日,建德市第一人民医院数据库就发生了损坏,医院有部分业务系统无法正常使用,浪擎研发技术工程师接到消息后立马赶赴建德,首先找到相关被查询的数据库及对应表,发现了对应表无法访问,通过dbcc 检查整个数据库,发现基于一致性的逻辑 I/O 错误pageid 不正确。

凭着丰富的研发经验,浪擎研发工程师立马判断SQL Server数据文件损坏,因为一般情况下SQL Server极少会出现写错误,除非硬件存储出现了问题或操作系统及数据库软件没有打相应补丁,其中硬件存储出问题可能最大。在一系列分析判断后,浪擎工程师首先去机房查看了存储,发现存储有报警,此时基本可以确定是存储磁盘的问题。

在发现了问题过后,浪擎工程师赶紧对SQL Server数据进行了有序的修复:
1、首先对整个数据库镜像完全备份,传到第二台空闲服务器(浪擎工程师建议任何时候做一份备份都是良好的习惯)。
2、在第二台服务器上将备份集导入数据库实例中,通过dbcc 检查断定哪些object id
及哪些页遭到了损坏,显示有两个表八页左右遭到损坏。
3、通过object id确定具体表名,发现正是出问题的两个表,针对问题表进行了数据修复。
4、修复完成后,将这两个表导出到临时数据库,经过校验检查发现数据正常。
5、将原表进行改名备份,再把临时数据库的两个表倒进去,完成后做全库数据检查,显示全部正常。

浪擎研发工程师建议在换新的存储前每天做手动全库备份或采用全备份加事务日志备份并存档。

此次建德市第一人民医院SQL Server数据文件损坏,院方邀请了上海浪擎和杭州电子两家厂商赶赴现场进行修复,上海浪擎做为国内最大的容灾备份软件厂商,在杭州电子无力修复数据库时力挽狂难,凭着强大的技术解建德市一医燃眉之急,又再一次体现了浪擎在国内灾备领域的实力,更奠定了浪擎在医疗行业标杆的地位。