|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
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 |
|
|
00
|
|
|
#2 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 773 ![]() |
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.
__________________
Alexandre Chemla - Consultant MS BI chez Masao |
|
|
00
|
|
|
#3 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 725 ![]() |
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 ? ++ |
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
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é ? |
|
|
00
|
|
|
#5 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 773 ![]() |
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.
__________________
Alexandre Chemla - Consultant MS BI chez Masao |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 725 ![]() |
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. ++ |
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
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 ? |
|
|
00
|
|
|
#8 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 725 ![]() |
Citation:
Citation:
++ |
||
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
chaque soir , je réalise une sauvegarde de ma base complete ( data + log) et ce n'est pas pas cela que le log se vide aprés mon dump ?
|
|
|
00
|
|
|
#10 | |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 725 ![]() |
Citation:
++ |
|
|
00
|
|
|
#11 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
=> Verifier l'intégrité de la base de données
=> Compacter la base de données => Reorganiser l'index => Nettoyer l'historique => Sauvegarder la base de données (complète) => Tâche de nettoyage de maintenance Voilà les tâches que j'execute chaque soir. |
|
|
00
|
|
|
#12 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 773 ![]() |
Attention, dans ce plan le compactage de la base de données est à désactiver, il est néfaste pour les performance, surtout dans le cas où l'espace est réellement utilisé par la BDD pendant la journée.
de plus, la réorganisation des indexs, peut potentiellement générer beaucoup d'écriture dans les journaux de transactions dans le cas où la base est en mode complet. Si vous souhaitez conserver votre base en mode complet (et donc y appliquer obligatoirement une sauvegarde des journaux pendant la journée), vous devriez passer la base en mode simple au début de votre plan de maintenance, puis la repasser en mode complet avant la sauvegarde.
__________________
Alexandre Chemla - Consultant MS BI chez Masao |
|
|
00
|
|
|
#13 | |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 725 ![]() |
@vince2005 >
Au vu de votre plan vous ne sauvegardez les journaux. C'est normal que vos fichiers de log grossissent. Il faut également implémenter une sauvegarde des journaux comme expliqué un peu plus haut avec une autre tâche de sauvegarde. La sauvegarde FULL ne vide pas le journal. @Jinhro77 > Citation:
Je pense que ce n'est pas forcément la meilleure chose à faire dans ce cas. Le passage en mode simple dans ce cas invalide la séquence des LSN. Si la base est utilisée à ce moment là et que l'on doit revenir à l'état le plus proche du crash cela va poser problème. Il vaut mieux dans ce cas prévoir une tâche SQL avec un script personnalisé de réindexation pour ne s'occuper que des indexes réellement fragmentés. De plus si la base est volumineuse il faudra refaire une seconde sauvegarde donc prévoir plus de place dans un même plan de maintenance. Si la base est volumineuse ce n'est pas forcément ce qu'il y a de mieux à faire. ++ |
|
|
00
|
|
|
#14 | |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 773 ![]() |
Citation:
Par contre, même avec un script personnalisé, si l'on traite un grand nombre d'index, le volume augmentera de la même manière ? On se retrouve alors avec un fichier de journal plein, pour lequel il faut faire une sauvegarde afin de le vider avant de commencer la journée. Le volume de sauvegarde augmente donc grandement. Dans mon cas de passage en mode simple, c'est à propos de plan de maintenance sur des bases de petite taille non utilisées 24/24. Mon plan n'est donc pas valable pour de la forte volumétrie.
__________________
Alexandre Chemla - Consultant MS BI chez Masao |
|
|
|
00
|
|
|
#15 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 725 ![]() |
Citation:
Citation:
Ceci étant dit dans le cas de vince2005 je pense qu'il suffirait d'adopter un mode simple aux vu des contraintes ... ++ |
||
|
00
|
|
|
#16 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
moi ce que je souhaite, c'est de faire une sauvegarde en fin de journée. S'il y a un plantage, je reparts de ma sauvegarde la veille et les utilisateurs resaisiront les données si nécessaires.
donc quel technique adopté ? |
|
|
00
|
|
|
#17 |
![]() ![]() Alexandre ChemlaConsultant en Business Intelligence Inscription : février 2006 Messages : 1 773 ![]() |
Passage de la base en mode SIMPLE.
Réalisation d'une maintenance avec une sauvegarde complète la nuit.
__________________
Alexandre Chemla - Consultant MS BI chez Masao |
|
|
00
|
|
|
#18 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 456 ![]() |
donc à part ce que je faisais auparavant, je dois simplement mettre la base en mode simple ?
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com