Extension d'un tablespace Oracle

Connexion à la base de données

Pour se connecter à Oracle, on utilise le compte système oracle :

su - oracle

S’il y a plusieurs instance, on précise celle sur laquelle on veut se connecter, puis nous pouvons lancer le shell Oracle :

export ORACLE_SID=INSTANCE1
sqlplus / as sysdba

Augmentation de la taille d’un tablespace

Les données d’une base sont stockées dans un tablespace. Celui-ci peut contenir plusieurs datafiles. Les datafiles peuvent contenir au maximi 32 Go de données, au dela, il faut ajouter de nouveaux datafiles dans le tablespace.

Lorsqu’un tablespace est saturé, il faut d’abord savoir quel est le datafile concerné :

select FILE_NAME from dba_data_files where tablespace_name = 'TBL_SPC';

Ensuite, nous allons exécuter une requête pour connaitre la taille actuelle du datafile :

select df.tablespace_name "Tablespace",
totalusedspace "Used MB",
(df.totalspace - tu.totalusedspace) "Free MB",
df.totalspace "Total MB",
round(100 * ( (df.totalspace - tu.totalusedspace)/ df.totalspace)) "Pct. Free"
from (select tablespace_name,
round(sum(bytes) / 1048576) TotalSpace
from dba_data_files
group by tablespace_name) df,
(select round(sum(bytes)/(1024*1024)) totalusedspace,
tablespace_name
from dba_segments
group by tablespace_name) tu
where df.tablespace_name = tu.tablespace_name
and df.totalspace <> 0;

Une fois que nous connaissons la taille du datafile, nous pouvon l’augmenter :

alter database datafile '+DATA/datafile.dbf' resize 10000M;

Il est également possible de mettre le datafile en auto extend. Cela lui permettra de croitre de manière autonome jusqu’à la limite des 32 Go :

alter database datafile '+DATA/datafile.dbf' autoextend on;

Au dela des 32 Go, il faut ajouter un nouveau datafile :

alter tablespace TBL_SPC add datafile '+DATA/datafile2.dbf' size 100M reuse autoextend on;