Clone RAC Database to a None-RAC DB From RMAN Backup Without Connect to the Source DB (Oracle11gR2)
-- Copy RMAN backup files from source DB server to the destination DB server
-- (Create the same directory structure)
-- Destination
# mkdir -p /u01/app/oracle/admin/TESTDB/adump
# mkdir -p /u01/app/oracle/admin/TESTDB/dpdump
# mkdir -p /u01/app/oracle/admin/TESTDB/pfile
# echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0/db110203
# echo "TESTDB:/u01/app/oracle/product/11.2.0/db110203:N" >> /etc/oratab
# srvctl add database -d TESTDB -o /u01/app/oracle/product/11.2.0/db110203
/
-- vi $ORACLE_HOME/dbs/initTESTDB.ora
db_name='TESTDB'
memory_target=2G
processes=500
audit_file_dest='/u01/app/oracle/admin/TESTDB/adump'
audit_trail='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='+ARCH'
db_recovery_file_dest_size=50G
diagnostic_dest='u01/app/oracle'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
compatible='11.2.0'
# export ORACLE_SID=TESTDB
# sqlplus / as sysdba
SQL> startup nomount pfile=$ORACLE_HOME/dbs/initTESTDB.ora
SQL> exit
# rman auxiliary /
set decryption identified by 'mypwd';
duplicate database to testdb
pfile='/u01/app/oracle/product/11.2.0/db110203/dbs/initTESTDB.ora'
backup location '/backup/daily/2011-10-01/TESTDB'
nofilenamecheck;
Result:
......
......
......
contents of Memory Script:
{
Alter clone database open resetlogs;
}
executing Memory Script
database opened
Finished Duplicate Db at 01-DEC-11
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
------------------------ ---------------
TESTDB OPEN
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1
Next log sequence to archive 1
Current log sequence 1
SQL> startup pfile=$ORACLE_HOME/dbs/initTESTDB.ora SQL> sho parameter spfile
SQL> shut immediate
edit $ORACLE_HOME/dbs/initTESTDB.ora
=> Comment Out SPFILE='+DATA/TESTDB/spfileTESTDB.ora'
By #SPFILE='+DATA/TESTDB/spfileTESTDB.ora'
=> Delete background_dump_dest & user_dump_dest parameters
SQL> create spfile='+DATA/TESTDB/spfileTESTDB.ora' from pfile;
SQL> exit
$ mv $ORACLE_HOME/dbs/initTESTDB.ora $ORACLE_HOME/dbs/initTESTDB.new
$ echo "SPFILE='+DATA/TESTDB/spfileTESTDB.ora' >> $ORACLE_HOME/dbs/initTESTDB.ora
$ srvctl stop database -d TESTDB
$ srvctl modify database -d TESTDB -p '+DATA/TESTDB/spfileTESTDB.ora' -s open
$ srvctl start database -d TESTDB
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/TESTDB/spfiletestdb.ora
Note:
1. If testdb was created using "dbca", some manual settings can be eliminated.
2. If the full backup of data files are not up to date, then the latest backup of control file and consecutive backups of archive log files can be copied to the backup location being restored (preserve the old control file backup by renaming it if needed).
The whole duplication process will restore the database up to the latest archive log file.
留言列表