关闭

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

343人阅读 评论(0) 收藏 举报


--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 


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:30082次
    • 积分:848
    • 等级:
    • 排名:千里之外
    • 原创:47篇
    • 转载:4篇
    • 译文:1篇
    • 评论:15条
    博客专栏
    最新评论