某公司因为某个财务应用连接不上,要重启服务器,服务器也有业务应用数据库,虽然通知下去,但是并不是所有人都在意,可能有人没有退出;而重启服务器者采用了强行断电关机然后重启的办法;结果造成业务数据库无法正常使用,现象是能够正常登录,但是一些操作出错;检查服务器附加数据库正常,但是备份失败,检测固态硬盘,发现三个柱面的坏区,六处共七八十个坏扇区;
一,硬盘扫描。首先扫描数据库所在的D盘,详细报告如下:
(D盘)磁盘检测结果: 被检测磁盘:HD1:NVMetigoSSD256GB(238GB) 检测范围:柱面 10484 - 24507 (该磁盘柱面总数:31130) 完成时间:2023-10-31 20:56:07 共检测到 3 个坏道区域。详细坏道信息如下:       柱面号     磁头号       扇区号     扇区数目     柱面耗时(ms)   修复情况   当前错误信息        10522        163       42-57             16           32       未处理   数据错误(循环冗余检查)。        10522        188        3-34             16           32       未处理   数据错误(循环冗余检查)。        10522        212       43-58             16           32       未处理   数据错误(循环冗余检查)。        10715        158       28-55             28            0       未处理   数据错误(循环冗余检查)。        21621        199       51-58              8           16       未处理   数据错误(循环冗余检查)。
E盘区域也有损坏,盘面扫描也有很多错误;
二、数据提取     一般的拷贝提取,是无法进行的,往往中断退出。决定强行提取数据库文件,使用diskgenius提取,使用提取的文件,用SQL命令和数据库修复软件进行修复,结果都不理想,后来发现拷贝数据不完整,存在跳跃现象、尾部有大量的数据填充,整个文件8.7G,填充差不多占10-20%;不坏才怪; 后来使用win-hex专业磁盘编辑提取、RST专业恢复软件提取,跳过坏扇区,文件大小一点不差,没坏部分完全提取。
三、数据库修复
使用第一次提取的数据,使用斯泰勒数据库修复软件修复,虽然修复成功,但是使用存在错误,说明数据有损失,提取的文件存在问题,数据不全;
因此再次使用其它反复、其它工具,详细设置,到单扇区级,最大限度的提取数据。感觉提取接近完美。 使用后来提取的数据,使用允许有损修复命令,修复成功,使用检查完整无误。而使用快速修复、重建索引都不行,存在两个一致性错误,个别表ID有问题;
single用户模式下,使用DBCC CHECKDB (''ytyl'' REPAIR_ALLOW_DATA_LOSS)修复;
四、更换硬盘,拷贝数据,还原系统和应用。
五、关于硬盘修复,数据无损修复 因为是固态硬盘,盘面坏道是无法修复的,曾经做过尝试,不行; 而机械硬盘,遇到这种问题,大多数往往是逻辑坏道,正常无法读取,但是是可以修复的,因为是磁性强弱问题导致的弱(软)物理损坏,不是划伤之类的硬物理损坏。修复之后,硬盘和数据都完全恢复正常。 |