专栏首页北亚数据恢复中心SQL Server数据库恢复教程
原创

SQL Server数据库恢复教程

SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。本次需要进行数据恢复的服务器是一台r520型号存储,共有7块SAS硬盘分别组成RAID1和RAID5两组磁盘阵列。

主要SQL Server数据库存放在C盘中,在使用过程中,客户发现C盘容量即将占满,于是将数据库路径指向了D盘,在D盘生成了一个.ndf文件。

客户在继续使用了大约10天之后,数据库出现故障,连接失效,无法正常附加查询。在遇到这种情况是应该如何进行正确操作呢?

【备份数据】

考虑到数据的安全性以及可还原性,在做数据恢复之前需要对所有源数据做备份,以防万一其他原因导致数据无法再次恢复。使用dd命令或winhex工具将所有磁盘都镜像成文件。

【故障分析】

首先分析故障原因:由于数据库文件所在磁盘容量不足,导致数据库无法继续正常运行,出现逻辑错误;

再分析RAID组结构:客户服务器上共7块300G硬盘,其中2块硬盘做RAID 1,用于安装操作系统,其余5块硬盘做RAID 5存放数据。分析RAID 1和RAID 5的相关结构,重组虚拟出RAID 1和RAID 5,查看其中数据。

再分析原始数据库文件:由于客户在数据库发生故障之后,进行过多次数据库恢复尝试,并且每一次尝试都是在源环境下进行的,导致原始数据库文件被更改覆盖,并且磁盘空间被多次复写,无法使用尝试恢复之后的数据库文件进行修复。询问客户得知,客户在数据库发生故障的时候,备份过一分原始的故障数据库文件。

【数据库修复】

从虚拟出的RAID 5空间中将客户之前备份的数据库文件拷贝出来,尝试在数据库中附加,附加失败。错误提示主数据库文件和次级数据库文件不匹配,查看.ndf文件底层,发现.ndf文件中几乎没有数据,尝试取消.mdf文件和.ndf文件之间关联,只用.mdf文件进行附加。

尝试后发现,只用.mdf文件附加时也发生错误,但是错误提示改变。

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

【数据库记录提取】

解析数据库文件中的数据库记录,编写相应的程序提取数据库文件中的数据库记录。根据客户以前的数据库备份获取数据库中的表结构,重构表结构并肩提取出的数据库记录导入到新的表中,进行数据验证,如数据没有问题,即本次数据恢复成功。

【北亚数据恢复小贴士】

在数据库使用过程中,要合理分配数据库文件所在的磁盘空间,及时清理垃圾数据,保证数据库的正常及安全运行,如遇到故障情况时,当不知道如何正确操作时,请及时联系相关专业数据恢复工程师进行数据恢复操作。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SQL Server 数据恢复

    --创建测试数据库 CREATE DATABASE Db GO --对数据库进行备份 BACKUP D...

    _一级菜鸟
  • SQL server 权限管理与数据恢复

    L宝宝聊IT
  • Oracle数据恢复、数据库恢复、灾难恢复专题

    原文链接:http://www.eygle.com/blog/special/oracle_recovery.html

    数据和云01
  • PageAdmin Cms安装教程:Sql Server R2数据库安装

    如果使用pageadmin cms建站系统建网站,不仅仅需要安装.net framework环境,还需要安装数据库,pageadmin网站管理系统采用的数据库采...

    用户4831957
  • 3-1 SQL Server 2005的

    所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。SQL Server 2005 提供了几种自动的可以通过编程来完成...

    py3study
  • SQL Server 数据表复制

    有数据表 A, 希望将他的内容导出到另一张表 B,此时 B 并未创建,希望在导出的同时创建表 B。

    tonglei0429
  • 恢复mysql数据库

    show binlog events in 'mysql-bin.000002' 查看指定文件

    用户1437675
  • 恢复没有日志文件的SQL数据库

    由于种种原因,我们如果当时仅仅备份了mdf文件,那么恢复起来就是一件很麻烦的事情了。 如果您的mdf文件是当前数据库产生的,那么很侥幸,也许你使用sp_atta...

    徐大嘴
  • SQL server 2008 数据库企业版安装教程图解

    SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。    在...

    shirayner

扫码关注云+社区

领取腾讯云代金券