Bonjour a tous,

je suis nouveau avec sql server et je souhaite implementer un backup full + differenciels.
Le full serait une fois par semaine et les differentiels tous les jours.
Le probleme arrive lorsque j'essaie de restorer le LOG.
Voici la suite des operations:

Je positione la base en recov full

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
--USE master;
--ALTER DATABASE susdb SET RECOVERY FULL;
--GO
Je fait le premier backup full

Code : Sélectionner tout - Visualiser dans une fenêtre à part
--BACKUP DATABASE susdb TO DISK = 'Z:\backup\susdb\susdbfull.bak' WITH NOFORMAT, NOINIT, SKIP, NOREWIND, NOUNLOAD,  STATS = 10;
Ensuite je fais un backup du log

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
--BACKUP LOG susdb TO DISK = 'Z:\backup\susdb\susdb_log.bak' WITH NORECOVERY;
--GO
Et enfin le premier diff

Code : Sélectionner tout - Visualiser dans une fenêtre à part
--BACKUP DATABASE susdb TO DISK = 'Z:\backup\susdb\susdb_diff.bak' WITH NOINIT , NOUNLOAD ,DIFFERENTIAL, NOSKIP , STATS = 10, NOFORMAT;
La je detruit ma base pour la restoration

Code : Sélectionner tout - Visualiser dans une fenêtre à part
--RESTORE DATABASE susdb FROM DISK = 'Z:\backup\susdb\susdbfull.bak' WITH FILE=1,NORECOVERY;
Et c'est la que j'ai le doute, le log doit etre restoré juste apres le full? ou doit il etre restoré apres le diff?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Code : Sélectionner tout - Visualiser dans une fenêtre à part
--RESTORE DATABASE susdb FROM DISK = 'Z:\backup\susdb\susdb_diff.bak' WITH FILE=1,NORECOVERY;
--RESTORE LOG susdb FROM DISK = 'Z:\backup\susdb\susdb_log.bak' WITH FILE=2, NORECOVERY;
Dans tous les cas j'ai cette erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
No se encuentra el Id. de archivo 2 en el dispositivo 'Z:\backup\susdb\susdb_log.bak'
 
Traduction, Ne trouve pas l'id du fichier 2 dans le dispositif....
Si je passe du log et que j'execute ceci, ça marche.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
--GO
--recover the database:
--RESTORE DATABASE susdb WITH RECOVERY;
--GO
J'ai pas compris la logique en fait, dois avoir des log si j'utilise le differentiel?

D'avance merci