Dans le cas présent, un service me fournit une sauvegarde complète en début de semaine puis des sauvegardes différentielles pendant la semaine. Je ne suis donc pas responsable du processus de backup, par contre je doit restaurer ceux-ci sur mon serveur afin de mettre à jour mon DataWarehouse.
Or, lors d’une restauration infructueuse d’un différentiel, il s’est avéré que le problème venait de la sauvegarde complète mise à disposition qui n’était pas celle qui avait servi de référence pour la réalisation du différentiel.
La question est donc, comment savoir avec certitude que ma sauvegarde différentielle est bien relative à la sauvegarde complète à ma disposition ?
Il va falloir regarder du côté des LSN (Log Sequence Numbers) de nos jeux de sauvegardes grâce à la commande restore headeronly.
RESTORE headeronly FROM DISK = 'G:\bk_full.bak'
RESTORE headeronly FROM DISK = 'G:\bk_diff.bak'
Ce qui va nous permettre de rapprocher ces deux sauvegardes et donc de s’assurer que notre sauvegarde différentielle est bien relative à ce fichier de sauvegarde complète c’est le CheckpointLSN de la complète et le DatabaseBackupLSN de la différentiel.
Les deux champs doivent donc être identiques pour s’assurer que la différentielle est restaurable avec cette complète.
Plus d’informations ici => http://blogs.msdn.com/b/sqlserverfaq/archive/2013/05/22/how-do-i-map-a-differential-transaction-log-backup-to-its-full-backup-without-using-msdb.aspx