SQL 2008R2 误删除数据恢复方法(一)

原文出处:http://blog.csdn.net/dba_huangzj/article/details/8491327

本来想记录一下利用recovery for sql  server 这个软件恢复误删除的数据,但测试了几次不成功抓狂,就先转载这位大神的方法,太崇拜他偷笑,拿自己的测试库按照他的方法走了一遍。

1)查看数据当前的还原模式是否为FULL,查看方法,也可以图形的方式看

SELECT recovery_model,recovery_model_desc  
FROM sys.databases  
WHERE name ='Zy_createdb_test'

2)有最近的一个完整备份,一般数据库都会每天制定一个维护计划,如果没有,赶紧制定,等出问题的时候别怪老板开除你偷笑,根据黄大神的步骤操作如下


delete table 后再查询数据是没有的,5000多行数据已经被删除


3)查询当前连接数据的spid都有哪些,如果有把他们kill 掉,如果只发现一个spid,那可能是自己连接查询的spid,这个你kill 不掉,关闭当前连接查询窗口就可以了,

select * from sys.sysprocesses where dbid=DB_ID('Zy_createdb_test')


4)对数据库进行事务日志备份



这时数据库属于还原模式,任何人是无法连接的



也可以利用脚本:(我没有试)

USE Master  
GO  
BACKUP LOG Zy_createdb_test TO  DISK = N'E:\Zy_createdb_test.bak' WITH  NO_TRUNCATE , NOFORMAT, NOINIT, 
NAME = N'20170614', SKIP, NOREWIND, NOUNLOAD,  NORECOVERY , COMPRESSION,  STATS = 10, CHECKSUM  
GO  
declare @backupSetId as int  
select @backupSetId = position from msdb..backupset 
 where database_name=N'Zy_createdb_test'  
 and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'Zy_createdb_test' )  
if @backupSetId is null begin raiserror(N'验证失败。找不到数据库“AdventureWorks”的备份信息。', 16, 1) end  
RESTORE VERIFYONLY FROM  DISK = N'E:\Zy_createdb_test.bak' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND  
GO 

5)右键数据库,选择还原“文件及文件组“,选择最近的完整备份文件,第二次还原再选日志备份文件。



6)再还原日志文件




7)还原成功


8)再去查询数据,已经还原回来了。



总结:

1)还原模式为FULL 时有个缺点,日志文件会不断增大,最终撑满硬盘,如果不维护好,会导致系统不工作,因为磁盘空间不足。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值