sqlserver 数据删除了怎么恢复

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 数据删除了怎么恢复相关的知识,希望对你有一定的参考价值。

参考技术A SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:

1. 至少有一个误删除之前的数据库完全备份。

2. 数据库的恢复模式(Recovery mode)是“完整(Full)”。

针对这两个前提条件,会有三种情况:

情况一、如果这两个前提条件都存在,通过SQL语句只需三步就能恢复(参考文章),无需借助第三方工具。

  a) 备份当前数据库的事务日志:BACKUP LOG [数据库名] TO disk= N'备份文件名' WITH NORECOVERY

  b) 恢复一个误删除之前的完全备份:RESTORE DATABASE [数据库名] FROM DISK = N'完全备份文件名' WITH NORECOVERY, REPLACE

  c) 将数据库恢复至误删除之前的时间点:RESTORE LOG [数据库] FROM DISK = N'第一步的日志备份文件名' WITH STOPAT = N'误删除之前的时间点' , RECOVERY

情况二、如果第1个前提条件不存在,第2个前提条件存在,需要借助第三方工具。

情况三、如果第2个前提条件不存在,无法恢复。所以,一定要将数据库恢复模式设置为“完整(Full)”。

我现在面临的是第二种情况,需要找第三方工具。

开始找的是Log Explorer for SQL Server,不支持SQL Server 2008。

后来找的是SQL Log Rescue,也不支持SQL Server 2008。

接着找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要购买,Demo版并没有数据恢复功能。

最终在officerecovery.com上找到Recovery for SQL Server,虽然也是商业软件,需要购买,但Demo版可以恢复数据,只要数据库文件不超过24Gb。幸好朋友的数据库文件不大,用它完成了误删除数据的恢复。

下面分享一下用Recovery for SQL Server进行恢复的操作步骤:

1. 运行Recovery for SQL Server

2. 点击菜单中的 File > Recover,选择要恢复的数据库的数据文件(.mdf)

3. Next > Next,进入 Recovery Configuration 界面,选择Custom(选择了Custom才可以选择从日志中恢复误删除的数据)。

4. Next 进入 Recovery options 窗口,选中 Search for deleted records,并选择要恢复的数据库的日志文件路径(log file path)。

5. Next 并选择目标文件夹(Destination folder),用于存放恢复过程中生成的SQL语句与bat文件。

6. 点击Start,开始恢复操作(在上一步选择的目标文件夹中生成相应的SQL文件与Bat文件),然后,出现 SQL Server Database Creation Utility 窗口。

7. Next,选择被恢复数据存放的目标数据库。

8. Next, 选择 Import availiable data from both database and log files

9. Next, Next, 然后就完成数据的恢复!

master库损坏如何恢复

关于master数据库: master 数据库记录 SQL Server 系统的所有系统级别信息.它记录所有的登录帐户和系统配置设置. master 数据库是这样一个数据库.它记录所有其它的数据库.其中包括数据库文件的位置. master 数据库记录 SQL Server 的初始化信息.它始终有一个可用的最新 master 数据库备份. 也就是说这个数据库损失或丢失的话.你的SQLSERVER根本就没法启动了.那么我们看看正常的修复方法. 一:重建master数据库【SQL Server 2005 】 版本中更改了使用 Setup 命令重新生成 master 数据库的用法。 在"浏览文件夹"对话框中.选择 SQL Server 2000 光盘上或用于安装 SQL Server 2000 的共享网络目录中的 \Data 文件夹.然后单击"确定"按钮. 单击"设置"按钮.在"排序规则设置"对话框中.验证或更改用于 Master 数据库或其它数据库的设置. 最初.显示的是默认排序规则设置.但这些设置有可能与安装期间选择的排序规则不匹配.可以选择与安装期间使用的排序规则相同的设置.也可以选择新的排序规则设置.完成后单击"确定"按钮. 在"重建 Master"对话框中单击"重建"按钮以启动进程. 重建 Master 实用工具重新安装 master 数据库. 说明:若要继续.则可能需要终止正在运行的服务器.按照上述方法执行后.SQL服务能正常启动. 重建数据库后.启动SQL Server服务.用系统数据库的备份恢复数据库.通常恢复顺序为master->msdb->model.恢复master的备份时要注意:必须在single user模式下进行.有以下几种方法: 进入单用户模式: 1:可以在命令行模式下输入sqlservr -c -f -m或者输入sqlservr -m 其中:-c 可以缩短启动时间.SQL Server 不作为Windows NT的服务启动 -f 用最小配置启动SQL Server -m 单用户模式启动SQL Server 2:可以在控制面板-服务-MSSQLServer的启动参数中输入-c -f -m或者输入-m.点击开始 3:还有一种更灵活的启动方法:用存在注册表里的启动参数启动 在MSSQLServer项下添加项SingleUser.具体内容如下所示: HKEY_LOCAL_MACHINE \Software \Microsoft \MSSQLServer \SingleUser \Parameters SQLArg0:REG_SZ:-dC:\MSSQL7\DATA\MASTER.DAT SQLArg1:REG_SZ:-eC:\MSSQL7\LOG\ERRORLOG SQLArg2:REG_SZ:-lC:\MSSQL7\DATA\MASTLOG.DAT SQLArg3:REG_SZ:-m 在命令行下输入SQLServr -c -sSingleUser.注意:必须是在命令行下进入单用户模式后启动 Query Analyzer执行语句: RESTORE DATABASE master form disk=''''c:\(具体的备份文件名) 参考技术A 遇到损坏或者错误的master数据库是最难解决情况之一。
Master数据库包含了SQL Server需要的关键信息。如果master数据库出错,那么SQL Server就不能启动。要在这种情况下还原master数据库,可以按照下面这些步骤来从灾难中恢复过来:
1. 使用\PRogram Files\Microsoft SQL Server\80\Tools\Binn目录下的rebuidm.exe文件重建master数据库。重建master数据库可以使数据库文件完整无缺。为以防万一,经常把数据和日志文件备份到一个单独的目录是个不错的主意。
2. 使用-m参数启动SQL Server,这样可以以单用户模式重新启动SQL Server。
3. 从最近一次已知最好的备份来还原master数据库。
4. 核实master数据库是不是已经成功还原:确认所有数据库都已恢复正常运行。从最近一次已知最好的备份来还原msdb数据库。
5. 以普通模式停止和启动SQL Server。
6. 向生产用户开放数据库。
如果这样做没有效,那么重建master数据库然后附加这个数据库。master数据库出现问题,那么服务器上所有的数据库都会出现问题。
总的来说,恢复时要完成的第一个步骤就是安装一个新的master数据库,使服务器至少能够启动。
参考技术B 正常的恢复修复方法:
重建master数据库。

【SQL Server 2005 】 版本中更改了使用 Setup 命令重新生成 master 数据库的用法。运行 Setup.exe 重新生成、验证和修复 SQL Server 实例,并重新生成系统数据库。此过程通常用于为损坏的 SQL Server 安装重新生成 master 数据库。 该程序位于X:\Program Files\Microsoft SQL Server\90\Setup Bootstrap目录中.

【SQL Server 2000】中运行Rebuildm.exe.该程序位于X:\Program Files\Microsoft SQL Server\80\Tools\Binn 目录中.
1.在"重建 Master"对话框中单击"浏览"按钮。
2.在"浏览文件夹"对话框中.选择 SQL Server 2000 光盘上或用于安装 SQL Server 2000 的共享网络目录中的 \Data 文件夹.然后单击"确定"按钮.
3.单击"设置"按钮.在"排序规则设置"对话框中.验证或更改用于 Master 数据库或其它数据库的设置.
4.最初.显示的是默认排序规则设置.但这些设置有可能与安装期间选择的排序规则不匹配.可以选择与安装期间使用的排序规则相同的设置.也可以选择新的排序规则设置.完成后单击"确定"按钮.
5.在"重建 Master"对话框中单击"重建"按钮以启动进程. 重建 Master 实用工具重新安装 master 数据库.
6.说明:若要继续.则可能需要终止正在运行的服务器.按照上述方法执行后.SQL服务能正常启动.
7.重建数据库后.启动SQL Server服务.用系统数据库的备份恢复数据库.通常恢复顺序为master->msdb->model.恢复master的备份时要注意:必须在single user模式下进行.有以下几种方法:
进入单用户模式:
1)可以在命令行模式下输入sqlservr -c -f -m或者输入sqlservr -m 。
其中:-c 可以缩短启动时间.SQL Server 不作为Windows NT的服务启动 。
-f 用最小配置启动SQL Server
-m 单用户模式启动SQL Server

2)可以在控制面板-服务-MSSQLServer的启动参数中输入-c -f -m或者输入-m.点击开始。

3)还有一种更灵活的启动方法:用存在注册表里的启动参数启动 。
在MSSQLServer项下添加项SingleUser.具体内容如下所示:
HKEY_LOCAL_MACHINE
\Software
\Microsoft
\MSSQLServer
\SingleUser
\Parameters
SQLArg0:REG_SZ:-dC:\MSSQL7\DATA\MASTER.DAT
SQLArg1:REG_SZ:-eC:\MSSQL7\LOG\ERRORLOG
SQLArg2:REG_SZ:-lC:\MSSQL7\DATA\MASTLOG.DAT
SQLArg3:REG_SZ:-m

4)在命令行下输入SQLServr -c -sSingleUser.注意:必须是在命令行下进入单用户模式后启动 Query 。

5)Analyzer执行语句:
RESTORE DATABASE master form disk=''''c:\(具体的备份文件名)。

以上是关于sqlserver 数据删除了怎么恢复的主要内容,如果未能解决你的问题,请参考以下文章

SQLSERVER 2008误删除表,几百万行数据没了,怎么恢复

sqlserver数据库表数据误删除了 怎么恢复

如何强制删除或恢复SQLServer正在使用的数据库

sqlserver数据库数据被删除了怎么还原

sqlserver 删除数据库 怎么恢复

sql server 一直显示恢复怎么解决