日期:2014-05-17  浏览次数:20684 次

还原数据库时显示:该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