微软的SQL Server 数据库最常用的有两种类型的文件:

1、主要数据文件,文件后缀一般是.MDF;

2、事务日志文件,文件后缀一般是.LDF。

用户数据表、视图、存储过程等等数据,都是存放在MDF文件里,LDF文件是存放MS SQL Server操作过程中的日志记录。

MDF文件必读附加到MS SQL Server数据库环境后,才能正常读取其中的数据。当由于某种原因数据库附加不上,MDF数据库文件的内容就没办法读取,修复的方法有两种:

1、 使用MS SQL Server环境进行修复,先以修复模式挂载数据库,然后以单用户模式对数据库进行修复,运气好的话,数据库就能修复成功。

2、 用第三方工具直接读取MDF数据文件,把数据表、视图、存储过程等提取出来,然后还原到新建的数据库中。
D-Recovey For MS SQL Server就是能直接读取MDF数据文件的工具,即便用上述第一种方法没有恢复成功的情况下,D-Recovey For MS SQL Server有时候也能读取出MDF数据文件中的数据。下面我们来介绍D-Recovey For MS SQL Server的一些数据恢复功能。

我们先来看一下数据库损坏的几种情况:

1、 由于断电等原因导致数据库质疑,这是一种较为常见的MS SQL Server数据库损坏的情况,这种情况在上述第一种修复方法往往能修复好,但也有修不好的可能。

2、 数据库附加错误,最常见的如下图:

3、 数据表查询错误,如下图:

数据库报823错误通常是数据页面校验没有通过,一般是由于坏道、突然断电、数据覆盖等原因引起的,有些情况下数据库能附加,但是查询某个表的时候报823错误,用MS SQL Server数据库环境也修复不好。D-Recovey For MS SQL Server对于823错误处理效果不错。

D-Recovey For MS SQL Server具备如下恢复功能:

1、能恢复由于断电及别的原因引起的数据库状态变成质疑而损坏的MDF文件

2、能恢复磁盘坏道及别的原因引起的数据库无法正常附加而损坏的MDF文件

3、能恢复数据库状态正常而某些数据表查询出错造成的数据丢失情况的数据

4、能恢复通过MDF文件碎片组合(手工提取)而成的MDF文件中的数据

D-Recovey For MS SQL Server软件界面如下

D-Recovey For MS SQL Server的界面设计按照MS SQL Server企业管理器使用习惯来进行,左边窗口显示的是数数据表、视图、存储过程、用户自定义函数、用户自定义数据类型,点击数据表,就能看到所有数据表名称,数据表“+”号展开后,可以看到数据表字段信息等,点击某个表,右边窗口就显示该数据表的数据记录信息,如果某个数据表记录比较多,可以通过下一页、上一页进行翻页显示。

细心观察的朋友会发现,每一页显示的记录条数可能不一样,这是程序设计的时候,按照一定的数据页面来显示的,比如没个显示页读取64个数据页面(data page),在MDF文件中,每个data page的数据记录数量不一定相等,所以显示出来的记录数量就会有差异。

D-Recovey For MS SQL Server数据库恢复步骤:

1、打开MDF文件,选择数据库版本

2、打开完以后,左边显示数据表、视图、存储过程、用户自定义函数、用户自定义数据类型,点击“+”可展开,点击左边某个表,右边列出表记录。

把数据恢复成脚本文件

数据恢复功能中的导出所有表结构、导出选中表结构是把数据库的表结构导出来,保存成.sql文件,这是一个包含sql语句格式的文本文件,用户可以在MS SQL Server中运行这些sql语句文件,就能创建出数据表。

导出所有表数据和导出选中表数据是把表数据导出来,保存成sql语句文件,用户可以把这些sql语句文件在MS SQL Server查询分析器中运行,把相应表中的数据恢复到MS SQL Server中。值得注意的是,数据库全部保存成sql文件以后,程序生成一个commit.bat批处理文件,运行这个commit.bat批处理文件,填写数据要导入的目标数据库用户名和密码以及数据库服务器IP地址和目标数据库名称,然后批处理文件会自动把所有sql语句文件导入到目标数据库中。

把数据恢复到新的数据库中

数据库恢复中最实用的功能就是把看到的数据表中的数据直接导入MS SQL Server新建的数据库中。加入我们要恢复一个a.mdf文件,我们要把a.mdf文件中的所有数据恢复到数据库服务器127.0.0.1上的DSTtest数据库中,就要点击D-Recovey For MS SQL Server的“把所有表导入数据库”这个按钮,就弹出如下对话框,我们把数据库服务器IP地址、数据库名称、连接数据库的用户名和密码,然后点击确定,a.mdf文件中的数据就自动导入到DSTtest中。

D-Recovey For MS SQL Server还具备检测MDF数据文件数据页面是否正确的功能。

点击“检查数据库文件”按钮,出来如下对话框,我们先择一个mdf文件,开始检测,在检测过程中,我们注意“null page”(即空数据页)和“err page”(即错误数据页)数量的变化,如果错误数据页特别多,那这个mdf文件损坏就比较严重。

MS SQL Server数据库另外一种常见的恢复方法是通过提取MDF数据页面,然后整合拼接成一个MDF数据文件,通过这种方式恢复一般很少能附加到数据库中,可以通过D-Recovey For MS SQL Server把正常的数据记录提取出来。

1、D-Recovey For MS SQL Server总体设计思想是直接读取MDF文件中正常的数据记录,并把这些数据保存成sql语句或者直接导入一个新的数据库中,它不是设计成直接修复原始MDF文件使MDF文件能正常附加到数据库中。当数据库管理员使用任何方法都不能把数据库修复使它正常附加的情况下,D-Recovey For MS SQL Server就显得格外有用。

2、数据能够成功恢复的基础是MDF文件关键系统表没有被破坏,数据记录内容确实存在于MDF文件之中,如果数据记录内容被破坏被覆盖,数据恢复将不能正确恢复原来的信息。

如果有遇到相同数据库问题的朋友可以联系我

QQ:3449645657

MS SQL Server数据库修复/MDF数据文件数据恢复/MDF质疑/mdf无法附加的更多相关文章

  1. (火炬)MS SQL Server数据库案例教程

    (火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...

  2. 在易语言中调用MS SQL SERVER数据库存储过程方法总结

    Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...

  3. MS SQL Server数据库查询优化技巧

    [摘 要]本文主要是对MS SQL Server数据库查询优化技巧进行了说明和分析,对索引使用.查询条件以及数据表的设计等进行了阐述.中国论文网 http://www.xzbu.com/2/view- ...

  4. C#同步SQL Server数据库中的数据--数据库同步工具[同步新数据]

    C#同步SQL Server数据库中的数据 1. 先写个sql处理类: using System; using System.Collections.Generic; using System.Dat ...

  5. MS SQL Server数据库在线管理工具

    MS SQL Server数据库以其优异的性能,被广泛使用,特别是政务,医疗行业.但是远程维护挺不方便的,目前有一款基于WEB的工具TreeSoft数据库管理系统. 免安装,直接解压就可以用了.直接通 ...

  6. MS Sql Server 数据库或表修复(DBCC CHECKDB)

    MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令.  1. DBCC CHECKDB  重启服务器后,在没有进行任何操作的情况下,在SQL ...

  7. MS SQL Server 数据库分离-SQL语句

    前言 今天在在清理数据库,是MS SQL Server,其中用到分离数据库文件.在这过程中,出现了一个小小的问题:误将数据库日志文件删除了,然后数据就打不开了,除了脱机,其他操作都报错. 数据库分离 ...

  8. sql server 数据库复制实现数据同步常见问题(不定期更新)

    sql server2008数据库复制实现数据同步常见问题 在原作者基础上追加 sql server2008数据库复制实现数据同步常见问题 23.发布 'xx' 的并发快照不可用,因为该快照尚未完全生 ...

  9. MS Sql Server 数据库或表修复(Log日志文件损坏的修复方法)

    ----------------- [1] use master go sp_configure reconfigure with override go ----------------- [2] ...

随机推荐

  1. html base2

    <html> <body> <h1>My First Web Page</h1> <p id="demo">A Para ...

  2. 转:loadrunner经典面试题

    在LoadRunner中为什么要设置思考时间和pacing 答: 录制时记录的是客户端和服务端的交互,如果要精确模拟 用户的行为,那么客户操作客户端时花费了很多时间要怎么模拟呢?录入 填写提交的内容, ...

  3. 最短路径算法专题3----Bellman-Ford

    这个算法也是求单源最短路径用的,但是这个算法可以解决Dijkstra不能解决的负权边问题. 算法要点: 1.用dis存放源点到任意一点的距离. 2.用三个数组存放输入的点到点以及点到点的距离,x[i] ...

  4. 迄今最安全的MySQL?细数5.7那些惊艳与鸡肋的新特性(上)【转载】

    转自: DBAplus社群 http://www.toutiao.com/m5762164771/ 迄今最安全的MySQL?细数5.7那些惊艳与鸡肋的新特性(上) - 今日头条(TouTiao.com ...

  5. jquery页面滑到底部加载更多

    $(window).scroll(function(){ var _scrolltop = $('body').scrollTop();if(_scrolltop+_winHeight>_doc ...

  6. css叠加原则,就近原则

    <html><head lang="en"> <meta charset="UTF-8"> <title>< ...

  7. CGAffineTransform 放射变换解析 即矩阵变换

    转载自;http://www.cocoachina.com/bbs/3g/read.php?tid=151136 矩阵乘法A B相乘要A的列数等于B的行数才有定义,结果是一个 A行B列的矩阵C,C的每 ...

  8. Divisor Summation_

    Divisor Summation Problem Description Give a natural number n (1 <= n <= 500000), please tell ...

  9. Hadoop集群搭建的密钥配置SSH实现机制

  10. PHP :Call to undefined function mysql_connect()

    今天配置apache ,php,mysql 的时候,一直报(Call to undefined function mysql_connect()),PHP一直连接不上数据库,从网上查,答案也都是千篇一 ...