还原数据库时显示:该LSN 太晚,无法应用到数据库
大家好,我对数据库test进行了完整备份之后删除了table1表的一条记录,然后再进行事务日志备份,可还原的时候提示说该LSN 太晚,无法应用到数据库,请问大家应该如何安排这个备份呢?操作代码和异常代码如下:
backup db test to disk='d:\test_data.bak'
delete from table1 where a=3
select dt=getdate() into #
backup log test to disk='d:\test_log.bak'
restore database test from disk='d:\test_data.bak' with replace,NORECOVERY
DECLARE @dt datetime
select @dt=dateadd(ms,-40,dt) from #
restore log test from disk='d:\test_log.bak' with recovery,stopat=@dt
消息 4305,级别 16,状态 1,第 3 行
此备份集中的日志开始于 LSN 18000000022900001,该 LSN 太晚,无法应用到数据库。可以还原包含 LSN 18000000022300001 的较早的日志备份。
消息 3013,级别 16,状态 1,第 3 行
RESTORE LOG 正在异常终止。
顺便问一下,我第一次做完整备份,接下来做事务日志备份,第一次事务日志备份可否选择截断事务日志?
------解决方案--------------------在你还原的日志备份之前还有其他备份,先要还原其他日志备份才可以。
------解决方案--------------------另外日志备份以后如果没有特殊配置比如复制就会自动截断
------解决方案--------------------还原到时间点需要注意:
1、你用的完整备份是不是最新的完整备份,日志也是最新的,这样,还原的最早时间点是日志的备份时间。
2、如果你需要还原到更早,需要找到更早的完整备份和日志+当前的日志。
3、还原时间点:最初的完整备份+日志1+日志2+......+日志N,这样,数据库就可以还原到任何一个时间点。
记住,日志备份一定不能丢。
------解决方案--------------------从LZ所提供备份->恢复的语句看,应无此问题的,真实情况应该不止这些语句吧?
我第一次做完整备份,接下来做事务日志备份,第一次事务日志备份可否选择截断事务日志?
--> 备份日志即自动截断事务日志的.
------解决方案--------------------是的.
------解决方案--------------------
backup database test to disk='d:\test_data.bak'
delete from test.dbo.a where id=10
select dt=getdate() into #
backup log test to disk='d:\test_log2.bak'
restore database test1 from disk='d:\test_data.bak' with replace,NORECOVERY,
MOVE 'test' TO
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf',
MOVE 'test_log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf'
DECLARE @dt datetime
select @dt=dateadd(ms,-40,dt) from #
restore log test1 from disk='d:\test_log2.bak' with recovery,stopat=@dt
我的这个测试没有问题。
select * from backupset
--如果有log写入那么这一档的last_lsn 应该为下一档的first_lsn,自己看一下中间还有没有其他备份,
或lsn是否连续。还是两档log备在了同一个文件下(需要join一下备份媒体表)。
/*
first_lsn last_lsn checkpoint_lsn database_backup_lsn database_creation_date backup_start_date backup_finish_date type
3000000000070200037 3000000000072100001 3000000000070200037 0 2013-01-15 14:55:06.000 2013-06-09 15:43:32.000 2013-06-09 15:43:33.000 D
3000000000070200037 3000000000073100001 3000000000070200037 3000000000070200037 2013-01-15 14:55:06.000 2013-06-09&nbs