Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/01/2012, 10h32   #1
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 456
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 456
Points : 31
Points : 31
Par défaut suppression log sql server 2008

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
vince2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 11h05   #2
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 773
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 773
Points : 1 837
Points : 1 837
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
Jinroh77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 11h09   #3
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 725
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 725
Points : 6 849
Points : 6 849
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 ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 11h38   #4
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 456
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 456
Points : 31
Points : 31
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é ?
vince2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 11h42   #5
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 773
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 773
Points : 1 837
Points : 1 837
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
Jinroh77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 11h44   #6
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 725
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 725
Points : 6 849
Points : 6 849
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.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 12h31   #7
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 456
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 456
Points : 31
Points : 31
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 ?
vince2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 13h03   #8
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 725
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 725
Points : 6 849
Points : 6 849
Citation:
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 ?
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.

Citation:
D'aprés vous, le fait de sauvegarder ma base, vide la log automatiquement ?
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.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 14h00   #9
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 456
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 456
Points : 31
Points : 31
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 ?
vince2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 15h40   #10
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 725
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 725
Points : 6 849
Points : 6 849
Citation:
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 ?
Quelles tâches utilisez-vous dans votre plan de maintenance pour la sauvegarde ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 16h19   #11
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 456
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 456
Points : 31
Points : 31
=> 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.
vince2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 16h28   #12
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 773
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 773
Points : 1 837
Points : 1 837
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
Jinroh77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 17h01   #13
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 725
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 725
Points : 6 849
Points : 6 849
@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:
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.

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.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 17h14   #14
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 773
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 773
Points : 1 837
Points : 1 837
Citation:
Envoyé par mikedavem Voir le message
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.

++
Merci pour la précision sur les LSN David.
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
Jinroh77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 17h26   #15
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 725
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 725
Points : 6 849
Points : 6 849
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 ?
Effectivement si tous les indexes sont fragmentés et que leur nombre est important on n'aura pas gagné grand chose je te l'accorde. Cependant la tâche par défaut des plans de maintenance va traiter tous les indexes sans exception. Avec un script personnalisé il y a de grandes chances de réduire le volume d'indexes à traiter de manière conséquente.

Citation:
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.
Même chose le volume sera directement dépend de la volumétrie liée aux indexes. A tester. Rmq on peut tout à fait à l'aide d'un script personnalisé faire une maintenance étalée sur plusieurs jours pour réduire le nombre de données dans le journal pour un plan de maintenance donné. Bref, il y a pleins de façons d'arriver à réduire la quantité de données dans le journal liée à la maintenance

Ceci étant dit dans le cas de vince2005 je pense qu'il suffirait d'adopter un mode simple aux vu des contraintes ...

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 21h32   #16
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 456
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 456
Points : 31
Points : 31
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é ?
vince2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 21h50   #17
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 773
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 773
Points : 1 837
Points : 1 837
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
Jinroh77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 10h28   #18
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 456
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 456
Points : 31
Points : 31
donc à part ce que je faisais auparavant, je dois simplement mettre la base en mode simple ?
vince2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 10h40   #19
Modérateur
 
Avatar de Jinroh77
 
Homme Alexandre Chemla
Consultant en Business Intelligence
Inscription : février 2006
Messages : 1 773
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Chemla
Âge : 28
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : février 2006
Messages : 1 773
Points : 1 837
Points : 1 837
Oui.
Mais vous pouvez aussi désactiver ça
Citation:
=> Compacter la base de données
__________________
Alexandre Chemla - Consultant MS BI chez Masao
Jinroh77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h05.


 
 
 
 
Partenaires

Hébergement Web