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 :

Sql Server 2005 + journaux de transaction


Sujet :

Administration SQL Server

  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Par défaut Sql Server 2005 + journaux de transaction
    Bonjour,

    J'ai plusieurs bases Sql server 2005 en mode de récupération simple.
    Quelle est la meilleure méthode pour gérer une croissance conséquente des journaux de transaction ?

    Merci.

  2. #2
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    bonjour,
    vos journaux sont tronqués lors de chaque sauvgarde complète.
    sinon vous pouvez prendre le risque (déconseillé) de simplement tronquer vos journaux de transaction à l'aide de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BACKUP LOG maBase WITH TRUNCATE_ONLY;

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Par défaut
    Citation Envoyé par jero44 Voir le message
    bonjour,
    vos journaux sont tronqués lors de chaque sauvgarde complète.
    sinon vous pouvez prendre le risque (déconseillé) de simplement tronquer vos journaux de transaction à l'aide de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BACKUP LOG maBase WITH TRUNCATE_ONLY;
    Non, mes journaux de transaction ne sont pas tronqués lors de mes sauvegardes : mes bases sont en mode de récupération simple.

  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
    Exact, en mode de récupération simple, le journal est tronqué après chaque validation de transaction.
    Il y a plusieurs causes qui peuvent être à l'origine d'un retard de troncature, qui sont exposés sous SQL Server 2005 par la colonne log_reuse_wait_desc de la vue système sys.databases. Qu'obtenez-vous ?

    C'est en mode de récupération complète qu'il est nécessaire de sauvegarder le journal des transactions pour tronquer le journal

    @++

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Exact, en mode de récupération simple, le journal est tronqué après chaque validation de transaction.
    Il y a plusieurs causes qui peuvent être à l'origine d'un retard de troncature, qui sont exposés sous SQL Server 2005 par la colonne log_reuse_wait_desc de la vue système sys.databases. Qu'obtenez-vous ?

    C'est en mode de récupération complète qu'il est nécessaire de sauvegarder le journal des transactions pour tronquer le journal

    @++
    J'ai la valeur "NOTHING" pour toutes mes bases de données utilisateurs.
    Il y a eu de gros traitements qui ont tourné hier soir...
    Comment expliquer cette montée de taille des journaux ?

  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
    Il y a eu de gros traitements qui ont tourné hier soir...
    Comment expliquer cette montée de taille des journaux ?
    Lorsque vous exécutez une transaction, c'est à dire un SELECT, INSERT, UPDATE ou DELETE, SQL Server écrit dans le journal de transaction quelques informations plus les données qui ont été modifiées, de sorte qu'en cas de crash, il puisse refaire ou défaire une transaction qui n'aurait pas été validée.
    C'est ce qui permet d'assurer que la base de données reste dans un état cohérent et consistant.

    Donc lorsque vous faites des traitements qui entraînent une modification importante de données, SQL Server écrit beaucoup de données dans le journal de transaction.

    Dans le mode de récupération simple, il attend la fin de la transaction pour tronquer le journal, donc aussi longtemps que la transaction doit durer, votre journal n'est pas tronqué (si vous faites un UPDATE de cent mille lignes, SQL Server écrit d'abord dans le journal de transactions les données correspondant à la mise à jour de ces cent mille lignes, puis effectue la mise à jour de la table)

    Dès lors, si cela est nécessaire, le moteur de base de données fait grossir le journal des transaction s'il a été mal taillé (s'il avait été bien taillé au début, il n'aurait pas eu besoin de grossir, donc pas d'accès disque pour allouer des pages, donc un traitement plus rapide )

    @++

  7. #7
    Membre éclairé
    Inscrit en
    Novembre 2004
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 312
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Lorsque vous exécutez une transaction, c'est à dire un SELECT, INSERT, UPDATE ou DELETE, SQL Server écrit dans le journal de transaction quelques informations plus les données qui ont été modifiées, de sorte qu'en cas de crash, il puisse refaire ou défaire une transaction qui n'aurait pas été validée.
    C'est ce qui permet d'assurer que la base de données reste dans un état cohérent et consistant.

    Donc lorsque vous faites des traitements qui entraînent une modification importante de données, SQL Server écrit beaucoup de données dans le journal de transaction.

    Dans le mode de récupération simple, il attend la fin de la transaction pour tronquer le journal, donc aussi longtemps que la transaction doit durer, votre journal n'est pas tronqué (si vous faites un UPDATE de cent mille lignes, SQL Server écrit d'abord dans le journal de transactions les données correspondant à la mise à jour de ces cent mille lignes, puis effectue la mise à jour de la table)

    Dès lors, si cela est nécessaire, le moteur de base de données fait grossir le journal des transaction s'il a été mal taillé (s'il avait été bien taillé au début, il n'aurait pas eu besoin de grossir, donc pas d'accès disque pour allouer des pages, donc un traitement plus rapide )

    @++
    OK, mais si la transaction est terminée et que le journal des transaction ne diminue pas, est-ce normal ?

  8. #8
    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
    Non

    Essayez DBCC OPENTRAN pour voir s'il existe encore des transaction ouvertes.

    @++

  9. #9
    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,

    Si vous avez eu des gros traitements et que votre journal des transactions a grossi, il est normal que celui-ci fasse toujours la même taille après ces traitements.

    Comme l'explique Elsuket, avant de mettre à jour vos données, celui-ci écrit dans le journal. Si votre journal est mal dimensionné celui-ci va augmenter en taille. Une fois vos traitements terminées et vu que vous êtes en mode de récupération simple, après le prochain CHECKPOINT votre journal sera tronqué mais la taille sera toujours la même. Vous pouvez le voir avec un DBCC SQLPERF(LOGSPACE) qui vous indique la taille de votre journal et le % d'occupation de celui-ci (normalement le % sera proche de 0 de votre cas)

    Pour diminuer la taille de votre journal il faut utiliser la commande DBCC SHRINKFILE.

    ++

  10. #10
    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
    Pour diminuer la taille de votre journal il faut utiliser la commande DBCC SHRINKFILE.
    A réserver toutefois à de la maintenance d'urgence

    @++

Discussions similaires

  1. Réponses: 22
    Dernier message: 10/03/2009, 18h03
  2. Consulter les fichiers logs des transaction sur SQL Server 2005
    Par technopole dans le forum Administration
    Réponses: 2
    Dernier message: 17/09/2008, 20h24
  3. journal de transaction sql server 2005
    Par alicia26 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/09/2008, 18h19
  4. SQL Server 2005: Problème avec les transaction logs
    Par n8ken dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/03/2008, 16h42

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