|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||||
|
Membre habitué
![]() Luis Inscription : avril 2006 Messages : 436 ![]() |
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 :
Code :
--BACKUP DATABASE susdb TO DISK = 'Z:\backup\susdb\susdbfull.bak' WITH NOFORMAT, NOINIT, SKIP, NOREWIND, NOUNLOAD, STATS = 10;
Code :
Code :
--BACKUP DATABASE susdb TO DISK = 'Z:\backup\susdb\susdb_diff.bak' WITH NOINIT , NOUNLOAD ,DIFFERENTIAL, NOSKIP , STATS = 10, NOFORMAT;
Code :
--RESTORE DATABASE susdb FROM DISK = 'Z:\backup\susdb\susdbfull.bak' WITH FILE=1,NORECOVERY;
Code :
Code :
Code :
D'avance merci |
||||||||||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Normal, votre plan est stupide ou votre logique de restauration l'est...
Faire un COmplete + Log + Diff est pas très catholique. C'est l'inverse qu'il faudrait faire : 1) Full 2) Diff 3) Log D'ou votre erreur : RESTORE FULL ... WITH NORECOVERY => OK RESTORE DIFF ... WITH NORECOVERY => stupide car c'est votre dernière sauvegarde... Donc vous devez faire un RESTORE DIFF ... WITH RECOVERY => OK et base en production et c'est tout car les transactions de votre BACKUP LOG sont dans la diff. D'ou votre erreur lorsque vous tentez de restaurer le LOG. Si votre plan de sauvegarde avait été correct, vous n'auriez pas eu l'erreur. A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 |
|
Membre habitué
![]() Luis Inscription : avril 2006 Messages : 436 ![]() |
Salut
ok donc a part le faite que cesoit stupide (ça j'admet) j'ai encore un doute. Tu propose de faire le full par exemple un dimanche. Ensuite des diff chaque jours de la semaine. Et le log... Je dois le faire apres chaque diff n'est ce pas? je dois avoir un jeu de log qui correspond au dernier block modifié qui se trouve dans le diff, tu confirme? par exemple faire un full par semaine, des diff tous les jours et un log juste avant le prochain full, ça n'a pas de sens non plus? Si la base scratch le jeudi...Je fais le restore avec le dernier full, et ensuite la aussi j'ai le doute, je dois d'abord restorer le dernier diff et a la fin le log ? D'avance merci |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
le JT vous pouvez le faire toutes les heures, toutes les 10 minutes... Ce qui importe c'est :
combien de données puis-je perdre en cas de crash du serveur ? Si vous mettez 10 minutes, alors en moyenne la perte de production sera de 5 minutes, au mieux de 0 au pire de 10. La durée de la sauvegarde du JT est très rapide. Que vous fassiez 200 sauvegardes dans la journée ou une seule en fin, la durée sera sensiblement la même, car l'ensemble des 200 sauvegardes de JT contiendra les mêmes informations que si vous n'en faite qu'une seule. A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#5 |
|
Membre habitué
![]() Luis Inscription : avril 2006 Messages : 436 ![]() |
ok j'ai compris.
Je vais mettre en place cette politique pour voir. Merci pour tout les bon conseils !! Bonnes fêtes !! |
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Luis Inscription : avril 2006 Messages : 436 ![]() |
Bonjour
je reviens sur ce post car j'ai encore un doute. Lorsque je fais un backup full de cette façon: Code :
BACKUP DATABASE MaBase TO DISK = 'G:\mabaseFull.bak'; Code :
RESTORE FILELISTONLY FROM DISK = 'G:\mabaseFull.bak' le ldf c'est le log n'est ce pas? Donc si je suit l'ordre que nous avions etabli la derniere fois: j'ai 2 log au total...celui qui est inclus dans le full plus le dernier. C'est bien ça? Pour restaurer je restore tout sans me poser de question? Si je fais un autre restore filelistonly du fichier de log, j'obtient aussi le mdf et le ldf..La je comprend plus. Le ldf est inclus dans le full et le ldf est inclus dans lo log? D'avance merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com