close

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

 

Fixing spfile settings:

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> startup pfile=$ORACLE_HOME/dbs/initTESTDB.ora
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

SQL> sho parameter spfile

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.

arrow
arrow
    全站熱搜

    DanBrother 發表在 痞客邦 留言(0) 人氣()