分享

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

 goodwangLib 2018-12-18

本来想记录一下利用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)再去查询数据,已经还原回来了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多