SQL Server Recovery Kit
SQL Server Recovery Kit 可幫助修復 MS SQL Server 所有版本的損毀 MDF 檔案
如何恢复损坏的 Microsoft SQL Server 存储。
如何修复借助 SQL Server Recovery Kit 修复损坏的/挂起的 Microsoft SQL Server 数据库。如何从损坏的 *.mdf 文件恢复数据逐步详细说明如下:
- 在这里下载 SQL Server Recovery Kit:https://all-recovery-inc.com/download/SQLServerRecoveryKitInstall.exe
- 安装 SQL Server Recovery Kit
- 启动 SQL Server Recovery Kit
- 选择损坏的 *.mdf 文件
- 预览数据,可以从损坏的 Microsoft SQL Server 数据库提取
- 选择数据导出方法
- 作为 SQL 脚本保存到磁盘
- 直接在数据库上执行 SQL 脚本
- 选择应该修复和保存的信息
- 按 Start Recovery (开始恢复)
如何還原損毀的 Microsoft SQL Server 資料庫?
SQL Server Recovery Kit 可以修复受损的Microsoft SQL Server 数据库文件。
MDF 恢复软件的功能:
- 恢复处于 挂起状态的不可读取的数据库
- 修复各个版本 Microsoft SQL Server 中的受损SQL Server数据库:SQL Server 7/2000/2005/2008/2008 R2/2012/2014/2016/2019
- 恢复 MS SQL 数据库中最重要的内容:数据类型、表数据、视图、存储步骤、自定义函数、触发器、索引、主键与外键和限制等等
- 将恢复的数据库保存到多个文件中 (*.mdf + *.ndf)
- 在恢复mdf文件时可以修复受损的分区表
- SQL MDF 恢复软件可以直接将恢复的数据导出至 Microsoft SQL Server
- 将恢复的数据另存为SQL脚本保存到硬盘中
- 将数据直接导出为新的数据库
- 可以选择特定的数据进行保存
- 支持下列系统中的 SQL Server 软件:Windows 98/Me/2000/XP/Vista/7/8/10/11 或 Windows Server 2003/2008/2012/2016 以及更高版本
- 用户界面支持14种语言
- 可以预览损坏MDF文件中的可恢复对象和数据
- 在勒索软件加密攻击后恢复数据
- MDF Viewer Tool
这款高性能的 SQL Server 恢复工具可以修复各种类型的数据库损坏和 MDF 文件受损情况。
如何在损坏后恢复SQL Server数据库
若要从损坏的SQL Server数据库还原数据,可以使用最新的备份或尝试使用SQL Server Recovery Kit。SQL Server Recovery Kit极有可能将SQL Server数据库还原到损坏前的原始状态。要验证此陈述,需要执行以下操作:
- 下载、安装并运行SQL Server Recovery Kit演示版。
- 选择损坏的MDF文件进行分析
- 分析损坏的SQL Server数据库。
- 查看恢复的表格列表。
- 查看已還原表中的數據。
- 查看恢復的用戶對象列表。
- 配置數據存儲選項。
- 選擇要保存的數據和對象。
- 保存数据 - 在完整版本中提供。

如何修复SQL Server数据库

如果您需要快速修复损坏的SQL Server数据库的MDF文件,使用SQL Server Recovery Kit,只需单击几下即可完成。通过将损坏的SQL Server MDF文件中的数据复制并修复到新数据库或分隔磁盘上的SQL脚本文件的方式,可以对损坏的SQL Server数据库的MDF文件进行修订。该工具不修复或修改现有SQL Server的MDF文件。从*.mdf文件恢复的所有数据都将会传输到新数据库或SQL脚本文件。
系统要求:
- Windows 98/Me/2000/XP/Vista/7/8/10/11 或 Windows Server 2003/2008/2012/2016 以及更高版本
- Microsoft SQL Server: 7/2000/2005/2008/2008 R2/2012/2014/2016/2019
解答:
SQL Server Recovery Kit 支持的数据保存方式有两种:
- 您可以将 SQL 脚本保存到硬盘上,这些脚本会创建表格等数据库对象,并将数据插入到表格中。
- 您也可以在数据库中运行脚本,这些脚本会根据用户定义以 SQL 语言写入。
请注意,尽管 SQL 脚本基于数据库中的相同文件创建,但脚本本身可以不同。这是因为存在两种具有不同语法特性的询问,一种通过 ADO 直接执行服务器连接,另一种在 MS SQL Server 提供的问题分析器环境下执行 SQL(: 的用法和转到命令等)。第一种方法更可靠,第二种方法更方便。
将数据转换为脚本并保存到磁盘
1. 保存的数据映射
如果您选择将数据保存到磁盘,SQL Server Recovery Kit 会创建一个包括原始 MDF 文件名称的子目录,这个子目录在用户定义的路径中创建,所有脚本都将保存在这里。所有脚本的命名都是有规则的,其名称包含一个单词和一个数字。单词表示脚本的作用,数字表述脚本的顺序。脚本有许多类型,例如:
- Types*.sql - 该脚本会根据用户定义创建数据类型。
- Tables*.sql - 该脚本会创建表格。
- Indexes*.sql - 该脚本会创建主关键字和索引。
- ForeignKeys*.sql - 该脚本会创建外来键。
- Procedure*.sql - 该脚本会创建存储程序。
- Function*.sql - 该脚本会根据用户定义创建函数。
- View*.sql - 该脚本会创建视图。
- Triggers*.sql - 该脚本会创建事件触发器。
- Data*.sql - 该脚本会将数据插入表格。
脚本序列号不包含任何有用的数据,也不显示脚本执行顺序或其它任何信息。它只是用来分隔数据,并将其保存到一些小文件,而不是一个大文件中。用户可以用 SQL 脚本定义文件的最大容量。此外,用户需要注意数据文件的编号。同时应该注意,每个数据类型文件只能包含一个表格数据。带序列号的文件包含每个表格的所有数据。
注意: 如果某些文件的编号丢失,意味着有些表格不包含任何数据。
2. 脚本执行顺序
在这一节中您可以看到建议的脚本执行顺序:

脚本执行顺序取决于现有数据和表格结构限制。请特别注意以下因素:
- 如果要创建一个次级关键字,请指定相应的主关键字。基于这一状况,这些操作会保存到不同文件中,以该顺序执行。
- 在生成索引和二级关键词前,程序会填写表格。该操作具有强制性,因为填写完定义二级关键词表格后会进行参照完整性检查。如果在填写主关键字表格前即填写了次级关键字表格,会发生错误。此外,该方法具有另一个特性。如果恢复的术语与主关键字、唯一索引等发生冲突,表格仍然会被填写,但不会创建限制(索引、主关键字等)。如果用户需要实现其它性能,可以自行选择脚本执行顺序。
- 程序、函数、视图和事件触发器对象之间有着复杂和微妙的依存关系,将其创建在同一数据库中会有一定困难。程序可能涉及其它程序,视图可能调用函数,事件触发器可能适用于所有对象。这就是为什么程序并不能帮助解决混乱的局面。因此用户应该手动地找出所有依存关系,以需要的顺序启动 SQL 脚本。另一种可能是多次执行包括在该组中的所有脚本,直至所有错误提示都消失。
3. Install.bat 文件
Install.bat 文件用于确保所有脚本都能够自动运行。该文件会执行以前由工具保存的所有脚本。在应用到数据库时,脚本执行顺序是相同的。这个批处理文件需要安装 isqlw 实用程序,是 MS SQL Server 客户端的组成部分。请在命令行中为 install.bat 文件指定服务器名称、数据库名称、用户名和密码等参数。例如:install.bat SQLServer SQLDatabase SQLUser SQLUserPassword
注意:
- 参数应用空格隔开。如果参数本身包含空格,应该加上双引号。
- 参数顺序不能修改。
- 如果 install.bat 不带参数执行,您将看到一个怎样启动文件的简短指南。
4. InstallTrusted.bat
如果您借助于Windows用户账户使用Microsoft SQL Server 授权,可以用 InstallTrusted.bat文件。
InstallTrusted.bat文件有两个参数: Server name, Database name。使用例子:installtrusted.bat SQLServer SQLDatabase。 关于授权通过Windows用户账户的详细信息就在这儿:https://docs.microsoft.com/zh-cn/sql/relational-databases/security/authentication-access/principals-database-engine?view=sql-server-2017
解答:
从多个源文件中恢复 MS SQL Server 格式的数据库
MS SQL Server 格式的数据库包含一个或几个文件。具有多个文件类型:主数据文件(带 *.mdf 默认扩展名)、次要数据文件(带 *.ndf 默认扩展名)和事务日志文件(带 *.ldf 默认扩展名)。如果要使用 SQL Server Recovery Kit 修复数据,您应该为所有次要数据文件和主数据文件指定路径。该操作可以通过 Open File(打开文件)对话框进行。

如果损坏的数据库包含主数据文件、次要数据文件和事务日志文件,您应该选择 *.mdf 格式的主数据文件和所有 *.ndf 格式的次要数据文件(参见图 2)。

解答:
恢复大的 MS SQL Server 数据库会占用大量内存。程序开发人员建议您的电脑要有足够的物理内存,用于恢复大的数据库。程序占用的物理内存必须不少于您恢复文件的大小除以 500 再加上 20-100 MB,以确保程序运行。就是说,如果要恢复一个 100 GB大小的 .mdf 文件,电脑必须有至少 (100 GB / 500) + 120 MB = 320 MB 的可用物理内存。
解答:
为解决该问题,您应该:
- 以脚本方式保存数据
- 从命令行中运行带所有必要参数的 install.bat 文件
- 查看响应文件 (*????.sql.txt),找出哪些脚本没有成功执行
- 将执行出错的脚本加载到 Microsoft SQL Server 的问题分析器,尝试在此处进行执行。如果获得了错误信息,应该查明是哪个命令导致了发生该错误。如果该命令写入的数据没有用处,可以直接将其删除。此外,您可以将脚本执行错误信息和问题分析器的截图发送给开发人员。另外,可能有必要将 *.mdf 源文件发送给开发人员,帮助他们找出问题原因。
解答:
- 如果主键字段中的数值不正确(例如是负数或比其他所有数值大几十倍),说明源数据严重损坏且完全不能恢复。
- 如果主键字段中出现了重复的数值,说明程序恢复了带数据库中标记删除数据的电子表格(mdf、ndf 文件)。但实际上却没有应被删除的带数据电子表格标记。因此程序将从所有电子表格中恢复数据。这导致了已恢复数据过多,且 SQL Server Recovery Kit 的开发人员无法找到过滤过多条目的标准。在这种情况下,数据库管理员和/或软件开发人员要最终决定已恢复数据库中应该删除的过多条目。
解答:
isqlw.exe 工具是 MS SQL Server 包组件。您总是可以从 Microsoft 网站上下载最新版 MS SQL Server 并在电脑上安装所需组件。从 Microsoft 网站上下载的 MS SQL Server 试用版允许您在 EULA 中指定的时期内使用组件。
如果您能在 Microsoft.com 上找到合适的工具,那么您就可以从我们的网站上下载并安装 Query Analyzer。下载链接为:https://all-recovery-inc.com/download/isqlwInstall.exe
解答:
可能是在测试和注册期间您的 MDF 发生了某些改变(用其他软件进行了恢复等)。您可以再次使用试用版在另一台电脑上检查该文件。
如果您在运行脚本后看到以下错误:
Server: Msg 242, Level 16, State 3, Line 1
[Microsoft][ODBC SQL Server Driver][SQL Server] 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值溢出。
解答:
这意味着您应该进行以下操作,以更改服务器语言设置:
- 启动 Enterprise Manager(企业管理器)。
- 选择所需的服务器并进行连接。
- 通过在上面单击鼠标右键并选择 Properties(属性)打开属性窗口。
- 打开 Server Settings(服务器设置)选项卡。
- 在用户下拉列表默认语言中选择 English(英语)并按下 OK(确定)。
- 停止 SQL 服务器。为此要在快捷菜单中选择 Stop(停止)并在配置窗口中出现 Are you sure you wish to stop SQL Server service(确实要停止 SQL Server 服务吗)问题时回答 Yes(是)。
- 启动 SQL Server。为此请在快捷菜单中选择 Start(启动)。
- 现在您可以运行由 SQL Server Recovery Kit 保存在您硬盘上的脚本。您也可以采用数据库脚本运行模式运行程序。
- 现在您需要还原设置。为此请打开 Enterprise Manager 中所需服务器的属性窗口。
- 在用户列表默认语言中选择默认语言并按下 OK(确定)。
- 停止 SQL server。为此要在快捷菜单中选择 Stop(停止)并在配置窗口中出现 Are you sure you wish to stop SQL Server service(确实要停止 SQL Server 服务吗)问题时回答 Yes(是)。
- 启动 SQL Server。为此请在快捷菜单中选择 Start(启动)。
如果您在运行脚本后看到以下错误:
Server: Msg 242, Level 16, State 3, Line 1
[Microsoft][ODBC SQL Server Driver][SQL Server] 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值溢出。
解答:
这意味着您应该进行以下操作,以更改服务器语言设置:
- 启动 Management Studio(管理工作室)。
- 选择所需服务器。
- 转到 Security\Logins(安全\登录)。
- 选择正在使用数据库的用户并打开用户属性窗口。
- 在用户下拉列表默认语言中选择 English(英语)并按下 OK(确定)。
- 现在您可以运行由 SQL Server Recovery Kit 保存在您硬盘上的脚本。您也可以采用数据库脚本运行模式启动程序。
- 现在您需要恢复设置。为此请打开 Management Studio 中所需用户的属性窗口。
- 在用户列表默认语言中选择默认语言并按下 OK(确定)。
解答:
从新服务器上的 MSDB 数据库简单复制或还原数据表不允许还原 DTS 包,因为它们拥有内部连接,可连接至在上面创建或先于迁移使用的服务器的执行环境。为在服务器之间复制 DTS 包,VB 脚本必须被使用。因此 SQL Server Recovery Kit 程序不适用于还原 DTS 包。
解答:
SQL Server Recovery Kit 会自动检查使用数据库的服务器版本。因此,如果数据库用于 MS SQL Server 2000,程序会写入 isqlw 工具至保存的脚本,用于导入至新数据库。如果数据库用于 MS SQL Server 2005 或更高版本,则脚本中使用的是 sqlcmd 工具。如果想将数据导入至服务器上与原来版本不同的数据库,应使用用于相应服务器的工具。
- Isqlw – 用于 MS SQL Server 2000
- Sqlcmd – 用于 MS SQL Server 2005 及更高版本
解答:
- 启动 SQL Server Management Studio(SQL Server 管理工作室)
- 在 Object Explorer(对象浏览器)中右击 Databases(数据库)
- 单击 Attach(连接)
- 单击 Add(添加)按钮
- 选择 mdf 文件并单击 Ok(确定)按钮
- 单击 Ok(确定)按钮
- 等待操作结束。
解答:
SQL Server Recovery Kit可以从由勒索软件病毒加密的 Microsoft SQL Server 数据库文件的MDF /NDF文件中部分或完全恢复信息。SQL Server Recovery Kit不会解密数据。
通常,数据解密不适用于这些情况。
但是,在MDF文件部分加密的情况下,SQL Server Recovery Kit 可能很有用。通常,病毒由于其大小的缘故而仅加密文件的头部和/或开头。在这些情况下,如果仅加密MDF文件的标题或部分,则 SQL Server Recovery Kit可能会有所帮助。该程序分析文件中的所有数据块和收集的数据结构。然后,如果可能,它会重新创建原始数据结构和数据本身。
Microsoft SQL Server MDF文件结构
是否可以在勒索软件病毒攻击后从 MDF 文件中恢复数据?
不能保证您可以使用该程序恢复100%的数据或部分数据。
要获得该问题的明确答案,您需要下载 DEMO 版本的 SQL Server Recovery Kit,指定加密的MDF文件,并等待文件分析完成。
在完成对程序的 DEMO 版本中的MDF文件的分析后,即可获得可从文件中提取的数据的完整预览。
注意:Recovery Toolbox 的客户支持部门通知,通常勒索软件程序只会加密数据库文件的标头,因为它的大小很大。 因此,通常可以从源文件中恢复几乎整个数据结构和几乎所有信息。