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 :

Transaction log full en mode RECOVERY SIMPLE!


Sujet :

Administration SQL Server

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Transaction log full en mode RECOVERY SIMPLE!
    Bonjour,

    Dans mon logiciel d'entreprise SAP FI avec BDD SQLServer, lors d'une opération (copie distante de mandant), j'obtiens dans la log une erreur:
    The transaction log for database 'SID' is full due to 'ACTIVE_TRANSACTION'.

    Or Je viens de vérifier par la console SQLServer. Il m’apparait que la base est en mode SIMPLE (résultat de la requête select DATABASEPROPERTYEX('SID','RECOVERY'))
    Donc pour moi cette base n’utiliserait pas de fichier de transaction. Elle a pu être par le passé (2009) en mode FULL mais plus à présent.
    Ces fichiers de logs sont sauvegardés chaque 20mn dans un répertoire et la dernière date de ce matin.
    De plus au niveau de SQLServer, j’ai défini une alerte sur le fichier de logs*:avec un envoi de mél pour faire un shrink de la BDD si la taille du fichier de log excède 8500000.
    Et sa dernière notification de dépassement de la taille du fichier remonte au 10/12/15.
    Je ne sais plus trop quoi penser de cette erreur. Pouvez-vous m'aider svp?
    Merci.

    Titouan

  2. #2
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 815
    Points : 1 350
    Points
    1 350
    Billets dans le blog
    2
    Par défaut
    Vérifier si vous avez des transactions qui sont toujours ouverts

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select name,log_reuse_wait_desc from sys.databases

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Bon finalement pas mal de conneries dans mon post précédent: il n'y a pas de sauvegarde des fichiers de journalisation (j'ai confondu avec la prod).
    Sur http://blog.capdata.fr/index.php/how...ns-sur-disque/
    Je lis que que dans le mode recovery SIMPLE: les transactions validées sont purgées du journal à intervalles réguliers par un processus d’arrière plan, le CHECKPOINT.
    Est-ce un service windows, un job SQLServer svp?
    Bref comment s'assurer qu'il "tourne"?
    Merci.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Bonjour, Merci de me répondre:
    Citation Envoyé par abdallah_mehdoini Voir le message
    Vérifier si vous avez des transactions qui sont toujours ouverts

    No active open transactions.
    DBCC execution completed. If DBCC printed error messages, contact your system administrator.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select name,log_reuse_wait_desc from sys.databases
    NOTHING

    Je viens de lancer un checkpoint
    GO
    Mais mon fichier de log reste désespérément gros (8Go) et sa dernière date de modif est à octobre 2016.
    Le checkpoint ne semble pas avoir marché....

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    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 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par teetee75 Voir le message
    Or Je viens de vérifier par la console SQLServer. Il m’apparait que la base est en mode SIMPLE (résultat de la requête select DATABASEPROPERTYEX('SID','RECOVERY'))
    Donc pour moi cette base n’utiliserait pas de fichier de transaction.
    Détrompez vous, une base utilise TOUJOURS un journal de transaction pour toutes les mises à jours, y compris BULK LOAD, TRUNCATE et commandes DDL. Le paramétrage de la journalisation en mode SIMPLE ne fait que minimiser certaines entrées et purger le journal des transactions validées qui ont fait l'objet d'un enregistrement des données.
    ...
    Ces fichiers de logs sont sauvegardés chaque 20mn dans un répertoire et la dernière date de ce matin.
    Si vous êtes en mode de journalisation SIMPLE il est impossible de sauvegarder les journaus de transactions pudqisqu'ils sont auto purgés. La sauvegarde des JT ayant la particularité de purger le journal (en sus de faire la sauvegarde).
    De plus au niveau de SQLServer, j’ai défini une alerte sur le fichier de logs*:avec un envoi de mél pour faire un shrink de la BDD si la taille du fichier de log excède 8500000.
    Faire un SHRINK ne sert à rien si le journal n'est pas purgé !

    Et sa dernière notification de dépassement de la taille du fichier remonte au 10/12/15.
    Je ne sais plus trop quoi penser de cette erreur.
    La première des chose serait de se former car là vous mélangez tout et n'importe quoi et bricolez le serveur sans comprendre ce que vous faites en tentant n'importe quelle manœuvre sans discernement !
    Heureusement que SQL Server est un des SGBDR les plus robuste et les plus résilient !
    Pouvez-vous m'aider svp?
    Commençons par le commenceent :
    1) quelle version/édition de SQL Server
    2) quelle est le nom de la base cible ?
    3) lancez la requête suivante dans le contexte de la base master :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT name, recovery_model_desc
    FROM sys.databases;
    4) lancez la commande DBCC OPENTRAN das le contexte de la base cible
    5) donnez nous le code de votre tâche planifiée qui sauvegarde les 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/ * * * * *

Discussions similaires

  1. [2008R2] Question Log en Mode Recovery Simple
    Par agdid04 dans le forum Administration
    Réponses: 8
    Dernier message: 21/11/2016, 09h09
  2. Grossissement d'un transaction log en mode de recup simple
    Par Liloye dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/04/2010, 08h58
  3. Transaction log for database is full, and then.
    Par TCW78 dans le forum Administration
    Réponses: 2
    Dernier message: 25/08/2008, 21h32
  4. [ASE 12.5.3] transaction log in database tempdb is almost full
    Par dngaya dans le forum Adaptive Server Enterprise
    Réponses: 2
    Dernier message: 20/12/2007, 15h18
  5. Réponses: 2
    Dernier message: 19/05/2006, 11h11

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