RMAN Duplicate Database Creation Document
------------------------------------------------------------
Target database Name : DEVNW
Catalog database : ORCL
Duplicate auxiliary : TEST
Step 1 : At Target database side :
== create pfile for duplicate
Sql> create pfile from spfile
$ /p01/clone/dev10gdb/10.2.0/dbs> cp initDEVNW.ora initTEST.ora
$ vi initTEST.ora
Note : change the dbname, controlfilelocation, bdump, udump,cdump, …etc locations as per the
new duplicate location
db_file_name_convert=("/p01/clone/devdata", "/t01/clone/devdata/")
log_file_name_convert=("/p01/clone/devdata", "/t01/clone/devdata/")
remote_login_passwordfile = exclusive
=== create password file for TARGET database for connect rman
/p01/clone/dev10gdb/10.2.0/dbs$ export ORACLE_SID=DEVNW
echo $ORACLE_SID
orapwd file=orapw$ORACLE_SID password=sadha force=y
Chmod –R 777 orapwDEVNW
== create password file for duplicate
/p01/clone/dev10gdb/10.2.0/dbs$ export ORACLE_SID=TEST
Echo $ORACLE_SID
orapwd file=orapw$ORACLE_SID password=sadha force=y
Note : password is the same as the target database rman connect password
Chmod –R 777 orapwTEST
==== connect duplicate database start in nomount from Target db side ( Production side).
export ORACLE_SID=TEST
$ sqlplus sys/manager as sysdba
startup force nomount pfile='/p01/clone/dev10gdb/10.2.0/dbs/initTEST.ora'
sql> select instance_name,status from v$instance;
=== Listener configuration
/p01/clone/dev10gdb/10.2.0/network/admin/DEVNW_erpprod$ vi listener.ora
DEVNW =
(ADDRESS_LIST =
(ADDRESS= (PROTOCOL= IPC)(KEY= EXTPROCDEVNW))
(ADDRESS= (PROTOCOL= TCP)(Host= erpprod.pittilam.com )(Port= 1571))
)
SID_LIST_DEVNW =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME= /p01/clone/dev10gdb/10.2.0)
(SID_NAME = DEVNW)
)
(SID_DESC =
(GLOBAL_DBNAME=TEST)
(ORACLE_HOME = /p01/clone/dev10gdb/10.2.0)
(SID_NAME=TEST)
)
)
Note : This SID_DESC ,GLOBAL_DBNAME .. 4 new lines adding for duplicate
===========================================================
** tnsnames .ora
/p01/clone/dev10gdb/10.2.0/network/admin/DEVNW_erpprod$ vi tnsnames.ora
DEVNW=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=erpprod.pittilam.com)(PORT=1571))
(CONNECT_DATA=
(SID=DEVNW)
)
)
TEST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=erpprod.pittilam.com)(PORT=1571))
(CONNECT_DATA=
(SID=TEST)
)
)
Note : This TEST=... 5 new lines adding for duplicate
Note : stop listener & database
Start listener
Start database
======================================================
At catalog side : SID : ORCL
== source env file
/t01/oracle/OraHome_1
vi orcl.env
export ORACLE_HOME=/t01/oracle/OraHome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
:wq!
$. ./orcl.env
=== tnsnames.ora configuration
/t01/oracle/OraHome_1/network/admin
$ vi tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = erpprod.pittilam.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
TO_PRODDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.6)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PROD)
)
)
TO_CLONE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host= erpprod.pittilam.com)(PORT = 1571))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DEVNW)
)
)
TO_TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host= erpprod.pittilam.com)(PORT = 1571))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TEST)
)
Setup RMAN Catalog side: ORCL side
create tablespace rmants_clone datafile '/t01/oracle/oradata/orcl/rmants_clone01.dbf' size 900M
CREATE USER rmanclone IDENTIFIED BY rmanclone
DEFAULT TABLESPACE RMANTS_CLONE
QUOTA UNLIMITED ON rmants_clone;
GRANT connect, resource, recovery_catalog_owner TO rmanclone
----------------------------------------------------------------------------------------------------------------------------
Create catalog
bash-3.00$ rman catalog rmanclone/rmanclone;
Recovery Manager: Release 10.2.0.1.0 - Production on Wed Nov 11 12:42:49 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to recovery catalog database
RMAN> create catalog;
recovery catalog created
To register the Target database
$ rman catalog rmanclone/rmanclone target sys/sadha@TO_CLONE
Recovery Manager: Release 10.2.0.1.0 - Production on Thu Nov 19 11:03:43 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: DEVNW (DBID=114016787)
connected to recovery catalog database
RMAN> register database
RMAN> SHOW ALL;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/p01/clone/dev10gdb/10.2.0/dbs/snapcf_DEVNW.f'; # default
Take full backup database
RMAN> backup incremental level 0 tag = ‘Weekly_full_backup’ database plus archivelog;
Note : Before take backup command you have to configure at TARGET side Rman configuration.
At TARGET SIDE : RMAN configuration with flash backup area
Rman configuration . Target side.
Startup mount
Step 1 : configure a flash back area
Sql> alter system set db_recovery_file_dest_size=20G
Sql> alter system set db_recovery_file_dest=
C: \app\Administrator\flash_recovery_area\sadhatest’
’/u01/oracle/flash_area’ scope=both
alter system set db_recovery_file_dest=’/B01/rman_oracle_backup/flash_recovery_area’ scope=both
Step 2. Archive log put in two locations , archive log enable
a). Sql> shut immediate
Startup mount
Alter database archivelog; for disable: alter database noarchivelog
Alter database open
b). flash recovery area --
Alter system set alter system set log_archive_dest_10=’location=USE_DB_RECOVERY_FILE_DEST
c). Another mount point ----
Alter system set log_archive_dest_1=’location=/t01/oracle/archive_bkp’
Sql> show parameter log_archive_dest;
Sql> select name,status from v$archived_log
Step 3. Enable block change tracking for incremental backup
Sql> alter system set db_create_file_dest=’/u01/oracle/block_change_area’
Sql> alter database enable block change tracking using file ‘/u01/oracle/block_change_area/bcf.dbf’
alter database enable block change tracking using file '/B01/rman_oracle_backup/block_chage_location/bcf.dbf' REUSE;
Step 4. Online redo log files put in the flash area
Sql > alter database add logfile;
Sql> alter database add standby logfile
Step 5> Sql> archive log list;
Alter system switch log file; ---------- > manually log switch occur
Alter database backup control file to trace ------ > for take the control file into trace file
Catalog side:
Connect RMAN and Take full backup database of target database
RMAN> backup incremental level 0 tag = ‘Weekly_full_backup’ database plus archivelog;
For duplicate database at Catalog side
$ rman catalog rmanclone/rmanclone target sys/sadha@TO_CLONE auxiliary sys/sadha@TO_TEST
Recovery Manager: Release 10.2.0.1.0 - Production on Thu Nov 19 11:25:46 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: DEVNW (DBID=114016787)
connected to recovery catalog database
connected to auxiliary database (not started)
RMAN> run {
set until time '17-OCT-2009';
allocate auxiliary channel ch1 type disk;
allocate auxiliary channel ch2 type disk;
allocate auxiliary channel ch3 type disk;
duplicate target database to 'test';
}
Note : if any file path error occur , you can use below command
DUPLICATE TARGET DATABASE to 'test' NOFILENAMECHECK;
For oracle apps
Move devdb , dev10gdb,devappl,devcomn,devora folders to new duplicate location .. /t01/clone/
And rename folders name
=== run adcfgclone.pl at dbTier
Run adcfgclone.pl at appsTier
Note : don’t Remove old rman backup until check the TARGET db is running fine ,
check once bounce the database
Error at Target database
SQL> startup
ORACLE instance started.
Total System Global Area 599785472 bytes
Fixed Size 2074608 bytes
Variable Size 436209680 bytes
Database Buffers 146800640 bytes
Redo Buffers 14700544 bytes
Database mounted.
ORA-00305: log 4 of thread 1 inconsistent; belongs to another database
ORA-00312: online log 4 thread 1:
'/p01/clone/rman_backup/flash_back_area/DEVNW/onlinelog/o1_mf_4_5how3sjy_.log'
ORA-00305: log 4 of thread 1 inconsistent; belongs to another database
ORA-00312: online log 4 thread 1:
'/p01/clone/rman_backup/block_change_area/DEVNW/onlinelog/o1_mf_4_5how3r28_.log'
Restore from RMAN backup
Connect rman
RMAN> startup nomount
Restore control file
Alter database mount;
Restore database;
Recover database;
Alter database open resetlogs;
==================== linux =============
# tnsnames.ora Network Configuration File: /data/oracle/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
PROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = testr12.pittioffice.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
AUX =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = testr12.pittioffice.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = AUX)
)
)
# listener.ora Network Configuration File: /data/oracle/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = testr12.pittioffice.com)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME=aux)
(ORACLE_HOME = /data/oracle)
(SID_NAME = aux)
)
)
[oracle@testr12 dbs]$ vi initaux.ora
prod.__db_cache_size=616562688
prod.__java_pool_size=4194304
prod.__large_pool_size=4194304
prod.__shared_pool_size=289406976
prod.__streams_pool_size=0
*.audit_file_dest='/backup/aux_backup/adump'
*.background_dump_dest='/backup/aux_backup/bdump'
*.user_dump_dest='/backup/aux_backup/udump'
*.compatible='10.2.0.1.0'
*.control_files='/backup/aux_backup/data/control01.ctl','/backup/aux_backup/data/control02.ctl','/backup/aux_backup/data/control03.ctl'
*.core_dump_dest='/backup/aux_backup/cdump'
*.db_block_size=8192
*.db_create_file_dest='/backup/aux_backup/block_change_area'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='aux'
*.db_recovery_file_dest_size=171798691840
*.db_recovery_file_dest='/backup/aux_backup/flash_recovery_area'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=prodXDB)'
*.job_queue_processes=10
*.log_archive_dest_10='location=USE_DB_RECOVERY_FILE_DEST'
*.open_cursors=300
*.pga_aggregate_target=306184192
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=920649728
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
db_file_name_convert=("/data/oracle/oradata/prod","/backup/aux_backup/data/")
log_file_name_convert=("/data/oracle/oradata/prod","/backup/aux_backup/data/")
[oracle@testr12 dbs]$ ls -ltr orapw*
-rw-r----- 1 oracle dba 1536 Dec 15 14:35 orapwprod
-rw-r----- 1 oracle dba 1536 Dec 17 15:21 orapwaux
[oracle@testr12 dbs]$
No comments:
Post a Comment