Renommage ou déplacement d'un datafile

Il arrive que l'on ait à renommer ou déplacer un datafile (utilisation d'un disque plus rapide, harmonisation du nommage, ...). Dans ce cas il faut indiquer à notre base de données oracle le nouvel emplacement :

$ sqlplus / as sysdba

SQL> Set linesize 140
SQL> column FILE_NAME format A80
SQL> select TABLESPACE_NAME , FILE_NAME, FILE_ID from dba_data_files ;
TABLESPACE_NAME FILE_NAME FILE_ID
-------------- ---------------- ----------------------------------------TBSAREN /home/oracle/fichier.dbf 48
U2_TEMP /u02/oradata/SIDT/datafile/o1_mf_u2_temp_6wnyoo3k_.dbf 47
8< ------- 8< ------- 8< ------- 8< ------- 8< ------- UNDOTBS1 /u01/oradata/SIDT/datafile/o1_mf_undotbs1_29z3gotp_.dbf 2 SYSTEM /u03/oradata/SIDT/datafile/o1_mf_system_29z3goqy_.dbf 1

48 rows selected.


Il faut alors dans un premier temps, empêcher toute modification de données sur le tablespace en question :

SQL> ALTER TABLESPACE TBSAREN READ ONLY;

Tablespace altered.

SQL> ALTER TABLESPACE TBSAREN offline;

Tablespace altered.


Copier le fichier (au niveau système) :

SQL>!cp /home/oracle/fichier.dbf /u03/oradata/SIDT/datafile/o1_mf_TBSAREN_00_.dbf


Et enfin, indiquer au SGBD la modification pour mettre à jour le dictionnaire :
SQL> alter database rename file '/home/oracle/fichier.dbf' to '/u01/oradata/SIDT/datafile/o1_mf_TBSAREN_00_.dbf';

Database altered.


Il ne reste plus qu'à rendre le tablespace à nouveau disponible :

SQL> alter tablespace TBSAREN online;

Tablespace altered.

SQL> alter tablespace TBSAREN read write;

Tablespace altered.




Vous n'avez pas trouver réponse à votre question ? Préciser votre recherche :

Catégories