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)"