[Débutant] Fichier de tempDB plein - Impossible de réduire

Le
Laurent
Bonjour,

j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été
lancées. Résultat, elles ont planté par manque de place sur le disque
(fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur al
partition système ce qui fait chuter fortement les performances générale.

J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des fichiers
de tempDB (shrink) mais ils restent à 5 Go.

J'ai alors créer un autre fichier de données sur une partition avec beaucoup
de place, et j'ai voulu transferer les données du premier fichier vers le
second. Mais là, il ferme la fenêtre sans rien faire : même pas un message
d'erreur.

je suis revenu sur ce serveur le lendemain, la taille de tempdb était
toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de
donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se passe
rien : juste la fenêtre qui se ferme.

Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8 Mo
au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer la
fenêtre.

Que faire ?

Merci d'avance de vos réponses
Laurent
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
bruno reiter
Le #11839131
utilises DBCC SHRINKFILE dans l'analyseur de requete (voir aide)

br

"Laurent" news:4614dc28$0$25795$
Bonjour,

j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été
lancées. Résultat, elles ont planté par manque de place sur le disque
(fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur
al partition système ce qui fait chuter fortement les performances
générale.

J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des
fichiers de tempDB (shrink) mais ils restent à 5 Go.

J'ai alors créer un autre fichier de données sur une partition avec
beaucoup de place, et j'ai voulu transferer les données du premier fichier
vers le second. Mais là, il ferme la fenêtre sans rien faire : même pas un
message d'erreur.

je suis revenu sur ce serveur le lendemain, la taille de tempdb était
toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de
donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se
passe rien : juste la fenêtre qui se ferme.

Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8
Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer la
fenêtre.

Que faire ?

Merci d'avance de vos réponses
Laurent



Laurent
Le #11839071
Mais justement, c'est ce que j'ai fait après avoir vu l'échec de
"l'assistant" de SQL server managment studio. Mais cela ne change rien

mon fichier fait toujours 5 Go sur le disque alors que l'espace alloué est
de 8 Mo......quand je regarde els propeiétés de la BDD.


"bruno reiter" news:
utilises DBCC SHRINKFILE dans l'analyseur de requete (voir aide)

br

"Laurent" news:4614dc28$0$25795$
Bonjour,

j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été
lancées. Résultat, elles ont planté par manque de place sur le disque
(fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place sur
al partition système ce qui fait chuter fortement les performances
générale.

J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des
fichiers de tempDB (shrink) mais ils restent à 5 Go.

J'ai alors créer un autre fichier de données sur une partition avec
beaucoup de place, et j'ai voulu transferer les données du premier
fichier vers le second. Mais là, il ferme la fenêtre sans rien faire :
même pas un message d'erreur.

je suis revenu sur ce serveur le lendemain, la taille de tempdb était
toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de
donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se
passe rien : juste la fenêtre qui se ferme.

Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8
Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer
la fenêtre.

Que faire ?

Merci d'avance de vos réponses
Laurent






Laurent
Le #11839051
Bon, j'ai fini par redémarrer le serveur etlà, oh miracle, la taille du
fichier est repassé à Mo.

Donc plus de pbm.

Ceci dit, si quelqu'un à une explication je suis preneur. L'informatique
c'est pas magique et j'aimerai bien comprendre ce quioi se passait.

Laurent

"Laurent" 46155a70$0$15541$
Mais justement, c'est ce que j'ai fait après avoir vu l'échec de
"l'assistant" de SQL server managment studio. Mais cela ne change rien

mon fichier fait toujours 5 Go sur le disque alors que l'espace alloué est
de 8 Mo......quand je regarde els propeiétés de la BDD.


"bruno reiter" news:
utilises DBCC SHRINKFILE dans l'analyseur de requete (voir aide)

br

"Laurent" news:4614dc28$0$25795$
Bonjour,

j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été
lancées. Résultat, elles ont planté par manque de place sur le disque
(fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place
sur al partition système ce qui fait chuter fortement les performances
générale.

J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des
fichiers de tempDB (shrink) mais ils restent à 5 Go.

J'ai alors créer un autre fichier de données sur une partition avec
beaucoup de place, et j'ai voulu transferer les données du premier
fichier vers le second. Mais là, il ferme la fenêtre sans rien faire :
même pas un message d'erreur.

je suis revenu sur ce serveur le lendemain, la taille de tempdb était
toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de
donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se
passe rien : juste la fenêtre qui se ferme.

Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8
Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer
la fenêtre.

Que faire ?

Merci d'avance de vos réponses
Laurent










Fred BROUARD
Le #11838771
Bonjour,

comme vous le dite l'informatique c'est pas mqgique...

Alors expliquons !

Laurent a écrit :
Bon, j'ai fini par redémarrer le serveur etlà, oh miracle, la taille du
fichier est repassé à Mo.

Donc plus de pbm.

Ceci dit, si quelqu'un à une explication je suis preneur. L'informatique
c'est pas magique et j'aimerai bien comprendre ce quioi se passait.

Laurent




[...]


j'ai une serveur (sql2005) sur lequel des requêtes SQL lourdes ont été
lancées. Résultat, elles ont planté par manque de place sur le disque
(fichier de donnée de 5 Go). du coup, il n'y a plus non plus de place
sur al partition système ce qui fait chuter fortement les performances
générale.









Dans mon cours d'optimisation dispensé à Orsys notamment, vous
apprendrez qu'il ne faut jamais dépasser un taux d'occupation de l'ordre
de 2/3 soit 67% au risque de voir se dégrader singulièrement les
performances.

Pour arriver à cela il faut prendre en considération de nombreux éléments :
1) calculer la taille à terme de la base de données, par exemple sur 3
années d'exploitation et dimensionner les fichiers de données, comme
ceux du journal à cette taille
2) répartir les différents fichiers de données, journaux et autres bases
sur différents agrégats RAID physiques
3) donner une taille fixe à tempdb
4) minimiser l'usage de la base temps db par exemple en :
a) n'utilisant jamais de tables temporaires
b) en évitant le niveau d'isoaltion snapshot
c) en écrivant des requêtes qui évitent les "worktable"



J'ai stoppé toutes ces requêtes et j'ai voulu réduire la taille des
fichiers de tempDB (shrink) mais ils restent à 5 Go.









C'est normal, c'est une sécurité. La rédcation des fichiers d'une base
ne peut se faire qu'après une sauvegarde du journal de transaction. En
effet, la sauvegarde dudit journal permet une reprise sur erreur avec
une précision d'une minute.



J'ai alors créer un autre fichier de données sur une partition avec
beaucoup de place, et j'ai voulu transferer les données du premier
fichier vers le second. Mais là, il ferme la fenêtre sans rien faire :
même pas un message d'erreur.









On ne peut pas transférer le contenu d'un fichier de journal de
transaction. On peut le faire avec un fichier de données, à condition de
maîtriser le contenu dudit fichier. C'est d'ailleur un exercice que je
donne dans mon cours à Orsys



je suis revenu sur ce serveur le lendemain, la taille de tempdb était
toujours de 5 Go mais quand je vais dans la fenêtre réduire la base de
donéne j'ai 99% d'espace disponible. Quanbd je fait réduire, il ne se
passe rien : juste la fenêtre qui se ferme.









Encore une fois : la réduction des fichiers d'une base ne peut se faire
qu'après une sauvegarde du journal de transaction.



Quand je vais dans réduire les fichiers, l'espace alloué est annoncé à 8
Mo au lieu des 5 Go et là aussi la réduction ne fait rien à part fermer
la fenêtre.









Les données affichées ne sont pas "synchrones". Vous pouvez les rendre
synchrone en effectuant une manoeuvre de type UPDATEUSAGE



Que faire ?









Vous l'avez constaté, en arrêtant SQL Server cela a réduit la taille de
base.... Quel est ce mystère ?
Simplement parce que la base de données tempdb est reconstruite à chaque
démarrage de SQL Server avec ses paramètres d'origine.


A NOTER : parmi les tâches du DBA, celui de la surveillance des espaces
de stockage est l'un des plus important.

A +



Merci d'avance de vos réponses
Laurent














--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Publicité
Poster une réponse
Anonyme