1.服务器硬件设备清单

2.故障描述

需要进行数据恢复的服务器是一台r520型号存储,共有7块SAS硬盘分别组成raid1和raid5两组磁盘阵列。主要sql server数据库存放在C盘中,在使用过程中,客户发现C盘容量即将占满,于是将数据库路径指向了D盘,在D盘生成了一个.ndf文件。
客户在继续使用了大约10天之后,数据库出现故障,连接失效,无法正常附加查询。

3.备份数据

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

4.故障分析

(a)分析故障原因

由于数据库文件所在磁盘容量不足,导致数据库无法继续正常运行,出现逻辑错误

(b)分析RAID组结构

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

(c)分析原始数据库文件

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

5.数据库修复

从虚拟出的RAID 5空间中将客户之前备份的数据库文件拷贝出来,尝试在数据库中附加,附加失败,错误提示如下:
图一:

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

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

对数据库的系统表尝试修复,但由于系统表损坏过于严重,无法修复。
数据库记录提取
解析数据库文件中的数据库记录
编写相应的程序提取数据库文件中的数据库记录
根据客户以前的数据库备份获取数据库中的表结构
重构表结构并肩提取出的数据库记录导入到新的表中

6.数据验证

由客户对提取出的数据库记录进行验证,所有数据完全恢复,本次数据恢复成功。

7.数据恢复结论

在数据库使用过程中,要合理分配数据库文件所在磁盘空间,及时清理垃圾数据,保证数据库的正常、安全运行。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31380569/viewspace-2152267/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31380569/viewspace-2152267/

sql server数据库错误数据恢复(数据库连接失效,无法附加查询)相关推荐

  1. Microsoft SQL Server 数据库 错误号大全

    panchzh :Microsoft SQL Server 数据库 错误号大全 0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 ...

  2. 【服务器数据恢复】使用碎片拼接方法恢复SQL Server数据库的数据恢复案例

    服务器数据恢复环境: 某公司一台DELL服务器,作为WEB服务器使用,安装的Windows Server操作系统,配置了SQL Server数据库: 采用了Xen Server虚拟化系统: 底层是通过 ...

  3. SQL Server数据库错误9003(LSN无效)的处理方法

    国内一些ERP.财务软件一般后台都使用SQL Server的数据库,SQL Server作为一个中大型数据库是不应该在桌面系统上运行的,小规模企业一般不使用专用服务器,大部分直接使用XP系统+桌面引擎 ...

  4. 获取SQL Server数据库增长和收缩事件的详细信息

    It is essential for the DBA to need to ensure the SQL Server database performance. Performance tunin ...

  5. MS SQL Server数据库修复利器—D-Recovery For MS SQL Server数据恢复软件

    微软的SQL Server 数据库最常用的有两种类型的文件: 1.主要数据文件,文件后缀一般是.MDF: 2.事务日志文件,文件后缀一般是.LDF. 用户数据表.视图.存储过程等等数据,都是存放在MD ...

  6. 【北亚数据恢复】通过碎片拼接技术恢复XenServer服务器磁盘中SQL Server数据库数据

    环境: Dell PowerEdge服务器: XenServer虚拟化平台: 4块希捷2T STAT硬盘用RAID卡组成的RAID10: XenServer虚拟机操作系统:Windows Server ...

  7. 【数据库数据恢复】SQL SERVER数据库MDF (NDF)或LDF损坏怎么恢复数据?

    SQL SERVER数据库故障类型: MDF(NDF)或LDF损坏. SQL SERVER故障原因: 1.数据库正在操作过程中,机器突然断电: 2.人为误操作. SQL SERVER故障表现: 1.数 ...

  8. SQL Server数据库镜像部署 错误1418’处理及证书验证

    SQL Server数据库镜像部署 '数据库镜像'是SQLServer数据库功能最强的一种热备份方法,也是环境要求最高的一种.其配置环节比较麻烦,本人新手研究了三天,中途遇到了许多问题,希望其他第一次 ...

  9. C#-修改图书借阅管理系统-错误与SQL server 2008错误、复制数据库

    VS2012错误: *)不存在从对象类型 System.Object[] 到已知的托管提供程序本机类型的映射 public DataTable loadData2UserSearch(params o ...

最新文章

  1. 问题 | CSDN编辑图像怎么使图像居中、偏左、偏右
  2. Python 网络爬虫笔记10 -- Scrapy 使用入门
  3. POJ 3254 状态压缩DP
  4. linux安装Git依赖的包出错,技术|Linux有问必答:如何在Linux上安装Git
  5. final的8个小细节,听说只有高手才知道!你知道几个?
  6. 程序员应该学的追女孩方法
  7. CDI services--Decorators(装饰器)
  8. 一起来玩树莓派--在docker内安装conda(python3.6)
  9. python能做什么程序-python能做哪些生活有趣的事情
  10. nacos默认用户名密码_Docker下,两分钟极速体验Nacos配置中心
  11. visual studio code写c语言是在include下有绿色的下划线提示not found
  12. Gephi教程———数据输入
  13. mysql root拿站_[转载]拿站,专业拿站,拿站工具,手工注入,手工入侵,拿站教程,拿站知识,拿站原理...
  14. “远见者”特斯拉AI主管Karpathy|深度学习崛起十年
  15. 考拉nbsp;PASCALnbsp;解题报告
  16. vscode 下载地址
  17. python中 glob.glob
  18. Sql链接数据库基本语法
  19. Java8 ConcurrentLinkedQueue和LinkedTransferQueue 源码解析
  20. 用java打印折纸折成珠穆朗玛峰的高度

热门文章

  1. 程序员必知的 4 种命名方式
  2. 2-(4-噻吩)[4,5f][1,10]邻菲啰啉|cas1070190-29-2-齐岳
  3. 如何玩转物联网开发板
  4. Uboot SPL的Boot模式选择(从MMC切换到SPI启动)
  5. PowerQuery
  6. Git 版本控制的基本使用教程
  7. 高速电路中电容的选型和应用——详解
  8. 苏宁小BIU诞生日 机器人员工正式“入职”
  9. V---双相机定位贴合的原理和实现过程
  10. ROS通信机制进阶学习