DG Setup
DG Setup
In Primary
1) Change the spfile in primary database and restart
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(TESTPMS,TESTPMSstdb)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='service="TESTPMSstdb"','LGWR ASYNC NOAFFIRM delay=0 optional
compression=disable max_failure=0 max_connections=1 reopen=300
db_unique_name="TESTPMS_STBY" net_timeout=30','valid_for=(all_logfiles,primary_role)'
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=4;
ALTER SYSTEM SET FAL_SERVER='TESTPMSSTdb';
ALTER SYSTEM SET FAL_CLIENT='TESTPMS';
2) Genrate pfile in Primary DB
create pfile='/app/oracle/admin/TESTPMS/pfile/initTESTPMS.ora' from spfile;
3) Run backup script in primary
4) copied the control files, backup, onlinelogs and archive logs, pfile
scp -r -i /root/TESTcloud.pem -P 22 /backup/flash_recovery_area/ [email protected]:/backup/flash_recovery_area/TESTPMS/
scp -r -i /root/TESTcloud.pem -P 22 /backup/fast_recovery_area/TESTPMS/control02.ctl
[email protected]:/backup/fast_recovery_area/TESTPMS/control02.ctl
scp -r -i /root/TESTcloud.pem -P 22 /data/controlfile/TESTPMS/control01.ctl
[email protected]:/data/controlfile/TESTPMS/control01.ctl
scp -r -i /root/TESTcloud.pem -P 22 /backup/flash_recovery_area/TESTPMS/autobackup/
[email protected]:/backup/flash_recovery_area/TESTPMS/autobackup/
scp -i /root/TESTcloud.pem -P 22 /app/oracle/admin/TESTPMS/pfile/initTESTPMS.ora
[email protected]:/app/oracle/admin/TESTPMS/pfile/initTESTPMS.ora
5) Enable DG broker
ALTER SYSTEM SET DG_BROKER_START=TRUE SCOPE=BOTH;
6) Remote login password file.
orapwd file=orapwTESTPMSstdb password=STANDARD IGNORECASE=Y
7) Configure listener
#####################
#tnsnames.ora########
#####################
# tnsnames.ora Network Configuration File: /app/oracle/11.3.0/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
TESTPMSprdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = devprimary)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TESTPMS.psc.com)
)
)
TESTPMSstdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = devstandby)(PORT = 1521))
(CONNECT_DATA = (UR=A)
(SERVER = DEDICATED)
(SERVICE_NAME = TESTPMSstdb.psc.com)
)
)
#####################
#listener.ora########
#####################
# listener.ora Network Configuration File: /app/oracle/11.3.0/network/admin/listener.ora
# Generated by Oracle configuration tools.
ADR_BASE_LISTENER_TESTPMS = /app/oracle
LISTENER_TESTPMS =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = devprimary)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = TESTPMS)
(ORACLE_HOME = /app/oracle/11.3.0)
(SID_NAME = TESTPMS)
)
)
8) Create DG config
CREATE CONFIGURATION 'TESTR' AS PRIMARY DATABASE IS 'TESTPMS' CONNECT IDENTIFIER IS TESTPMSprdb
ADD DATABASE 'TESTPMSstdb' AS CONNECT IDENTIFIER IS TESTPMSstdb MAINTAINED AS PHYSICAL;
enable configuration;
9) Connect to RMAN ( after step 7 in Standby)
rman target sys/STANDARD@TESTPMSprdb auxiliary sys/STANDARD@TESTPMSstdb
10) Duplicate DB connect to auxiliary db from primary ( after step 7 in Standby)
DUPLICATE TARGET DATABASE
FOR STANDBY
FROM ACTIVE DATABASE
DORECOVER
NOFILENAMECHECK;
In Standby
1) Modify the bash_profile ( ORACLE_HOSTNAME,ORACLE_UNQNAME,ORACLE_SID). Changed
the ORACLE_SID FROM TESTpms to TESTpmsstdb in bash_profile
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=devstandby; export ORACLE_HOSTNAME
ORACLE_BASE=/app/oracle; export ORACLE_BASE
ORACLE_UNQNAME=TESTPMSstdb; export ORACLE_UNQNAME
ORACLE_HOME=$ORACLE_BASE/11.3.0; export ORACLE_HOME
PATH=/usr/sbin:$PATH; export PATH
export ORACLE_SID=TESTPMSstdb
PATH=$ORACLE_HOME/bin:$PATH; export PATH
PATH=$PATH:$ORACLE_HOME/OPatch; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
2) Created a template form the old DB in standby DB
3) Create new database from the template
4) Changed the below in the pfile copied from primary ( after step 4 in primary)
*.db_unique_name='TESTPMSstdb'
*.fal_client='TESTPMSSTDB'
*.fal_server='TESTPMS'
*.log_archive_dest_2='SERVICE=TESTPMSprdb ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=TESTPMS'
5) Rename the file from initTESTPMS.ora to initTESTPMSstdb.ora
6) Create spfile from the modified pfile from the above steps
create spfile from pfile='/app/oracle/admin/TESTPMS/pfile/initTESTPMSstdb.ora';
7) Configure listener
#####################
#tnsnames.ora########
#####################
# tnsnames.ora Network Configuration File: /app/oracle/11.3.0/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
TESTPMSprdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = devprimary)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TESTPMS.psc.com)
)
)
TESTPMSstdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = devstandby)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TESTPMSstdb)
)
)
#####################
#listener.ora########
#####################
# listener.ora Network Configuration File: /app/oracle/11.3.0/network/admin/listener.ora
# Generated by Oracle configuration tools.
ADR_BASE_LISTENER_TESTPMS = /app/oracle
LISTENER_TESTPMSSTDB =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = devstandby)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = TESTPMS)
(ORACLE_HOME = /app/oracle/11.3.0)
(SID_NAME = TESTPMSstdb)
)
)
8) Duplicate DB from standby ( This is optional)
rman target sys/STANDARD
startup mount
restore database
9) Enable DG broker
ALTER SYSTEM SET DG_BROKER_START=TRUE SCOPE=BOTH;
10) Remote login password file.
orapwd file=orapwTESTPMSstdb password=STANDARD IGNORECASE=Y
11) Once duplicate DB recovery completed after the step in 10 (Primary)
shutdown immediate
startup
alter database recover managed standby database disconnect from session;
13. Any error from the above step, then execute the below commands
alter database recover managed standby database CANCEL;
alter database recover managed standby database disconnect from session;
14. Check DB mode
select OPEN_MODE, DATABASE_ROLE from v$database;
OPEN_MODE DATABASE_ROLE
-------------------- ----------------
READ ONLY WITH APPLY PHYSICAL STANDBY
15. Add standby redo log files
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL;;
alter database add standby logfile '/backup/flash_recovery_area/TESTPMSSTDB/onlinelog/stdby_o1_mf_3_9qqbp03n_.log' size
209715200;
alter database add standby logfile '/backup/flash_recovery_area/TESTPMSSTDB/onlinelog/stdby_o1_mf_2_9qqbot0k_.log' size
209715200;
alter database add standby logfile '/backup/flash_recovery_area/TESTPMSSTDB/onlinelog/stdby_o1_mf_1_9qqbomkn_.log' size
209715200;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO scope=both;
16. If redo online log location is in the flash_recovery location then change the location of the redo
online logs to match the primary
17. Install script to clean up the archive log