1. First need a backup of source db with RMAN. So check it out RMAN> list backup summary; -- it should show some backup 2. create pwd file for the new db. In this example new db name is test2 $ orapwd file=/dev_orahome/oracle/10.2.0/dbs/orapwtest2 password=change_on_install 3. create pfile from spfile; -- for source ( test db ) copy pfile to new_pfile and change it. 4. Make *dump directories, change control files locations, etc 5. Start Auxiliary instance export ORACLE_SID=new_db sqlplus /nolog connect / as sysdba startup nomount -- At this point database does not exist so it could not be mounted create spfile from pfile; exit 6.Modify both the listener.ora and tnsnames.ora file to be able to connect to the auxiliary database (test2) 7. test connection to auxiliary sqlplus "sys/change_on_install@test2 as sysdba" 8. prepare the script for duplication spool rman_dup.sql SELECT 'set newname for datafile '||file#||' to '''||replace(name,'/location_of_test_db','/location_of_test2_db') ||''';' from V$DATAFILE; 9. Finally rman_dup.sql should look like that run { set newname for datafile 1 to '/dev_oradata6/test2/system01.dbf'; set newname for datafile 2 to '/dev_oradata6/test2/undotbs01.dbf'; set newname for datafile 3 to '/dev_oradata6/test2/sysaux01.dbf'; set newname for datafile 4 to '/dev_oradata6/test2/users01.dbf'; duplicate target database to test2 # create at least two online redo log groups LOGFILE GROUP 1 ('/dev_oradata6/test2/redolog01.dbf') SIZE 50M, GROUP 2 ('/dev_oradata6/test2/redolog02.dbf') SIZE 50M; } 10. Now connect to all 3 db export ORACLE_SID=test rman CATALOG rman/rman@rmandev target sys/oracle@test auxiliary sys/change_on_install@test2 connected to target database: TEST (DBID=2002697866) connected to recovery catalog database connected to auxiliary database: TEST2 (not mounted) 11. RMAN> @rman_dup.sql It will do. test2 will be restarted in the process.