Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/05/2011, 09h49   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 56
Points : 12
Points : 12
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.
mb10 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 11/05/2011, 11h14   #2
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
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 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
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.
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 11h23   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 56
Points : 12
Points : 12
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.
mb10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 12h01   #4
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
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 :
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.
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 12h12   #5
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Tout comme dbaffaleuf je pense qu'une transaction est ouverte et empêche le journal de se vider.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 13h53   #6
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 56
Points : 12
Points : 12
J'ai lancé la requête sur la base tempdb mais je n'ai aucune ligne de retournée.

Cordialement.
mb10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 13h58   #7
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Que donne la requête :

Que retourne la requête

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 15h44   #8
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 56
Points : 12
Points : 12
DBCC OPENTRAN ne trouve aucune transaction

DBCC SQLPERF(LOGSPACE) donne le résultat suivant :
Database Name | Log Size (MB) | Log Space Used (%) | Status
tempdb | 39999,99 | 64,41029 | 0

le "log space used (%)" ne fait qu'augmenter. Ce n'est qu'après redémarrage des services sql que cette valeur rechute.

Cordialement.
mb10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 16h50   #9
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
-> DBCC OPENTRAN(tempdb)

sans option il cherche dans la base courante. Dans quelle version de SQL Server es-tu ?
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 16h56   #10
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 56
Points : 12
Points : 12
DBCC OPENTRAN(tempdb) ne ramène aucun résultat

La version de SQL Server est SQL Server 2008 Entreprise SP1

Cordialement.
mb10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 17h26   #11
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
Est-ce que tu peux nous mettre dans un fichier attaché le résultat d'un :

Code :
1
2
3
4
USE tempdb
GO
SELECT top 4000 * FROM fn_dblog(NULL, NULL)
GO
qu'on voit ce qu'il y a dans ce journal

merci,
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 18h03   #12
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 56
Points : 12
Points : 12
Je n'ai pu mettre que les 1430 premières lignes.

Cordialement.
Fichiers attachés
Type de fichier : zip resultat_fn_dblog1.zip (497,0 Ko, 4 affichages)
mb10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 18h38   #13
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
OK les transactions sont toutes validées ce qui explique pourquoi les requêtes précédentes ne renvoient rien. Que renvoie par contre:

Code :
SELECT name, log_reuse_wait_desc FROM sys.DATABASES WHERE database_id=2
merci,
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 11h26   #14
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 56
Points : 12
Points : 12
La requête renvoie le résultat suivant :

name | log_reuse_wait_desc
tempdb | NOTHING

Cordialement.
mb10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 11h35   #15
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 12h12   #16
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 667
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

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

Informations forums :
Inscription : janvier 2005
Messages : 4 667
Points : 8 715
Points : 8 715
Bonjour,

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

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 14h09   #17
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 56
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 56
Points : 12
Points : 12
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.
mb10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 15h00   #18
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 667
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

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

Informations forums :
Inscription : janvier 2005
Messages : 4 667
Points : 8 715
Points : 8 715
Pour les tables temporaires, comme elles sont persistées dans TempDB, on peut exécuter :

Code :
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 :
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 ?

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 15h07   #19
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
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
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 15h14   #20
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 667
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

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

Informations forums :
Inscription : janvier 2005
Messages : 4 667
Points : 8 715
Points : 8 715
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

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h48.


 
 
 
 
Partenaires

Hébergement Web