RMAN permet, à partir d'une sauvegarde, de cloner une base de données. Dans cet exemple je supposerais qu'il existe une base de données nommée RED dont on dispose d'une sauvegarde faite par RMAN. Le référentiel RMAN de RED étant stocké dans le fichier de contrôle.

Le mot de passe de sys est manager10.

La base clone se nommera BLACK, il est également supposé que les répertoires supportent la norme OFA. Ainsi l'ensemble des fichiers de la base RED est supposé se trouver sous /u01/app/oracle/oradata/RED.

Création des répertoires d'accueil

mkdir -p /u01/app/oracle/admin/BLACK/adump
mkdir -p /u01/app/oracle/admin/BLACK/bdump
mkdir -p /u01/app/oracle/admin/BLACK/udump
mkdir -p /u01/app/oracle/admin/BLACK/pfile
mkdir -p /u01/app/oracle/oradata/BLACK

Création du fichier d'initialisation

Depuis le spfile de RED, créer le pfile

export ORACLE_SID=RED
sqlplus /nolog
SQL> connect / as sysdba
SQL> create pfile='/u01/app/oracle/admin/BLACK/pfile/initBLACK.ora' from spfile;

Editer ce fichier et remplacer toute occurrence de RED par BLACK. En fin de fichier rajouter les lignes suivantes :

DB_FILE_NAME_CONVERT=('RED','BLACK')
LOG_FILE_NAME_CONVERT=('RED','BLACK')
INSTANCE_NAME='BLACK'

Démarer l'instance BLACK

export ORACLE_SID=BLACK
sqlplus /nolog
SQL> connect / as sysdba
SQL> startup nomount pfile='/u01/app/oracle/admin/BLACK/pfile/initBLACK.ora';
SQL> disconnect;
SQL> quit

Création du clone.

export ORACLE_SID=BLACK
rman target sys/manager10@RED auxiliary /
RMAN> DUPLICATE TARGET DATABASE TO BLACK pfile='/u01/app/oracle/admin/BLACK/pfile/initBLACK.ora';

En fin de procédure, penser à créer le spfile ainsi.

export ORACLE_SID=BLACK
sqlplus /nolog
SQL> connect / as sysdda
SQL> create spfile from pfile='/u01/app/oracle/admin/BLACK/pfile/initBLACK.ora';
SQL> exit

Renseigner la base BLACK dans le tnsnames.ora et le listener.