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

MS SQL Server Discussion :

Comment régler le problème de transaction log plein ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut Comment régler le problème de transaction log plein ?
    Bonjour,

    comme probablement tous les DBA SQL sur cette terre, ça m'agace prodigieusement d'avoir une erreur aussi bête que "transaction log is full".

    J'essaye donc de trouver des solutions sachant que j'ai pas nécessairement du disque à foison (en fait si mais je veux être plus intelligent que mettre 100 Go pour une base de 100 Mo backupée 3 fois par jour ) et que j'ai pas toutes mes nuits et week-ends à passer sur le monitoring pour savoir si j'ai un souci de backup et/ou de journal de transactions.

    J'avais donc pensé créer un deuxième fichier log et envoyer une alerte quand le premier se rempli, me laissant le temps de régler le problème tranquillement et réduire ensuite sereinement la taille du 2eme fichier log. Sauf que visiblement, si on a 2 fichiers logs cette idiot de SQL Server qui veut absolument optimiser les perfs parallélise les écritures. C'est parfait quand on s'inquiète des perfs mais pour le coup ça m'aide pas moi

    Trève de plaisanterie, y a-t-il une autre manière de gérer le souci de fichier log plein que de le déplacer sur un disque plus gros à chaque fois qu'il le fait exploser ? Y a-t-il moyen de forcer l'utilisation séquentielle des fichiers (quand le 1er est plein, il utilise le deuxième et pas avant) ?

    Merci de votre aide

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    1) tu peut faire un BACKUP LOG ... WITH TRUNCATE ONLY (plus supporté en 2008
    2) tu peut mettre une alerte de l'agent si le pourcentage de remplissage du JT est supérieur à x% de la taille prédéfinie du JT. Par exemple tu le taille à 100 Go et tu met une alerte à 80
    3) tu peut automatiser l'alerte pour quelle exécute une tache de sauvegarde du JT
    4) pour passer d'un fichier à l'autre il faut fermer la base ou re démarrer l'instance (je ne sais plus, à tester) Il ne //lélise pas sur le JT !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  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
    Bonsoir orafrance,

    Sauf que visiblement, si on a 2 fichiers logs cette idiot de SQL Server qui veut absolument optimiser les perfs parallélise les écritures.
    Les enregistrements dans le journal s'effectuent de manière séquentielle. Cela m'étonnerait que SQL Server parallélise les écritures sur ce genre de fichier.

    ++

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Les enregistrements dans le journal s'effectuent de manière séquentielle. Cela m'étonnerait que SQL Server parallélise les écritures sur ce genre de fichier.
    j'ai fait le test, et il parallélise bien les écritures. Visiblement, il écrit un coup dans l'un, un coup dans l'autre. Et évidemment, jamais il ne rempli le premier (qui serait sans autogrow pour déclencher une alerte).

  5. #5
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    1) tu peut faire un BACKUP LOG ... WITH TRUNCATE ONLY (plus supporté en 2008
    2) tu peut mettre une alerte de l'agent si le pourcentage de remplissage du JT est supérieur à x% de la taille prédéfinie du JT. Par exemple tu le taille à 100 Go et tu met une alerte à 80
    3) tu peut automatiser l'alerte pour quelle exécute une tache de sauvegarde du JT
    4) pour passer d'un fichier à l'autre il faut fermer la base ou re démarrer l'instance (je ne sais plus, à tester) Il ne //lélise pas sur le JT !

    A +
    1) c'est pas terrible pour les backups et en mirroir c'est carrément pas possible
    2) sauf que j'ai plusieurs fichiers sur le même disque et une telle alerte ne saurait régler le souci (tu peux avoir 10 fichiers à 50% mais le dur qui est plein)
    3) oui mais si le log se rempli c'est souvent parce que le backup ne fonctionne pas justement. Et un faire un backup local ça ne m'arrange pas pour la gestion de DPM
    4) pas possible d'arrêter l'instance

Discussions similaires

  1. Comment régler ce problème avec PWideChar ?
    Par [ZiP] dans le forum Débuter
    Réponses: 2
    Dernier message: 08/03/2011, 10h58
  2. comment faire pour régler le problème des fonts
    Par nkkin dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 27/03/2010, 21h36
  3. 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, 15h42
  4. [C++> C#]Comment régler problème de type TCHAR*/string ?
    Par fkerbourch dans le forum C++/CLI
    Réponses: 6
    Dernier message: 10/03/2006, 09h08
  5. [REDO LOG] Comment vider le journal de transaction
    Par vsavoir dans le forum Oracle
    Réponses: 4
    Dernier message: 02/01/2006, 23h27

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