0
从差异备份还原数据库时,我遇到了一个问题。下面是我在LSN 81125000000059600297,这是太新,执行SQL Server 2008中的差异备份;能够通过SSMS进行恢复,但无法通过事务性SQL恢复
DROP DATABASE DBName_delta
GO
BACKUP DATABASE DBName TO DISK = 'E:\Fullbak1.bak'
GO
RESTORE FILELISTONLY FROM DISK = 'E:\Fullbak.bak'
GO
RESTORE DATABASE DBName_delta
FROM DISK='E:\Fullbak.bak'
WITH MOVE 'DBName_Data' TO 'E:\DBData\DBName_delta.mdf',
MOVE 'DBName_Image_Data' TO 'E:\DBData\DBName_delta_Image_Data.mdf',
MOVE 'DBName_Log' TO 'D:\DBLog\DBName_delta.ldf',
NORECOVERY
--Made Some changes in the database
BACKUP DATABASE DBName
TO DISK = 'E:\DiffBak1.TRN'
WITH DIFFERENTIAL
GO
--Made Some more changes in the database
BACKUP DATABASE DBName
TO DISK = 'E:\DiffBak2.TRN'
WITH DIFFERENTIAL
GO
RESTORE FILELISTONLY FROM DISK = 'E:\DiffBak1.TRN'
GO
RESTORE LOG DBName_delta FROM DISK='E:\DiffBak1.TRN' WITH NORECOVERY
GO
消息4305,级别16,状态1,2号线
日志在此备份集开始的步骤来应用到数据库。包含LSN 81121000000116200001的较早日志备份可以恢复。消息3013,级别16,状态1,行2
RESTORE LOG正在异常终止。
RESTORE FILELISTONLY FROM DISK = 'E:\DiffBak2.TRN'
GO
RESTORE LOG DBName_delta FROM DISK='E:\DiffBak2.TRN' WITH STANDBY = 'c:\undo.ldf'
GO
但是,当我试图还原相同E:通过使用不带恢复选项\ DiffBak1.TRN通过SSMS,它还原数据库和我又是能够执行同一文件的使用恢复Transact SQL。我在这里错过了什么吗?这与RESTORE DATABASE有关吗?我相信我们不会错过之间的任何日志。任何帮助都感激不尽。
这意味着您在文件路径中有非英文字符。 “N”前缀表示该字符串是Unicode。如果所有字符都是英文,则不需要。 –
不完全。第二个代码不是恢复日志,而是恢复数据库。这有所作为。我脚本化了这个步骤,发现了不同之处。 –