Introduction
La méthodologie pour renommer un fichier de données existant peut également être utilisée pour déplacer ce dernier. Les fichiers de données peuvent être déplacés ou renommés avec une des deux méthodes : alter database
ou alter tablespace
.
La différence principale entre les deux commandes concerne le champ d’action.
- La commande
alter tablespace
ne peut s’appliquer qu’à des fichiers de données qui ne contiennent pas le tablespaceSYSTEM
, des segments d’annulation actifs ou des segments temporaires en revanche elle a l’avantage de pouvoir être appliquée sans avoir à éteindre l’instance. - La commande
alter database
fonctionne pour n’importe quel fichier de données mais l’instance doit être éteinte pour pouvoir l’appliquer.
Cette fiche technique présente les deux méthodes à travers des cas pratiques.
Méthode ALTER DATABASE
On se propose de déplacer le fichier scott_data_01.dbf du répertoire /oracle/data
vers le répertoire /oracle/TSTT1ORA
avec la commande alter database
.
Étape 1 : arrêt de l’instance.
shutdown immediate;
Étape 2 : copie du fichier de données dans sa nouvelle nomenclature avec les commandes de l’OS (cp, xcopy).
cp /oracle/data/scott_data_01.dbf /oracle/TSTT1ORA/scott_data01.dbf
Étape 3 : monter la base de données et utiliser la commande alter database
pour renommer le fichier au sein de la base de données avec l’option rename file
.
connect internal;
startup mount;
alter database
rename file '/oracle/data/scott_data_01.dbf'
to '/oracle/TSTT1ORA/scott_data01.dbf'
alter database open;
À bien noter les simples quotes pour délimiter les fichiers, lesquels doivent impérativement exister. L’instance est alors ouverte en utilisant le nouveau fichier de données, l’ancien pouvant être détruit.
Méthode ALTER TABLESPACE
On se propose toujours de déplacer le fichier scott_data_01.dbf du répertoire /oracle/data
vers le répertoire /oracle/TSTT1ORA
mais cette fois avec la commande alter tablespace. Cette méthode a l’avantage de ne pas à avoir éteindre l’instance, toutefois le tablespace contenant le fichier de données en question devra être mis offline
. Pour rappel, cette méthode ne peut être utilisée pour des tablespaces contenant des segments d’annulation actifs ou des segments temporaires.
Étape 1 : mise en mode offline
du tablespace contenant le fichier de données à renommer.
alter tablespace scott_data offline;
Étape 2 : copie du fichier de données dans sa nouvelle nomenclature avec les commandes de l’OS
cp /oracle/data/scott_data_01.dbf /oracle/TSTT1ORA/scott_data01.dbf
Étape 3 : utiliser la commande alter tablespace
avec l’option rename datafile
pour renommer le fichier de données au sein de la base de données.
alter tablespace scott_data
rename datafile '/oracle/data/scott_data_01.dbf'
to '/oracle/TSTT1ORA/scott_data01.dbf'
Étape 4 : remettre en ligne le tablespace contenant le fichier de données renommé.
alter tablespace scott_data online;
L’ancien fichier de données peut alors être détruit.