0

0

SQLSERVER拯救某个时间点被误删除的数据

php中文网

php中文网

发布时间:2016-06-07 15:34:29

|

1170人浏览过

|

来源于php中文网

原创

SQLSERVER 拯救 某个 时间 点被误 删除 的 数据 http://blog.csdn.net/dba_huangzj/article/details/8491327 要 拯救 某个 时间 点被误 删除 的 数据 ,需要你在那个 时间 点之前有一个完整 数据 库备份。 而且,需要你的 数据 库恢复模式为:完整恢复模式

SQLSERVER拯救某个时间点被误删除数据

http://blog.csdn.net/dba_huangzj/article/details/8491327

拯救某个时间点被误删除数据,需要你在那个时间点之前有一个完整数据库备份。

而且,需要你的数据库恢复模式为:“完整恢复模式”

如何查看你的数据库恢复模式为完整恢复模式,运行下面SQL

1 SELECT  recovery_model, recovery_model_desc
2 FROM    sys.databases
3 WHERE   name = 'GPOSDB'

SQLSERVER拯救某个时间点被误删除的数据

在创建完一个新数据库之后,强烈建议做一次数据库完整备份

-------------------------------------------------------------------华丽的分割线-----------------------------------------------------------------------

先创建测试表

 1 /*
 2 由于tempdb永远为简单恢复模式,所以不适合做案例。
 3 这里使用我的测试机器里的数据库GPOSDB
 4 */
 5 USE [GPOSDB]
 6 GO
 7 IF OBJECT_ID('testRestore') IS NOT NULL 
 8     DROP TABLE testRestore
 9 GO
10 CREATE TABLE testRestore
11     (
12       id INT IDENTITY(1, 1) ,
13       NAME VARCHAR(50)
14     );

插入测试数据

 1 --插入测试数据
 2 INSERT INTO testRestore(Name)
 3 SELECT 'test1'
 4 UNION ALL 
 5 SELECT 'test2'
 6 UNION ALL 
 7 SELECT 'test3'
 8 UNION ALL 
 9 SELECT 'test4'
10 UNION ALL 
11 SELECT 'test5'
12 UNION ALL 
13 SELECT 'test6'
14 UNION ALL 
15 SELECT 'test7'
16 UNION ALL 
17 SELECT 'test8'

 

1 SELECT * FROM testRestore

SQLSERVER拯救某个时间点被误删除的数据

先来一个数据库完整备份,在22:32的时候完整备份数据

1 BACKUP DATABASE [GPOSDB]
2 TO DISK='D:\GPOSDB_FULLBACKUP2013-07-23.bak'
3 WITH INIT
4 go

模拟删除数据,这里使用waitfor time,目的是使删除数据时间准确一点,这里选择22:34的时候删除数据方便后面还原某个时间点之前的数据

1 USE [GPOSDB]
2 GO
3 WAITFOR TIME '22:34'
4 DELETE FROM dbo.testRestore


查询一下数据是否删除

1 USE [GPOSDB]
2 GO
3 SELECT * FROM dbo.testRestore

SQLSERVER拯救某个时间点被误删除的数据

断开与GPOSDB数据库的连接,如果还有连接就kill掉连接,然后执行事务日志备份,在22:36的时候执行事务日志备份

秒哒
秒哒

秒哒-不用代码就能实现任意想法

下载

 1 --删除了表中的数据之后最少要等3分钟才执行下面SQL语句,不然的话等一下还原事务日志的时候会报错
 2 --必须断开所有与GPOSDB数据库的连接
 3 USE master
 4 GO
 5 BACKUP LOG [GPOSDB] TO  DISK = N'D:\GPOSDB_LOGBACKUP2013-07-23.bak' WITH  NO_TRUNCATE , NOFORMAT,  NAME = N'GPOSDB-事务日志备份', SKIP,  NORECOVERY ,  STATS = 10, CHECKSUM
 6 GO
 7 DECLARE @backupSetId AS INT
 8 SELECT  @backupSetId = position
 9 FROM    msdb..backupset
10 WHERE   database_name = N'GPOSDB' AND backup_set_id = ( SELECT
11                                                               MAX(backup_set_id)
12                                                         FROM  msdb..backupset
13                                                         WHERE database_name = N'GPOSDB'
14                                                       )
15 IF @backupSetId IS NULL  --这里是验证事务日志备份是否成功,如果没有断开与GPOSDB数据库的连接备份事务日志可能会失败
16     BEGIN
17         RAISERROR(N'验证失败。找不到数据库“GPOSDB”的备份信息。', 16, 1)
18     END
19 RESTORE VERIFYONLY FROM  DISK = N'D:\GPOSDB_LOGBACKUP2013-07-23.bak' WITH  FILE = @backupSetId
20 GO

SQLSERVER拯救某个时间点被误删除的数据

1 --查询是否备份成功
2 SELECT TOP 10 * FROM    msdb..backupset ORDER BY [backup_set_id] DESC 

SQLSERVER拯救某个时间点被误删除的数据

还原数据库完整备份

1 --数据库处于正在还原状态
2 RESTORE DATABASE [GPOSDB] FROM DISK='D:\GPOSDB_FULLBACKUP2013-07-23.bak' WITH replace, NORECOVERY 

SQLSERVER拯救某个时间点被误删除的数据

 还原事务日志

1 --因为删除数据是在'22:34' 所以还原到22:33
2 RESTORE LOG [GPOSDB] FROM DISK='D:\GPOSDB_LOGBACKUP2013-07-23.bak' WITH RECOVERY ,STOPAT='2013-7-23 22:33'

如果事务日志还原失败的话,可以使用GUI界面

SQLSERVER拯救某个时间点被误删除的数据

SQLSERVER拯救某个时间点被误删除的数据

查看表中的数据

1 USE [GPOSDB]
2 GO
3 SELECT * FROM dbo.testRestore

SQLSERVER拯救某个时间点被误删除的数据

 -----------------------------------------------------------华丽的分割线--------------------------------------------

要注意的两个地方

(1)如果你发现误操作以后还有很多人做了操作,那么你还原成功后,别人的操作就会冲掉,所以发生误操作后,要马上停止别人对数据库的操作。

(2)这个方法要对数据库独占

相关专题

更多
ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

33

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

18

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

46

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

91

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

283

2025.12.26

俄罗斯搜索引擎yandex入口汇总
俄罗斯搜索引擎yandex入口汇总

本专题整合了俄罗斯搜索引擎yandex相关入口合集,阅读下面的文章查看更多入口。

370

2025.12.26

虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

35

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

25

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

72

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

小白拯救者:  PHP7基础语法快速预览
小白拯救者: PHP7基础语法快速预览

共27课时 | 11.2万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号