平台不一样,但流程是一样的,你照我的流程跑看看
windows xp / oracle 11gr2
target db:
oracle_sid:unewdb
datafile folder
\oracle\oradata\unewdb
duplicate db:
oracle_sid:unewdb2
datafile folder
\oracle\oradata\unewdb2
1.duplicate db: create oracle password
orapwd file=$ORACLE_HOME\dbs\orapwd$ORACLE_SID password= ==>linux
2.duplicate db: create duplicate pfile
set ORACLE_SID=unewdb
SQL> create pfile='d:\unewdb2.pfile' from spfile;
3.duplicate db: edit d:\unewdb2.pfile
*.control_files='D:\ORACLE\ORADATA\UNEWDB2\CONTROL01.CTL'
*.db_file_name_convert='D:\oracle\oradata\unewdb','D:\oracle\oradata\unewdb2'
*.log_file_name_convert='D:\oracle\oradata\unewdb','D:\oracle\oradata\unewdb2'
*.db_name='UNEWDB2'
*.log_archive_dest_1='location=D:\oracle\oradata\unewdb2\arch'
*.log_archive_format='arc%S_%R.%T'
*.memory_max_target=1073741824
4.target db : rman backup database / archivelog file
set ORACLE_SID=unewdb
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'D:\oracle\rman_backup\unewdb_%F';
RMAN> backup database format 'D:\oracle\rman_backup\unewdb_rman_db_%U';
RMAN> backup format 'd:\oracle\rman_backup\unewdb_rman_arch_%U' archivelog all delete input;
5.edit tnsnames.ora
unewdb=
(description=
(address_list=
(address=(protocol=tcp)(host=xx.xx.xx.xx)(port=1521))
)
(connect_data=(service_name=unewdb)
)
)
6.rename listener.ora to listener.ora.bak
7.lsnrctl stop & lsnrctl start
8.target db :
set ORACLE_SID=unewdb
sqlplus / as sysdba
alter system register;
exit;
9.target db : check login
sqlplus sys/xxxxx@unewdb as sysdba
10.duplicate db : startup nomount db & crrate spfile
set ORACLE_SID=unewdb2
sqlplus / as sysdba
SQL> startup nomount pfile='d:\unewdb2.pfile';
SQL> create spfile from pfile='d:\unewdb2.pfile';
SQL> startup force nomount;
SQL> select status from v$instance;
STATUS
------------
STARTED
SQL> exit;
11.
set ORACLE_SID=unewdb2
rman target sys/oracle@unewdb nocatalog auxiliary /
RMAN> duplicate target database to unewdb2;