【服务器数据恢复】ERP/CRM系统SQL Server数据库结构损坏碎片重组数据恢复案例发表时间:2021-10-13 14:42
一:客户信息 河北某食品集团 二:案例描述 客户向我们反馈公司运行ERP/CRM的一台DELL服务器由于突然断电,服务器中一台VPS不可用,虚拟磁盘上的数据库文件丢失。 三:解决方案 案例评估 服务器上4块硬盘搭建了一个RAID10的磁盘阵列环境,安装了Citrix XenServer的虚拟化操作系统,虚拟机采用Windows Server操作系统,有系统盘和数据盘两组,上层部署ERP/CRM系统(SQL Server数据库)。服务器意外断电导致虚拟机磁盘丢失,虚拟机不可用,SQL Server数据库和ERP/CRM程序文件丢失,需要恢复SQL Server数据库。 恢复方案 1、将出故障的DELL服务器中所有硬盘以只读方式进行备份,后续的数据恢复分析和数据恢复操作都基于备份的镜像文件进行,不会对原服务器上的数据做任何操作,保证原服务器的初始状态,避免对原始数据造成可能的二次破坏。 2、基于镜像文件对底层数据进行分析,发现故障服务器中丢失的虚拟机磁盘采用LVM结构。进入到“/etc/lvm/backup/”目录下查询看是否有损坏的虚拟磁盘信息,如果有就意味着LVM信息尚有保存;如果没有就意味着虚拟磁盘信息已经被更新,只能通过底层数据查找没有更新的LVM信息。本案例中金海境科技的工程师从底层数据中查询到了尚未更新的LVM信息。 3、找到LVM信息就意味着数据没有丢失。基于LVM信息分析和查找虚拟磁盘的分区数据,但是工程师经过分析后发现了一个非常少见的现象:虚拟磁盘损坏。经过进一步查找和分析后确认该区域的数据确实已经损坏,只能找到一些数据库碎片,可以通过数据库碎片重组的手段来恢复数据:根据数据库结构,将底层找到的数据库碎片按照本来的顺序拼接重组,然后对数据库进行修复和校检后即可恢复数据库。 4、因为数据库碎片重组的恢复方法相对比较复杂,先尝试通过数据库备份来恢复数据库。因为之前数据库做过一次备份,数据库备份文件和ERP/CRM程序文件保存在RAR压缩包中。正常情况下RAR压缩包的**个扇区记录的是文件名,所以可以根据文件名反向查找压缩包的数据起始位置,把相应的压缩包底层数据提取出来并重命名。但是在实际的恢复过程中提取出来的压缩包解压时报错。 5、尝试使用RAR修复工具(设置为“忽略错误”)继续解压数据,仍然解压失败。这种数据恢复方案行不通,只能通过数据库碎片重组的方案来恢复数据库数据。 6、在数据库层面分析数据库的起始位置,分析出数据库起始位置后根据每个数据库碎片的编号和文件号去底层扫描符合这个数据库碎片的所有数据,最后将所有扫描出来的数据重组为一个MDF文件,通过MDF校验程序检测整个MDF文件的完整性,完成后开始提取数据。 7、将服务器内的数据全部提取出来并通过初步验证,没有问题后搭建新的数据库环境,将恢复出来的数据库表添加上去进行查询,所有数据查询正常,本次数据恢复工作完成。 四:案例总结 在SQL Server数据库管理中,数据库碎片(Database Fragmentation)指的是数据在存储介质上的非连续分布,这通常发生在数据库的索引结构中。索引碎片化会导致查询性能下降,因为数据库系统需要花费更多的时间来查找数据。为了优化性能,需要定期重组(Reorganize)或重建(Rebuild)索引。 1. 理解索引碎片 在SQL Server中,有两种类型的碎片: 页级碎片:这是由于数据页在物理存储中的非连续排列引起的。可以通过重组索引来减少页级碎片。 键值碎片:这是由于索引键值分布不均匀造成的。重建索引可以显著减少键值碎片。 2. 重组索引 重组索引不会改变索引的结构,只是将现有的数据重新组织到索引结构中,以减少页级碎片。重组索引可以使用以下SQL命令:
sql Copy Code ALTER INDEX [IndexName] ON[TableName] REORGANIZE; 3. 重建索引 重建索引会删除现有的索引并重新创建它,这通常用于减少键值碎片并优化索引的物理存储结构。重建索引可以使用以下SQL命令: sql Copy Code ALTER INDEX [IndexName] ON[TableName] REBUILD; 4. 选择何时使用重组与重建 使用重组:如果你的索引已经很大,且页级碎片较多,但不希望重建索引带来的性能开销(因为重建索引需要额外的磁盘空间和时间),你可以选择重组索引。 使用重建:如果你注意到查询性能明显下降,且键值分布不均匀,或者你希望彻底优化索引的结构,那么应该选择重建索引。重建索引通常伴随着更好的性能提升,但代价是重建过程中的性能下降和额外的磁盘空间使用。 当数据发生丢失时,金海境科技研发团队深入研究各种服务器和系统设计思路,认真对比故障类别,攻克疑难恢复案例,总结成功恢复经验,拥有成功修复服务器数据库,虚拟化平台,分布式存储等数据中心相关的上万个疑难案例。 声明:此篇为金海境科技原创文章,转载请标明出处链接:https://www.jhjdata.com/blog/erpcrmsqlservershujvhuifu.html
|