Le titre « réduire la taille d’un tablespace Oracle » est légèrement erroné car il s’agit ici de réduire la taille des fichiers de données qui constituent un tablespace. Après avoir réduit la taille d’une base de données, supprimé un utilisateur Oracle ou d’avoir simplement fait du ménage dans la BDD, on voit que le tablespace Oracle est moins volumineux mais on ne récupère aucun Go d’espace disque sur le serveur. Ce tutoriel explique comment vider un tablespace pour gagner de l’espace disque dur sur la machine qui héberge le serveur SGBD. Nous allons redimensionner (resize ou purge) la taille des fichiers de données DBF qui constituent les tablespaces.
L’exemple d’utilisation est celle d’un environnement Windows Server. Cette procédure fonctionne sur les serveurs Oracle 10g, 11g et 12c.
Réduire la taille des fichiers d’un tablespace Oracle
1. Ouvrir une session SQL Plus, par exemple via un Invite de commandes cmd et en tapant : sqlplus / as sysdba
2. Taper la commande suivante, en adaptant le chemin du fichier DBF et en précisant une autre taille de redimensionnement.
alter database datafile ‘D:\oracle\oradata\orcl\USERS01.DBF’ resize 100M ;
Explication : on indique une nouvelle taille au fichier de tablespace ; le faire pour chaque fichier USERS01.DBF, 02, 03… ou pour un autre nom de fichier.
Erreur ORA-03297
Si ce message est affiché :
ERREUR Ó la ligne 1 :
ORA-03297: le fichier contient des donnÚes utilisÚes au-delÓ de la valeur RESIZE requise
C’est qu’il faut indiquer une taille supérieure de resize (par exemple 1000M au lieu de 100M) pour avoir le message « Base de données modifiée » comme dans l’exemple de ce tuto.