差分バックアップからデータベースを復元する際に問題が発生しています。ここではデータベースに適用する私も、最近でLSN 81125000000059600297、で SQL Server 2008の差分バックアップ。 SSMSを介して復元することはできますが、Transact 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を含む以前のログバックアップを復元できます。
このバックアップセットのログが開始レベル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復元しようとしたとき:WITH NORECOVERYオプションを使用して、SSMSを通じて\ DiffBak1.TRNを、それがデータベースを復元し、再び私が使用して同じファイルのリストアを実行することができましたTransact SQL私はここに何かを逃していますかこれはRESTORE DATABASEと関係がありますか?私たちの間に何もログがないことは間違いないと確信しています。どんな助けでも大歓迎です。
これは、ファイルパスに英語以外の文字が含まれていることを意味します。 'N'接頭辞は文字列がUnicodeであることを意味します。すべての文字が英語の場合、これは必要ありません。 –
正確ではありません。ログを復元する代わりに、2番目のコードがデータベースを復元していました。それが違いを生み出しました。私はステップをスクリプト化し、その違いを見つけました。 –