St. Robert, MO, USA Police Department使用Stellar Toolkit修复大型MS SQL数据库
圣罗伯特警察局是密苏里州圣罗伯特的执法部门,负责为城市提供安全和安全的环境,以提高生活质量。
圣罗伯特警察局一直在使用复杂的SQL Server数据库,以满足各种需求,如向内政部提供警察业绩数据、记录保存、报告预订、访问报告和数据生命周期管理。
警察局大约有30人一直在使用这个SQL数据库,他们在日常工作中主要依赖于该系统。最近,一些用户报告说,他们无法使用基于web的SQL Server报表系统界面获取任何信息;问题出现之前没有任何症状或优先级。
系统管理员诊断数据库损坏为该问题的原因;最初的调查显示,网页应用程序无法连接到后台数据库,这很可能是由于腐败。显然,由于突然断电,数据库进入了可疑模式,而数据中心备份系统也出现了故障。
根本原因分析
管理员检查了susect_pages上的SQL错误日志,发现数据库的事务日志文件已经损坏,这是与不稳定电源相关的常见问题。错误码823这表明在event_type中列出了多个页面的可疑页面;数据库中有相当数量的页面被标记为可疑的不良页面。
恢复的尝试
系统管理员从从备份中恢复开始在多个级别上解决这个问题,考虑到从潜在的数据丢失方面来说,这是风险最小的。他依赖于SnapManager®- NetApp的SQL集成数据管理系统作为备份;然而,结果是该工具一开始就没有在服务器上配置,这让人非常惊讶。
接下来,他尝试使用T-SQL从数据库的“QA”实例进行恢复。只有在生产数据库和测试数据库的版本和构建都匹配的情况下,才有可能使用此方法成功恢复,不幸的是,这里的情况并非如此。因此,由于服务器版本不匹配,数据库恢复再次失败。
最后,管理员决定使用紧急状态来处理处于可疑模式中的数据库。紧急状态将允许直接访问可疑数据库及其配置设置。它还允许导出数据库并运行DBCC CHECKDB命令来解决损坏问题。
他使用DBCC CHECKDB Command和REPAIR_ALLOW_DATA_LOSS选项来修复已经置于单用户模式的数据库。运行此命令将重建损坏的事务日志文件,并将数据库恢复到“联机”状态。
然而,在重建事务日志文件并将数据库切换到多用户模式之后,在使用DBCC CHECKCONSTRAINTS检查数据关系时发现了几个异常。目标数据库中还会丢失事务一致性。由于损坏的数据库的大小很大(~200GB), DBCC CHECKDB不能有效地修复数据库,现在没有更多的解决方案来解决这个问题。圣罗伯特警察局几天来一直在与重大宕机问题作斗争,存储数g关键信息的数据库可能会丢失。
业务需求
以下是主要业务需求:
- 修复损坏的MS SQL数据库,并将其恢复到原始的“干净”状态,而不丢失数据库完整性;DBCC CHECKDB已经影响了数据库的完整性。
- 尽快恢复对数据库的访问,以最少的人工努力和时间;为了解决这个问题,客户已经损失了几百个小时。
解决方案
现在评估第三方数据库修复软件或实用程序,系统管理员决定尝试MS SQL的Stellar Toolkit。这个软件工具包专门用于MS SQL数据库的修复和恢复,从严重损坏的SQL Server和备份(如果可用)。
管理员下载了该软件的免费试用版,以确定其有效性。试用软件对数据库进行解析,重构数据库中的所有元素,并通过预览功能确认已重建为原始状态。
现在,管理员已经确定数据库已经完全恢复,就像新的一样,他联系了Stellar的客户支持团队,了解接下来的步骤。
他购买了许可证密钥,然后激活软件,将恢复的数据库保存在本地磁盘上。整个SQL数据库修复和恢复过程在几个小时内就完成了,几乎没有人为干预。警方在24小时内就能像之前一样使用数据库系统。
关键好处
这对客户来说是一个巨大的胜利,因为整个200 GB损坏的数据库在尽可能短的时间内恢复到其原始状态,而没有浪费精力或丢失数据库完整性。
此外,已经获得了该软件的终身许可证,确保客户组织现在100%安全,不会在未来出现这种潜在的MS SQL数据库损坏情况。
下载