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。如果所有字符都是英文,則不需要。 –
不完全。第二個代碼不是恢復日誌,而是恢復數據庫。這有所作爲。我腳本化了這個步驟,發現了不同之處。 –