Dataguard Configuration Document
Dataguard Configuration Document
Server Details
$ mkdir -p /d01/app/oracle/product/12.2.0/dbhome_1/dbs/arch
Sqlplus / as sysdba
SQL> select force_logging from v$database;
SQL> alter database force logging;
GROUP# BYTES
---------- ----------
1 209715200
2 209715200
3 209715200
7 rows selected.
PRIME =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primarydb.local.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prime.local.com)
)
)
STAND =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = standbydb.local.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = stand)
)
)
On Standby Node:
$ cd $ORACLE_HOME/network/admin
$ vi tnsnames.ora
PRIME =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primarydb.vstdec.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prime.vstdec.com)
)
)
STAND =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = standbydb.vstdec.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = stand)
)
)
Create Listener.ora on STANDBY
On Standby node:
$ cd $ORACLE_HOME/network/admin
$ vi listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = standbydb.vstdec.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
--- log_archive_config parameter enables sending and receiving of archive logs to remote dest
----DG_CONFIG - need to specify the list of db_unique_name of both primary and standby.
SQL> alter system set log_archive_config='DG_CONFIG=(prime,stand)' scope=BOTH;
--- tns entry name for primary -- i.e It will fetch the archives from standby .
SQL> alter system set fal_server='stand' scope=BOTH;
Create PFILE:
$ cd /d01/app/oracle/product/12.1.0/dbhome/dbs
$ vi initstand.ora
DB_NAME=prime
DB_UNIQUE_NAME=stand
control_files='/d01/app/oracle/oradata/orcl/control1.ora','/d01/app/oracle/oradata/orcl/control
2.ora','/d01/app/oracle/oradata/orcl/control3.ora'
fal_client='stand'
fal_server='prime'
db_file_name_convert='/d01/app/oracle/oradata/orcl/PRIME/datafile','/d01/app/oracle/oradata'
log_file_name_convert =
'/d01/app/oracle/oradata/orcl/PRIME/onlinelog','/d01/app/oracle/oradata'
log_file_name_convert =
'/d01/app/oracle/fast_recovery_area/prime/PRIME/onlinelog','/d01/app/oracle/oradata'
standby_file_management='AUTO'
log_archive_config='DG_CONFIG=(prime,stand)'
log_archive_dest_1='LOCATION=/d01/app/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=stand'
log_archive_dest_2='service=Prime ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE)
db_unique_name=prime'
remote_login_passwordfile=EXCLUSIVE
rman target /
RMAN> spool log to ‘/d01/rman_bkp/db_backup.log’;
RMAN>
RUN
{
ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT '/d01/rman_bkp/%U';
ALLOCATE CHANNEL disk2 DEVICE TYPE DISK FORMAT '/d01/rman_bkp/%U';
ALLOCATE CHANNEL disk3 DEVICE TYPE DISK FORMAT '/d01/rman_bkp/%U';
ALLOCATE CHANNEL disk4 DEVICE TYPE DISK FORMAT '/d01/rman_bkp/%U';
Sqlplus / as sysdba
SQL> startup nomount;
RMAN> run {
allocate auxiliary channel c1 type disk;
allocate auxiliary channel c2 type disk;
allocate auxiliary channel c3 type disk;
allocate auxiliary channel c4 type disk;
Sqlplus / as sysdba
SQL> select name, db_unique_name, open_mode, database_role from v$database;
$ lsnrctl stop
$ lsnrctl start
$ lsnrctl status
On STANDBY
SQL> alter system set log_archive_dest_state_2=ENABLE scope=both;
Now Change log sequence on PRIMARY and check if the log are getting applied on DR or not.