2 méthodes : base arrêtée ou base démarrée, au choix ! On parle de déplacement de fichiers de données, mais les même procédures s'appliquent dans le cadre d'un renommage ...
1- Base arrêtée
- la base étant arrêtée, copier les datafiles avec la commande correspondant à l'OS
$ cp /u02/oradata/orcltst/users01.dbf /u03/oradata/orcltst/user01.dbf
- se connecter à la base en 'sys'
$sqlplus '/ as sysdba'
- démarrer la base sans l'ouvrir :
> startup mount;
- faire connaitre à la base le déplacement de fichier
> alter database rename file '/u02/oradata/orcltst/users01.dbf' to '/u03/oradata/orcltst/user01.dbf';
- ouvrir la base
> alter database open;
- vérifier la prise en compte des changements
> select name from dba_data_files;
- supprimer les fichiers avec la commande OS appropriée
$ rm -f /u02/oradata/orcltst/users01.dbf
2- Base ouverte
Afin de réaliser le déplacement de datafile 'base ouverte', le tablespace doit doit être passé en 'READ-ONLY', ce qui implique que les l'accès aux données de ce tablespace ne sera plus possible q'en 'SELECT' exclusivement. D'autre part, le temps de passage en mode 'READ-ONLY' peut être assez long, en fonction du volume, et éventuellement des transactions en cours.
- mettre le tablespace en READ-ONLY
> alter tablespace USERS read only;
- s'assurer que le tablespace est bien en READ-ONLY (!)
> select tablespace_name, status from dba_tablespaces where tablespace_name='USERS';
- copier les datafiles avec la commande correspondant à l'OS
$ cp /u02/oradata/orcltst/users01.dbf /u03/oradata/orcltst/user01.dbf
- mettre le tablespace offline
> alter tablespace users offline;
- faire connaitre à la base le déplacement de fichier
> alter database rename file '/u02/oradata/orcltst/users01.dbf' to '/u03/oradata/orcltst/user01.dbf';
- mettre le tablespace online
> alter tablespace users online;
- mettre le tablespace en mode READ-WRITE
> alter tablespace users read write;
- vérifier que tout est ok, en récupérant la trace dans $ORACLE_BASE/admin/bdump/XXXX.trc
> alter database backup controlfile to trace;
- supprimer les fichiers avec la commande OS appropriée
$ rm -f /u02/oradata/orcltst/users01.dbf