En cas de souci d'espace disque sur certaines partitions, il est possible de déplacer des DataFiles oracle. La démarche étant la suivante (dans l'ordre) :
Ce qui se résume de la manière suivante :
sqlplus / as sysdba
SQL> SELECT FILE_NAME, BYTES FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = 'ENROLE_DATA';
FILE_NAME BYTES
------------------------------------------------------------ ----------
/product/oracle/product/11.2.0.2/dbs/enrole1_data_001.dbf 1409286144
ALTER TABLESPACE enrole_data OFFLINE NORMAL;
SQL> exit
On va ensuite copier le fichier, avec les commandes de l'O.S. Par exemple sous Unix/Linux :
cp /product/oracle/product/11.2.0.2/dbs/enrole1_data_001.dbf enrole1_data_001.dbf /product/oradat/ENROLE/datafile/enrole1_data_001.dbf
A ce stade, on revient sous SQL*Plus :
sqlplus / as sysdba
SQL> alter tablespace enrole_data rename datafile '/product/oracle/product/11.2.0.2/dbs/enrole1_data_001.dbf' TO '/product/oradat/ENROLE/datafile/enrole1_data_001.dbf' ;
Tablespace altered.
SQL> alter tablespace enrole_data online;
Tablespace altered.
SQL> SELECT FILE_NAME, BYTES FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = 'ENROLE_DATA';
FILE_NAME BYTES
------------------------------------------------------------ ----------
/product/oradat/ENROLE/datafile/enrole1_data_001.dbf 1409286144
On peut ensuite supprimer le fichier d'origine, après avoir vérifié que la base de données fonctionnait correctement.
rm /product/oracle/product/11.2.0.2/dbs/enrole1_data_001.dbf
Il va sans dire qu'il vaut mieux faire une sauvegarde de sa base de données avant les manipulations, et qu'il est bon également de lancer une sauvegarde après la modification.