Oracle 12c Administration – Déplacement d’un datafile online

Avant la version Oracle 12c, déplacer des fichiers de données non ASM nécessitait de mettre les fichiers de données « hors ligne » et de négocier une interruption avec l’entreprise, ce n’est plus le cas avec Oracle 12c.

Dans cet article, je détaillerai comment la nouvelle fonctionnalité ALTER DATABASE MOVE DATAFILE peut être utilisée pour déplacer des fichiers de données en ligne vers un autre emplacement, disque ou système de stockage.

La commande SQL Oracle ALTER DATABASE MOVE DATAFILE constitue une méthode simple en ligne pour la migration des données vers une nouvelle plate-forme de stockage. Elle consiste notamment à renommer ou déplacer les fichiers de données au niveau du système d’exploitation et à modifier les références dans les fichiers de contrôle Oracle.
Exemple de déplacement du tablespace SDTTST12 du chemin /rgora00/oradata/BRTST/ vers /rgora01/oradata/BRTST/  :

select file_name, tablespace_name from dba_data_files where tablespace_name = 'SDTTST12';

FILE_NAME TABLESPACE_NAME
------------------------------------ ------------------------------
/rgora00/oradata/BRTST/SDTTST12.DBF SDTTST12

alter database move datafile '/rgora00/oradata/BRTST/SDTTST12.DBF' TO '/rgora01/oradata/BRTST/SDTTST12.DBF'

select file_name, tablespace_name from dba_data_files where tablespace_name = 'SDTTST12';

FILE_NAME TABLESPACE_NAME
------------------------------------- ------------------------
/rgora01/oradata/BRTST/SDTTST12.DBF SDTTST12

 

Autres exemples : 

On peut également utiliser la commande ALTER DATABASE MOVE DATAFILE pour renommer, déplacer, copier un datafiles sur de l’ASM.

 

Renommer un datafile :

alter database move datafile '/rgora00/oradata/BRTST/SDTTST12.DBF' TO '/rgora00/oradata/BRTST/SDTTST13.DBF';

 

Déplacement d’un datafile en ASM :

alter database move datafile '/rgora00/oradata/BRTST/SDTTST12.DBF' TO '+DATA/oradata/BRTST/SDTTST12.DBF';

 

Copier un datafile : 

L’option KEEP en fin de ligne permet de faire conserver une copie du fichier à son emplacement d’origine.

alter database move datafile /rgora00/oradata/BRTST/SDTTST12.DBF' TO /rgora01/oradata/BRTST/SDTTST12.DBF' KEEP;

 

Suivre l’état d’avancement de l’action effectuée :

Durant le déplacement des DATAFILE, il est possible d’utiliser la vue V$SESSION_LONGOPS pour être informé du nombre de bytes encore à réaliser avant la fin.

Pour aller plus loin :

Si vous souhaitez approfondir vos connaissances sur la database Oracle 12c, découvrez nos différentes formations Oracle 12c animées par nos experts Oracle.