IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

suppression log sql server 2008


Sujet :

Administration SQL Server

  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    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

  2. #2
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    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.

  3. #3
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    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 ?

    ++

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    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é ?

  5. #5
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    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.

  6. #6
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    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.

    ++

  7. #7
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    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 ?

  8. #8
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    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.

    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.

    ++

  9. #9
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    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 ?

  10. #10
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    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 ?

    ++

  11. #11
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    => 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.

  12. #12
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    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.

  13. #13
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    @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 >

    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.

    ++

  14. #14
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    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.

  15. #15
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    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.

    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 ...

    ++

  16. #16
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    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é ?

  17. #17
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    Passage de la base en mode SIMPLE.
    Réalisation d'une maintenance avec une sauvegarde complète la nuit.

  18. #18
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    donc à part ce que je faisais auparavant, je dois simplement mettre la base en mode simple ?

  19. #19
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    Oui.
    Mais vous pouvez aussi désactiver ça
    => Compacter la base de données

Discussions similaires

  1. [2014] Question sur config swap sur 2008 R2 + purge logs Sql Server
    Par droliprane dans le forum Administration
    Réponses: 1
    Dernier message: 10/06/2015, 19h30
  2. [2008] Réduire la taille des fichiers LOG SQL SERVER 2008
    Par hunyka dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 19/09/2014, 13h38
  3. [SQL SERVER 2008 EXPRESS] - Log Shipping
    Par koala59230 dans le forum Réplications
    Réponses: 0
    Dernier message: 29/06/2009, 09h43
  4. logs SQL server
    Par will2taz dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/06/2007, 14h02
  5. Log Sql Server
    Par YOYOVbSQL dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 01/09/2004, 11h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo