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 :

Logs TempDB ne font que grossir


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 69
    Par défaut Logs TempDB ne font que grossir
    Bonjour,

    Sur une instance SQL Server, j'ai les logs de la TempDB qui ne font que grossir alors que le mode de récupération de cette base est en simple.
    Par contre quand les services SQL sont redémarrés, les logs sont bien réinitialisés.

    Cordialement.

  2. #2
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    Sur une instance SQL Server, j'ai les logs de la TempDB qui ne font que grossir alors que le mode de récupération de cette base est en simple.
    Cela ne supprime pas l'utilisation du journal!!! heureusement!
    cela ne fait que minimiser ses entrées.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 69
    Par défaut
    Pourtant comme la base Tempdb est en récupération simple, toutes les transactions terminées doivent automatiquement être supprimées.
    Est-ce bien ça ?
    Merci de votre réponse.

    Cordialement.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Par défaut
    Il faut vérifier s'il n'y a pas de transactions ouvertes dans tempdb en utilisant des vues comme sys.dm_tran_database_transactions / sys.dm_tran_session_transactions ou dbcc opentran(tempdb):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select T.session_id, D.database_transaction_begin_time, D.database_transaction_state, 
    D.database_transaction_log_record_count, D.database_transaction_log_bytes_used
    , D.database_transaction_begin_lsn, D.database_transaction_last_lsn from sys.dm_tran_database_transactions D
    inner join sys.dm_tran_session_transactions T on T.transaction_id = D.transaction_id 
    where database_transaction_begin_time is not null and database_id=2
    La valeur à surveiller est database_transaction_state:

    1 = The transaction has not been initialized.
    3 = The transaction has been initialized but has not generated any log records.
    4 = The transaction has generated log records.
    5 = The transaction has been prepared.
    10 = The transaction has been committed.
    11 = The transaction has been rolled back.
    12 = The transaction is being committed. In this state the log record is being generated, but it has not been materialized or persisted.

    Si la transaction est ouverte, database_transaction_state est à 4. database_transaction_log_bytes_used donne l'espace utilisé dans le journal pour cette transaction.

  5. #5
    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
    Tout comme dbaffaleuf je pense qu'une transaction est ouverte et empêche le journal de se vider.

    ++

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 69
    Par défaut
    J'ai lancé la requête sur la base tempdb mais je n'ai aucune ligne de retournée.

    Cordialement.

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par mb10 Voir le message
    Bonjour,

    Sur une instance SQL Server, j'ai les logs de la TempDB qui ne font que grossir alors que le mode de récupération de cette base est en simple.
    Par contre quand les services SQL sont redémarrés, les logs sont bien réinitialisés.

    Cordialement.
    Normal qu'ils soient réinitialises car la base tempdb est supprimée et reconstruite à l'identique à chaque démarrage du serveur avec les paramètres initiaux

    Mais comment voyez vous (par quelle requête, IHM, mesure) que les logs ont grossit ???

    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/ * * * * *

  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
    Bonjour,

    - Faites-vous une utilisation massive des tables temporaires ?
    - Utilisez vous le niveau d'isolation de transaction SNAPSHOT ?

    @++

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 69
    Par défaut
    Réponse à la question de SQLPro :
    je lance la requête DBCC SQLPERF(LOGSPACE) tous les jours. Depuis le redémarrage des services SQL (le 05/04/11), le champ Log space used (%) ne fait qu'augmenter.
    Ce matin en lançant la requête, ce champ était à 65 %.

    Réponse à la question d'Elsuket :
    Je ne sais pas comment vérifier ça.

    Cordialement.

  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 les tables temporaires, comme elles sont persistées dans TempDB, on peut exécuter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    USE TempDB
    GO
    SELECT	COUNT(*)
    FROM	sys.tables
    Vous pouvez aussi chercher dans le code des modules SQL (sys.sql_module) s'il existe des variables de type TABLE (DECLARE @maTable TABLE) ou des tables temporaires (CREATE TABLE (#)#maTable).

    Pour le niveau d'isolation de transaction snapshot, que vous retourne la requête suivante ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT	name
    	, is_read_committed_snapshot_on
    	, snapshot_isolation_state_desc
    FROM	sys.DATABASES
    WHERE	(
    		is_read_committed_snapshot_on = 1
    		OR snapshot_isolation_state_desc = 'ON'
    	)
    AND	source_database_id IS NULL
    AND	name NOT IN ('master', 'msdb')
    Savez-vous si des transactions sont exécutées sous le niveau d'isolation de transaction SERIALIZABLE ?

    @++

  11. #11
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par mb10 Voir le message
    Réponse à la question de SQLPro :
    je lance la requête DBCC SQLPERF(LOGSPACE) tous les jours. Depuis le redémarrage des services SQL (le 05/04/11), le champ Log space used (%) ne fait qu'augmenter.
    Ce matin en lançant la requête, ce champ était à 65 %..
    un pourcentage n'est pas un volume.... 65% signifie que votre fichier qui fait par exemple 10 Mo est utilisé à 65% soit 6.5 Mo. Votre fichier reste donc toujours à la même taille.

    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/ * * * * *

  12. #12
    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
    Citation Envoyé par mb10
    DBCC SQLPERF(LOGSPACE) donne le résultat suivant :
    Database Name | Log Size (MB) | Log Space Used (%) | Status
    tempdb | 39999,99 | 64,41029 | 0
    Son fichier du journal des transactions de TempDB approche donc les 40GB, et au moment où il a exécuté la requête, presque 26GB étaient occupés

    @++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 23/04/2013, 15h22
  2. Réponses: 1
    Dernier message: 30/04/2009, 14h32
  3. Erreur taille log TEMPDB sur requête SELECT TOP ....
    Par FMJ dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/10/2008, 17h08
  4. Réponses: 20
    Dernier message: 18/10/2006, 16h09
  5. fichiers log qui ne font qu'augmenter
    Par dngaya dans le forum DB2
    Réponses: 1
    Dernier message: 26/09/2006, 13h16

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