You are on page 1of 6

------=============PRIMARY DATABASE========================

SERVER IP : 192.168.111.128
DB_NAME : ORCL
DB_UNIQUE_NAME : ORCL
Database Storage : File System

------=============STANDBY DATABASE========================
SERVER IP : 192.168.111.130
DB_NAME : ORCL
DB_UNIQUE_NAME : ORCLDR
Database Storage : File System

------=====================================================
------==========Enable archivelog mode=====================
------=====================================================

shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
archive log list;

------=====================================================
------============Enable Force logging mode================
------=====================================================

alter database force logging;

------=====================================================
------===Create Standby logfiles in Primary database=======
------=====================================================

ALTER DATABASE ADD STANDBY LOGFILE


'/u01/app/oracle/fast_recovery_area/ORCL/onlinelog/sbylog1.log' size 50M;
ALTER DATABASE ADD STANDBY LOGFILE
'/u01/app/oracle/fast_recovery_area/ORCL/onlinelog/sbylog2.log' size 50M;
ALTER DATABASE ADD STANDBY LOGFILE
'/u01/app/oracle/fast_recovery_area/ORCL/onlinelog/sbylog3.log' size 50M;
ALTER DATABASE ADD STANDBY LOGFILE
'/u01/app/oracle/oradata/ORCL/onlinelog/sbylog4.log' size 50M;
ALTER DATABASE ADD STANDBY LOGFILE
'/u01/app/oracle/oradata/ORCL/onlinelog/sbylog5.log' size 50M;
ALTER DATABASE ADD STANDBY LOGFILE
'/u01/app/oracle/oradata/ORCL/onlinelog/sbylog6.log' size 50M;
ALTER DATABASE ADD STANDBY LOGFILE
'/u01/app/oracle/oradata/ORCL/onlinelog/sbylog7.log' size 50M;

------=====================================================
------================log file configuratins===============
------=====================================================

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcldr)' scope = spfile;

ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/u01/arch' scope = spfile;

ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='service=orcldr async


valid_for=(online_logfile,primary_role)
db_unique_name=orcldr' scope = spfile;
------=====================================================
------======SET STANDBY_FILE_MANAGEMENT TO AUTO============
------=====================================================

ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO scope = spfile;

------=====================================================
------======Fetch Archive Log Client/Server================
------=====================================================

ALTER SYSTEM SET FAL_CLIENT=orcl scope = spfile;

ALTER SYSTEM SET FAL_SERVER=orcldr scope = spfile;

------=====Oracle Net Configuration========================


------====in Both primary and standby servers make
------=====the net configuration as follows
netmgr

------==================listener.ora=======================
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcldr)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)
(SID_NAME = orcldr)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)
(SID_NAME = orcl)
)
)

LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.130)(PORT = 1521))
)

ADR_BASE_LISTENER = /u01/app/oracle

------==================tnsnames.ora=======================
orcldr =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.130)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcldr)
)
)

ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.128)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

----=================To be done in Standby database server===============

Make sure the following folders are available in standby database server:

/u01/app/csisora/admin/orcldr/adump
/u01/app/csisora/admin/orcldr/dpump
/u01/app/csisora/admin/orcldr/pfile
/u01/app/csisora/oradata/orcldr/datafile
/u01/app/csisora/oradata/orcldr/controlfile
/u01/app/csisora/oradata/orcldr/onlinelog
/u01/app/csisora/fast_recovery_area/orcldr/controlfile
/u01/app/csisora/fast_recovery_area/orcldr/onlinelog

if not available then

mkdir -p /u01/app/csisora/admin/orcldr/adump dpdump pfile


mkdir -p /u01/app/csisora/oradata/orcldr/datafile
mkdir -p /u01/app/csisora/oradata/orcldr/controlfile
mkdir -p /u01/app/csisora/oradata/orcldr/onlinelog
mkdir -p /u01/app/csisora/fast_recovery_area/orcldr/controlfile
mkdir -p /u01/app/csisora/fast_recovery_area/orcldr/onlinelog

--------------create initial parameter file with only db_name parameter------

create a initial parameter file with only


db_name=orcldr parameter value

in standby server :

SQL> startup nomount pfile='/home/oracle/tmp/initsby.ora';

----========To be done in Primary database server==========


----========Copy the password to standby database server===

$ cp orapwdorcl orapworcldr
$ scp orapworcldr
oracle@192.168.111.130:/u01/app/oracle/product/12.1.0/dbhome_1/dbs/

-----=======connect to RMAN from the Primary Server=========

rman target sys/sys@orcl auxiliary sys/sys@orcldr

------=====================================================
------======RMAN Command to create standby database========
------=====================================================
run{
backup database plus archivelog;
delete noprompt absolete;
}

RMAN>
run {
allocate channel prmy1 type disk;
allocate channel prmy2 type disk;
allocate channel prmy3 type disk;
allocate channel prmy4 type disk;
allocate auxiliary channel stby type disk;
duplicate target database for standby from active database dorecover
spfile
set db_unique_name='orcldr'
set audit_file_dest='/u01/app/oracle/admin/orcldr/adump/'
set
control_files='/u01/app/oracle/oradata/orcldr/controlfile/o1_mf_cod36mn3_.ctl',
'/u01/app/oracle/fast_recovery_area/orcldr/controlfile/o1_mf_cod36mqh_.ctl'
set log_archive_max_processes='5'
set fal_client='orcldr'
set fal_server='orcl'
set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
set standby_file_management='AUTO'
set LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcldr)'
SET log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST'
SET log_archive_dest_2='service=orcl async
valid_for=(online_logfile,primary_role) db_unique_name=orcl'
NOFILENAMECHECK;
}

----------------check the standby status---------------------------

SQL> select name,db_unique_name,database_role,open_mode from v$database;

------=====================================================
------==============REAL-TIME REDO APPLY===================
------=====================================================

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT
FROM SESSION;

SQL> alter database recover managed standby database cancel;


Database altered.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE
DISCONNECT FROM SESSION;
Database altered.

select name,open_mode from v$database;

alter database open read only;

------=====================================================
------========FORCE A LOG SWITCH IN PRIMARY DATABASE=======
------=====================================================

ALTER SYSTEM SWITCH LOGFILE;

------=====================================================
------========QUERY APPLIED LOG============================
------=====================================================

SELECT sequence#, applied FROM v$archived_log;

------=====================================================
------========QUERY ARCHIVED LOG===========================
------=====================================================
SELECT sequence#, first_time, next_time
FROM v$archived_log
ORDER BY sequence#

------=====================================================
------==========Remove Data Guard Configurations===========
------=====================================================

SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;


------=====================================================
2. Remove below parameters from spfile of primary database:

FAL_SERVER
FAL_CLIENT
LOG_ARCHIVE_CONFIG
DB_FILE_NAME_CONVERT
LOG_FILE_NAME_CONVERT
LOG_ARCHIVE_DEST_n – pointing to standby database like _2 or _3
LOG_ARCHIVE_DEST_STATE_n
STANDBY_ARCHIVE_DEST
STANDBY_FILE_MANAGEMENT
------=====================================================

alter system reset LOG_ARCHIVE_CONFIG scope=spfile;


--show parameter LOG_ARCHIVE_CONFIG;
alter system reset DB_FILE_NAME_CONVERT scope=spfile;
alter system reset LOG_FILE_NAME_CONVERT scope=spfile;
alter system reset STANDBY_FILE_MANAGEMENT scope=spfile;

alter system reset FAL_SERVER scope=spfile;

alter system reset FAL_CLIENT scope=spfile;

alter system reset LOG_ARCHIVE_DEST_STATE_2 scope=spfile;

alter system reset LOG_ARCHIVE_DEST_2 scope=spfile;

--- destination pointing to standby


alter system reset STANDBY_ARCHIVE_DEST scope=spfile;

------=====================================================
3. Drop all standby log files from primary:
------=====================================================

SELECT GROUP# FROM V$STANDBY_LOG;

Alter database drop standby logfile group 4;


Alter database drop standby logfile group 5;
alter database drop standby logfile group 6;
alter database drop standby logfile group 7;
alter database drop standby logfile group 8;
alter database drop standby logfile group 9;
alter database drop standby logfile group 10;

------=====================================================
4. Restart the database to reflect the parameters
------=====================================================
shutdown immediate;
startup;

---------------Dataguard Broker----------------------------

remove configuration

[oracle@oracle12c ~]$ dgmgrl sys/sys@orcl


DGMGRL for Linux: Version 12.1.0.2.0 - 64bit Production

Copyright (c) 2000, 2013, Oracle. All rights reserved.

Welcome to DGMGRL, type "help" for information.


Connected as SYSDBA.
DGMGRL> create configuration 'DGCinfig1' as primary database is 'orcl' connect
identifier is orcl;
Configuration "DGCinfig1" created with primary database "orcl"

add database 'orcldr' as connect identifier is orcldr;

alter system set log_archive_dest_2='' scope = both;

alter system set dg_broker_start=true;

alter system set log_archive_dest_2='service=orcldr async


valid_for=(online_logfile,primary_role)
db_unique_name=orcldr' scope = both;

-----------primary db---------------------------------------

alter system set log_archive_dest_2='' scope = both;

alter system set dg_broker_start=true;

ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='service=orcldr async


valid_for=(online_logfile,primary_role)
db_unique_name=orcldr' scope = spfile;

-----------standby db---------------------------------------

alter system set log_archive_dest_2='' scope = both;

alter system set dg_broker_start=true;

alter system set log_archive_dest_2='service=orcl async


valid_for=(online_logfile,primary_role)
db_unique_name=orcl' scope = both;
-----------------------------------------------------------

DGMGRL> create configuration 'DGConfig1' as primary database is 'orcl' connect


identifier is orcl;

DGMGRL> add database 'orcldr' as connect identifier is orcldr;

You might also like