ExpertSGBD

Oracle : supprimer et recréer le tablespace Temp

Le SGBD Oracle fonctionne avec des tablespaces et les requêtes sont généralement effectuées en mémoire (PGA), sauf si celle-ci est insuffisante en taille. Oracle utilisera alors le TEMPORARY TABLESPACE nommé TEMP par défaut, avec le fichier TEMP01.DBF localisé au même endroit que les tablespaces USERS, SYSTEM, etc. S’il est créé par défaut avec une instance Oracle, le tablespace temporaire TEMP est plus que conseillé pour améliorer le temps de réponse des requêtes et pour ne pas utiliser le tbs SYSTEM.

Pour différentes raisons, que ce soit pour résoudre un problème, faire un test ou s’assurer d’avoir vidé le tablespace TEMP, on peut vouloir supprimer le tablespace temporaire TEMP et recréer un nouveau fichier DBF. Cela va donc créer un fichier vierge, sans rien dedans. Ce tutoriel fonctionne aussi pour déplacer le tablespace temp sur un autre disque ou une autre partition du serveur, pour par exemple bénéficier d’un stockage rapide SSD ou SAS au lieu d’un simple disque SATA. Cette méthode fonctionne avec toutes les versions de Oracle 12, 11g, 10g, 9i.

Mais cette méthode de bourrin n’est pas prévue pour un environnement de production. En cas de problème avec le tbs tmp en prod, il faut chercher à comprendre pourquoi Oracle consomme du tablespace temporaire, vérifier s’il n’y a pas des tris (ORDER BY, GROUP BY, UNION, DISTINCT…) qui tournent en boucle ou sans raison. On peut aussi créer différents fichiers TEMP pour affiner la consommation de la mémoire tampon du SGBD.

 

Supprimer le tablespace temporaire TEMP

Cette commande va supprimer le fichier TEMP01.DBF qui compose le tablespace temporaire. Chemin et nom de fichier à adapter selon la configuration Oracle, sur Windows ou Linux.

ALTER DATABASE TEMPFILE 'D:\oracle\oradata\orcl\TEMP01.dbf' DROP INCLUDING DATAFILES;

 

Créer un nouveau tablespace temporaire TEMP

Commande pour recréer un nouveau fichier DBF pour le tablespace TEMP, ici avec une taille initiale de 1Go et en autorisant l’auto-extension du fichier, par défaut jusqu’à 32Go.

ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\oracle\oradata\orcl\TEMP01.dbf' SIZE 1000M REUSE AUTOEXTEND ON;

On peut limiter la taille maximale du fichier TEMP.DBF avec l’option « MAXSIZE 5000M » avant le point virgule.

Là aussi, il faut adapter le chemin pour stocker le fichier avec les autres tbs du serveur Oracle ou au contraire sur un disque dédié afin d’améliorer les performances du serveur.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page