还原数据库到指定时间点

GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
https://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=1719

 

警告:如果试图恢复客户的数据库到指定时间点,千万不能直接在客户服务器上进行恢复操作,以免造成严重后果。而应该把当前客户数据库做个完整备份,把.bak文件拷贝到本地,还原到本地进行操作。数据恢复后,再想办法把相应数据导入客户数据库。

一、SQL Server可使用事务日志恢复到指定时间点。

1.1 这个恢复需要有两个前提条件:

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

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

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

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

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

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

1.2 查看数据库的恢复模式

--数据库恢复模式有三种:

--1:FULL(完整)、2:BULK_LOGGED(大容量日志)、3:SIMPLE(简单)

--查看数据库的恢复模式

SELECT name,recovery_model

FROM sys.databases

WHERE name = 'MyTestDB'

1.3 当恢复模式为 SIMPLE 时,不允许使用 BACKUP LOG 语句

 

二、首先做了一次完整备份,然后依次做了2次事务日志备份,现在需要还原数据库到第2次误删数据后的时间点。

三、如果没有之前的(历史)事务日志备份文件,如何进行数据恢复?

3.1 结论:如果某数据库有过2次事务日志备份,如果要恢复第2次误删的数据,但是没有第1次事务日志备份文件,那么需要一个第1次事务日志备份后的完整备份文件。

四、错误案例

4.1 如果是在服务器A上误删了数据,如果把误删后的数据库备份文件还原到服务器B上来,然后在服务器B上备份事务日志文件进行数据恢复,我发现这样会报错,而如果把服务器A的数据库文件(.mdf和.ldf文件)拷贝至服务器B,然后在服务器B上备份事务日志文件再做数据恢复,就不会有问题。

 

4.2发现把另一台服务器上的数据库备份文件还原到本地后,在本地执行backup log POMDB to Disk='D:Res\POMDB.log' with init 得到的日志文件很小,没什么用。而应该在服务器上备份,而且,我还发现在服务器上第一次备份得到的.log文件比较大,第2次备份得到的文件就很小了,原因是第二次备份是在第一次备份的基础之上备份的

'

4.3 指定的还原时间大于事务日志备份时间,出现如下提示,数据库还是保持为还原状态(即数据库图标上出现【正在还原】字样)

4.4 如果依次进行了2次事务日志备份,无法使用第2次的事务日志备份文件恢复第1次备份之前误删的数据

4.5 也无法使用第2次的事务日志备份文件恢复第2次备份之前误删的数据

五、关于事务日志备份文件的LSN

5.1 打开第1次备份的事务日志备份文件

5.2 打开第2次备份的事务日志备份文件,发现LSN是接着上一次备份来的。

5.3 结论:如何要恢复第2次误删的数据,必须先还原第1次的事务日志备份文件,然后再还原第2次的事务日志备份文件。

 

GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
https://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=1719

posted on   森大科技  阅读(951)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示