Owen_Zeng 的博客

You want something. Go get it!

SQL SERVER将数据还原到需要的时间点


--2。 还原最近的完整备份

restore database SMT from disk='\\172.26.10.4\e$\BackUp\172.26.10.3\SMT\SMT_FULL20100711.BAK'
with standby='D:\SQLDATA\UNDO_SMT.DAT'

--确认最近的完整备份DAT文件存储路径standby='D:\SQLDATA\UNDO_SMT.DAT'

restore filelistonly from disk='\\172.26.10.4\e$\BackUp\172.26.10.3\SMT\SMT_FULL20100711.BAK'

--3。 还原最近的差异备份,没有差异备份就得一个一个还原log备份

restore database SMT from disk='\\172.26.10.4\e$\BackUp\172.26.10.3\SMT\SMT_DIFF20100712.BAK'
with standby='D:\SQLDATA\UNDO_SMT.DAT'

--4。 确认最近的LOG备份需要还原到那个位置position

restore headeronly from disk='\\172.26.10.4\e$\BACKUP\172.26.10.3\SMT\LOG\SMT_LOG20100712.TRN'
因为最后一个差异的时间为7/12 11:52,所以继续还原LOG备份时要从7/12 11:52之后的第一个位置开始,也就是从position=13。由于第一次上传工单的时间为7/12 17:20,所以还原到position=18,之后还原position=19就要by时间来还原了。

declare @i as int
set @i=13
while @i<=18
begin
restore log SMT from disk='\\172.26.10.4\e$\BACKUP\172.26.10.3\SMT\LOG\SMT_LOG20100712.TRN'
with standby='D:\SQLDATA\UNDO_SMT.DAT',file=@i--,stopat='2010-03-05 06:01:00.000'
set @i=@i+1
end

--还原到某个时间点-07-12 17:30:00.000(工单第一次上传的时间)

--position=19的log最后时间点为-07-12 18:15:02.000

restore log SMT from disk='\\172.26.10.4\e$\BACKUP\172.26.10.3\SMT\LOG\SMT_LOG20100712.TRN'
with standby='D:\SQLDATA\UNDO_SMT.DAT',file=19,stopat='2010-07-12 17:30:00.000'

--------------------------------

 Dev.MySQL.com 


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z10843087/article/details/25028543
上一篇SQL SERVER 2008 安装提示需要重启但是重启达不到需要的效果
下一篇mysql 入门书籍推荐+安装mysql最后一步未响应(解决方法)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭