Bonjour à toutes et tous,
Voilà, j'ai un problème de Backup SQL, je vous l'expose en détails en espérant que vous pourrez m'aider.
J'ai créez plusieurs Backup Devices, je vous montre le script pour un, mais le problèmes est le même pour tous
Via un job, je lance ce script automatiquement toutes les 8 heures (fin de pause)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Backup Device 1 : Nom = [Local] (pour la DB), File : D:\SQLBackup\TlbProduitProcess FULL.bak Backup Device 2 : Nom = [Local LOG] (pour le fichier de Log), File : D:\SQLBackup\TlbProduitProcess LOG.bak etc...
Normalement avec l'option 'with retaindays = 30' je ne devrais garder que les 30 derniers jours et effacer les plus anciens au fur et à mesure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 BACKUP DATABASE [TLBProduitProcess] TO [Local] WITH RETAINDAYS = 30, NOFORMAT, NOINIT, NAME = N'TLBProduitProcess-Full Database Backup Local', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10 GO BACKUP LOG [TLBProduitProcess] TO [Local LOG] GO DBCC SHRINKFILE ([TLBProduitProcess] , 100) GO
Puis avec la commande 'shrinkfile' logiquement le fichier Log devrais être tronqué.
Le problème, c'est que a chaque backup, les Backup Device (Local et Local Log) augmentent de la taille de la DB, 35 Gb, 70Gb, 105 Gb, etc... , et finissent par saturé le disque dur.
Et lorsque le disque est plein, l'erreur empêche le script suivant de s'exécuter. Le suivant étant le même mais sur un autre device, un disque réseau.
Pour info sur le disque réseau, le fichier TlbProduitProcess FULL.bak fait 172 Gb alors que la DB en elle même ne fait que 35 Gb.
Où est mon erreur ?
Ce que je voudrais, c'est par un moyen ou un autre, backuper ma DB (avec ou sans log suivant votre avis) et garder les 30 derniers jours tout en maintenant une taille acceptable sur le disque dur, de préférence même fixe.
Le backup doit se faire toutes les 8 heures.
Que préconisez vous ? Backup full, incrémentiel, avec les log, etc...
Quel est la meilleur stratégie ?
N'étant pas un super pro de transact SQL, si vous aviez le script cela m'aidera grandement.
Voilà, j'espère avoir été assez clair dans mes explications, si tel n'était pas le cas, vous pouvez me contacter pour d'autres informations complémentaires.
Je vous mets en pièce jointe le script complet des jobs.
Merci d'avance pour votre aide.
Bonne journée,
GargouilleBL
Partager