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 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值