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 :

Problème purge journaux de transaction


Sujet :

Administration SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut Problème purge journaux de transaction
    Bonjour,

    Je travaille avec une base de donnée sous SQL SERVER 2000 dont voici les propriétés :
    - 40 Go pour les données
    - 20 Go pour les index
    - 30 Go pour le journal de transaction

    Ce journal de transaction est sauvegardé toutes les nuits à 4h00, seulement celui-ci n'est pas purgé je m'explique :
    Le matin avant la sauvegarde la taille occupé réellement est de 15Go,
    Le matin à 8h celui-ci fait encore 18Go et impossible d'avoir 18Go de log en 4h au vu de l'activité du site et des traitements qui sont effectués sur la base.

    Ce que je trouve aussi bizarre c'est que le journal de transaction ne grossis pas indéfiniment, donc il doit y avoir une purge de faite régulièrement sur les transactions obsolètes mais je n'arrive pas à trouver d'information à ce sujet.

    La purge du journal de transaction ce fait bien juste après sa sauvegarde logiquement ?


    2ème question Pour une autre base de donnée :
    - 3 Go pour les données
    - 3 Go pour les index
    - 9 Go pour le journal de transaction

    Du jour au lendemain sans faire de DBCC SHRINKFILE la taille alloué du journal de transaction est passé de 9Go à 3,5Go. Je précise que la taille occupé par les logs du journal n'était que de quelques Mo.

    Est ce que vous avez une explication parce que la je sèche complètement?

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    La purge du journal de transaction ce fait bien juste après sa sauvegarde logiquement ?
    C'est la cas si votre base de données est en mode de restauration complète.

    Du jour au lendemain sans faire de DBCC SHRINKFILE la taille alloué du journal de transaction est passé de 9Go à 3,5Go. Je précise que la taille occupé par les logs du journal n'était que de quelques Mo.
    Les fichiers de base de données ne réduisent pas de taille tout seul.
    N'y aurait-il pas une tâche de réduction de la base de données (plan de maintenance par exemple ?)

    @++

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut
    C'est la cas si votre base de données est en mode de restauration complète.
    Ma base de donnée est bien en restauration complète je viens de vérifier
    La taille du journal de transaction ne peut pas influer sur sa purge ?

    N'y aurait-il pas une tâche de réduction de la base de données (plan de maintenance par exemple ?)
    Non c'est une toute nouvelle base je l'ai créer hier et ce matin le journal est passé de 9Go à 3,5Go, la base est aussi en mode restauration complète.
    Les seuls plans de maintenance qui sont effectués sur cette base sont la sauvegarde des données et du journal de transaction.

    Je suis sur qu'il doit y avoir une explication mais je ne l'explique pas car il n'y a que moi qui ai accès à cette base et je n'ai pas lancé de réduction du fichier en question.

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    La taille du journal de transaction ne peut pas influer sur sa purge ?
    Absolument pas.

    Je ne vois pas non plus ce qui aurait pu causer une réduction de la taille physique du journal de transactions, les opérations de réduction ne pouvant être programmées que manuellement dans du code ou bien dans un plan de maintenance.
    Il reste cependant l'option AUTO_SHRINK (réduction automatique) qui peut être activée.
    Vous pouvez le savoir en exécutant la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    SELECT name,
    		CASE status
    			WHEN 1 THEN 'AUTO_CLOSE'
    			WHEN 4 THEN 'SELECT INTO/BULKCOPY'
    			WHEN 8 THEN 'CHECKPOINT'
    			WHEN 16 THEN 'TORN PAGE DETECTION'
    			WHEN 24 THEN 'TRUNC. LOG ON CHKPT + TORN PAGE DETECTION'
    			WHEN 28 THEN 'SELECT INTO/BULKCOPY + TRUNC. LOG ON CHKPT + TORN PAGE DETECTION'
    			WHEN 32 THEN 'LOADING'
    			WHEN 64 THEN 'PRE-RECOVERY'
    			WHEN 128 THEN 'RECOVERING'
    			WHEN 256 THEN 'NOT RECOVERED'
    			WHEN 320 THEN 'NOT RECOVERED + PRE RECOVERY = SUSPECT'
    			WHEN 512 THEN 'OFFLINE'
    			WHEN 528 THEN 'OFFLINE + TORN PAGE DETECTION'
    			WHEN 1024 THEN 'READ_ONLY'
    			WHEN 2048 THEN 'dbo USE ONLY'
    			WHEN 4096 THEN 'SINGLE_USER'
    			WHEN 32768 THEN 'EMERGENCY'
    			WHEN 262144 THEN 'MISSING FILES'
    			WHEN 4194304 THEN 'AUTO_SHRINK'
    			WHEN 4194328 THEN 'AUTO_SHRINK + TRUNC. LOG ON CHKPT + TORN PAGE DETECTION'
    			WHEN 16777216 THEN 'AUTO_CREATE_STATISTICS'
    			WHEN 1073741824 THEN 'CLEANLY SHUTDOWN'
    			WHEN 1090519040 THEN 'AUTO_UPDATE_STATISTICS + AUTO_CREATE_STATISTICS'
    			WHEN 1073741840 THEN 'CLEANLY SHUTDOWN + TORN PAGE DETECTION'
    		END etat
    FROM master.dbo.sysdatabases
    WHERE name NOT IN ('master', 'msdb', 'model','distribution', 'ReportServer', 'ReportServerTempDB', 'pubs')
    @++

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut
    Pour commencer merci pour tes réponses elsuket.

    Je continue de chercher pour l'histoire du journal de transaction qui ne se flush pas.

    Pour ce qui est du journal de transaction qui s'est réduit sans prévenir, j'ai exécuté ta requête et celle-ci m'as renvoyé ceci : TORN PAGE DETECTION.
    Donc je suppose que cela veut dire qu'elle n'est pas en AUTO-SHRINK.

  6. #6
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Donc je suppose que cela veut dire qu'elle n'est pas en AUTO-SHRINK.
    Je confirme

    @++

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 139
    Par défaut
    Bonjour,

    Perso, j'utiliserais bien le Perfmon pour monitorer le comportement du journal de transaction de la base concernée...

    Notamment à l'aide des compteurs suivants :
    - SQLServer|Databases|Taille de fichier(s) journal(aux) utilisée (Ko)
    - SQLServer|Databases|Taille des fichiers journaux (Ko)

    Avec en test : Lancement manuel des sauvegardes de journaux...

    David.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut
    Bon finalement j'ai trouvé la source du problème.

    Le plan d'optimisation qui passe après la sauvegarde de la base et du journal de transaction historise un peu plus de 10Go suivant les jours dans le journal de transaction donc le problème vient de la.

    Est ce qu'il y aurait un moyen simple de pallier à ce problème ou ceci est logique pour garantir l'exactitude et la cohérence des données ?

    En tous cas merci de vos réponse.

  9. #9
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Vous pouvez programmer des sauvegardes plus régulières de votre journal de transaction, avec la commande BACKUP LOG.

    A la restauration, vous devrez :

    - effectuer une sauvegarde du journal de transaction courant,
    - restaurer le dernier backup complet avec l'option WITH NORECOVERY,
    - restaurer la dernière sauvegarde différentielle (si vous en faites), avec l'option WITH NORECOVERY,
    - restaurer les sauvegardes des journaux de transaction produits entre la dernière sauvegarde différentielle (si vous en faites) et l'heure du crash, dans l'ordre où ils ont été produits, ou bien depuis la dernière sauvegarde complète de votre BD, avec l'option WITH NORECOVERY,
    - restaurer la sauvegarde du journal de transactions que vous avez faite avant de commencer la restauration, avec l'option STOPAT, avec l'option WITH RECOVERY

    Bref, mieux vaut avoir le script de restauration déjà tout prêt et tout près

    @++

  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 : 47
    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
    Bonsoir,

    Pour compléter les propos d'elsuket, si votre plan d'optimisation comporte des opérations de réindexation (qui sont des opérations loggés dans le journal), vous pouvez limiter ceci en ne réindexant ou défragmentant que les indexes nécessaires.

    Vous pouvez également passer votre plan d'optimisation avant votre backup pour avoir vos journaux de transactions "vides" après toutes vos opérations.

    ++

Discussions similaires

  1. [DOCUMENTATIONS] Log et journaux de transactions
    Par Tchinkatchuk dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 31/03/2008, 16h22
  2. Problème de sauvegarde des journaux de transactions
    Par mazen_bn dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 20/06/2006, 17h26
  3. Journaux de transaction
    Par Fleming22 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/12/2005, 17h37
  4. sauvegarde des journaux de transactions
    Par gdebre dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/11/2005, 12h04
  5. Réduction des journaux de transaction
    Par gphilippe dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/05/2005, 16h11

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