您的位置:首页 > 数据库

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

2014-05-05 17:17 204 查看
--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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: