Je suis confronté à un problème lors de la restauration des bases de données à partir de sauvegardes différentielles. Voici les étapes que j'effectuéesSauvegardes différentielles dans SQL Server 2008; Capable de restaurer via SSMS mais incapable de restaurer via 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
Msg 4305, niveau 16, état 1, ligne 2
Le journal dans ce jeu de sauvegarde commence à LSN 81125000000059600297, qui est trop récente pour appliquer à la base de données. Une sauvegarde de journal antérieure incluant LSN 81121000000116200001 peut être restaurée.Msg 3013, niveau 16, état 1, ligne 2
RESTORE LOG se termine de manière anormale.
RESTORE FILELISTONLY FROM DISK = 'E:\DiffBak2.TRN'
GO
RESTORE LOG DBName_delta FROM DISK='E:\DiffBak2.TRN' WITH STANDBY = 'c:\undo.ldf'
GO
Mais quand j'ai essayé de restaurer la même E: \ DiffBak1.TRN par SSMS en utilisant l'option NORECOVERY, il a rétabli la base de données et encore j'ai pu effectuer la restauration du même fichier en utilisant le Transact SQL. Est-ce que j'ai râté quelque chose? Est-ce que cela a quelque chose à voir avec la base de données RESTORE? Je suis sûr que nous ne manquons aucun des journaux entre. Toute aide sera très appréciée.
Cela signifie que vous avez un caractère non anglais dans le chemin du fichier. Le préfixe 'N' signifie que la chaîne est Unicode. Si tous les caractères étaient en anglais, cela ne serait pas nécessaire. –
Pas exactement. Au lieu de restaurer le journal, le deuxième code restaurait la base de données. Cela a fait la différence. J'ai scénarisé l'étape et j'ai découvert la différence. –