• 【数据库数据恢复】磁盘空间不足导致sql server错误的数据恢复


    数据库数据恢复环境:
    Dell PowerEdge R系列服务器;
    7块SAS硬盘分别组成raid1(2块硬盘)和raid5(5块硬盘);
    sql server数据库存放在C盘中。

    数据库故障:
    管理员在日常巡检过程中发现服务器C盘空间即将填满,于是将数据库路径指向了D盘,在D盘生成了一个.ndf文件。大约10天后,数据库出现故障,连接失效,无法正常附加查询。管理员联系我们数据恢复中心进行数据恢复。

    数据库恢复过程:
    1、备份数据。数据恢复工程师将所有磁盘都镜像成文件。
    2、数据库故障分析。由于数据库文件所在磁盘容量不足,导致数据库无法继续正常运行,出现逻辑错误。
    3、分析RAID组结构。原服务器上7块硬盘中的2块组建RAID1安装操作系统,其余的5块硬盘做RAID5存放数据。服务器数据恢复工程师分析RAID1和RAID5的相关结构,虚拟重组出RAID1和RAID5并查看分析其中数据。
    4、分析原始数据库文件。在数据库出现问题后,管理员多次尝试恢复数据库,并且恢复操作都是在原环境下进行的,导致原始数据库文件被更改覆盖,磁盘空间被多次复写,无法使用尝试恢复操作之后的数据库文件进行修复。数据恢复工程师和管理员沟通得知:数据库发生故障后,尝试数据恢复之前,管理员对故障数据库文件进行过备份。
    5、服务器数据恢复工程师将之前备份的数据库文件从虚拟出的RAID5空间中拷贝出来,尝试在数据库中附加,附加失败,错误提示如下:


    错误提示主数据库文件和次级数据库文件不匹配,查看.ndf文件底层,发现.ndf文件中几乎没有数据,尝试取消.mdf文件和.ndf文件之间关联,只用.mdf文件进行附加。
    尝试后发现,只用.mdf文件附加时也发生错误,但是错误提示改变

    此时错误提示日志文件(.ldf)和数据库文件(.mdf)不匹配。
    6、对数据库尝试进行无数据库附加,附加成功。但是发现数据库系统表损坏,无法正常使用。

    7、对数据库的系统表尝试修复,但由于系统表损坏过于严重,无法修复。

    8、数据库记录提取,解析数据库文件中的数据库记录。北亚数据恢复工程师编写相应的程序提取数据库文件中的数据库记录。

    9、根据以前的数据库备份获取数据库中的表结构,重构表结构并将提取出的数据库记录导入到新的表中。

    10、数据验证。由管理员亲自对提取出的数据库记录进行验证,没有发现问题,确认数据完全恢复。

    数据库数据安全小贴士:
    要合理分配数据库文件所在磁盘的空间,及时清理垃圾数据,保证数据库的正常、安全运行。

  • 相关阅读:
    xshell5连接虚拟机的小问题处理
    centos下安装python的过程
    windows下安装配置redis
    Mysql 插入修改报Incorrect string value: 'xE7xACxAC' for column 'DetectionResult' at row 1错误
    MD5 以key和iv保存 FormsAuthentication.HashPasswordForStoringInConfigFile过时的问题
    The user specified as a definer ('root'@'%') does not exist的解决方法
    C#判断字符串中包含某个字符的个数
    jquery easyui datagrid 在翻页以后仍能记录被选中的行及刷新设置选中行数据
    bat批处理删除多少天前的文件
    C# 获取系统字体方法
  • 原文地址:https://www.cnblogs.com/frombyte/p/16377839.html
Copyright © 2020-2023  润新知