Bonjour,
Je souhaiterai tronquer la Log d'une base lorsque celle-ci grossi trop rapidement sous Sql Server 2008. Comme par exemple tous les matins.
Quel est la ligne de commande pour supprimer la log d'une base de données ?
Merci d'avance
Bonjour,
Je souhaiterai tronquer la Log d'une base lorsque celle-ci grossi trop rapidement sous Sql Server 2008. Comme par exemple tous les matins.
Quel est la ligne de commande pour supprimer la log d'une base de données ?
Merci d'avance
Si à propos de "Log", vous parlez du journal de transactions, et que celui-ci augmente tous les matins, il n'y a aucune raison de réduire la taille du fichier de manière automatique.
Cela sera contre-performant.
Pour en savoir plus, faites une recherche rapide sur le forum, beaucoup (trop) de topics traitent de ce sujet.
Bonjour,
Pour tronquer le journal des transactions d'une base il faut utiliser le sauvegarder ou éventuellement utiliser la commande DBCC SHRINKFILE et l'option TRUNCATE_ONLY pour tenter de libérer de la place à l'intérieur du journal.
Pour réduire la taille du fichier journal il faut utiliser la commande DBCC SHRINKFILE avec une valeur cible.
Cependant permettez quelques questions :
Pourquoi voulez-vous faire cela tous les matins ?
Qu'est ce qui fait grossir votre journal ?
Quel mode de récupération utilisez-vous ?
++
en fait il s'agit bien du journal des transactions. Lorsqu'il n'est pas vider pendant plusieurs semaines, il peut atteindre 200Go. Donc mon disque physique est full.
Par prevention, je voulais lancer cette commande tous les matins ou tous les soirs.
Quelle strategie semble la plus adapté ?
Selon votre description, votre base de données en mode de récupération COMPLET. Cela implique que chaque transaction est enregistrée dans.. votre journal de transaction.
Vous avez alors 2 possibilité :
- soit vous ne réalisez aucune maintenance (dangereux) et une sauvegarde unique par jour vous suffit, alors, passer votre base en mode de récupération SIMPLE.
- soit vous ne pouvez vous perdre plus de x heures/minutes de données en cas de plantage et dans ce cas, laissez le mode de récupération complet et appliquez un plan de maintenance qui réalisera une sauvegarde complète pendant la nuit et des sauvegardes des journaux de transactions dans la journée, toutes les X heures/minutes.
Cette sauvegarde aura pour effet de vider l'intérieur du fichier, l’empêchant alors de grandir abusivement.
Visiblement (corrigez moi si je me trompe) vous n'utilisez pas les sauvegardes du journal pour pouvoir faire une restauration dans le temps.
Dans ce cas passez votre base en mode de récupération simple pour éviter le remplissage à l'infini du fichier journal de votre base.
Dans le cas où vous utilisez une stratégie de sauvegarde comprenant celle des journaux il faudra penser à sauvegarder régulièrement le journal pour le vider.
++
En effet, ma base de données est en mode de récupération complet. La sauvegarde de ma base est journalière et se réalise via la plan de maintenance vers 22H00. Donc une fois par jour. Dans ce cas, si j'ai bien compris, je peux basculer en mode de récupération simple. Puisque la compléte sert s'il y a plusieurs sauvegardes par jour ?
D'aprés vous, le fait de sauvegarder ma base, vide la log automatiquement ?
Avec une complète par jour, vous pouvez perdre jusqu'à une journée de données. Si vous pouvez vous permettre cela, passez en mode de récupération simple.Dans ce cas, si j'ai bien compris, je peux basculer en mode de récupération simple. Puisque la compléte sert s'il y a plusieurs sauvegardes par jour ?
Le fait de sauvegarder le fichier journal videra le log (BACKUP LOG ...) quand vous êtes en mode de récupération FULL ou BULK-LOGGED. Le mode de récupération simple tronquera votre journal automatiquement ce qui empêchera celui-ci de grossir indéfininement.D'aprés vous, le fait de sauvegarder ma base, vide la log automatiquement ?
++
Partager