SqlServer problème des fichiers logs

Il existe dans une base deux fichiers:

  • les datas
  • les logs: reprennent l’ensemble des actions afin qu’elles puissent être rejouées

Si la base est en mode recovery “complet” le fichier log ne ce vide jamais et peut rprésenter plusieurs GIga

Il est possible de purger ce fichier log après une sauvegarde complète de la base

BACKUP DATABASE ppme TO DISK='D:\SVG\PPME_SQL.back'
BACKUP LOG ppme WITH TRUNCATE_ONLY
CHECKPOINT
BACKUP LOG ppme WITH TRUNCATE_ONLY
DBCC SHRINKFILE(2, 10, TRUNCATEONLY)

dans un fichier bat cela donne par exemple pour la base PPME

REM ppme
osql -d ppme -E -Q "BACKUP DATABASE ppme TO DISK='D:\SVG\PPME_SQL.back'"
osql -d ppme -E -Q "BACKUP LOG ppme WITH TRUNCATE_ONLY"
osql -d ppme -E -Q "CHECKPOINT"
osql -d ppme -E -Q "BACKUP LOG ppme WITH TRUNCATE_ONLY"
osql -d ppme -E -Q "DBCC SHRINKFILE(2, 10, TRUNCATEONLY)"