There are a couple of method
available to create CDB physical standby database either using GUI or manual
method, we can create the physical standby either using traditional method of
copy all the required backup files, standby control file etc. into the target
server and then create standby database with restore database etc. and the other method available is the
duplicate method in which we don’t need to physically copy the database backup
files etc. into the target database server.
Benefit Of Using Target Duplicate Method To
Create Physical standby
The main benefit of using
duplicate method to create standby database is that we don’t need to physically
copy the database backup files, control files etc. into the target server which
means that we don’t need to keep the space into the target server for those
backup files, In duplicate method we can create the physical standby online
while connecting to primary database and in a auxiliary mode to the standby instance.
Things To
Remember In Physical Standby Of A CDB
(1) The
database’s role will be defined at the root container level not at the PDB level
(2) Any sort
of role transition operation either switchover or failover will execute at the
CDB level
(3) MRP works
or must be start at CDB level
(4) The Redo
must be shipped at the root container level
(5) Be
careful to enable or disable ENABLED_PDBS_ON_STANDBY
initialization
parameter in primary database before creating a physical standby
Types Of Standby
Databases
(1) Physical
Standby
(2) Logical
Standby
(3) Snapshot
Standby
In This post, we’ll discuss about how to create physical standby of CDB using duplicate method.
PRIMARY DATABSE |
STANDBY DATABASE |
ORAPRIM |
ORADR |
Task |
Database |
Enable
Force Logging |
Primary
Database |
Check
Archive log Mode |
Primary
Database |
Configure
Primary To Send Redo |
Primary
Database |
Set
Initialization parameter to control redo transport |
Primary
Database |
Set
Initialization Parameter for role transition |
Primary
Database |
Create
require directory in standby database |
Standby
Database |
Create
manual pfile with DBNAME only and start
standby in nomount mode |
Standby
Database |
Create
oracle net connection between primary and standby Database |
Primary
& Standby Both |
Create
password file manually in standby database |
Standby
Database |
Connect
rman with primary database and as an auxiliary to standby instance and make
the required parameter set necessary to create standby database |
Primary
Database |
Start
MRP |
Standby
Database |
Cleared
all the log group |
Standby
Database |
Drop
& Recreate Temp File |
Standby
Database |
Verify
MRP is running fine |
Standby
Database |
Step 1st: Install oracle software only into
the target server
Step 2nd: Make a tns entry for both the
database in primary and standby database server and validate tnsping.
[oracle@oratest ~]$ tnsping
ORAPRIM
TNS Ping Utility for Linux:
Version 19.0.0.0.0 - Production on 20-DEC-2023 10:49:14
Copyright (c) 1997, 2019,
Oracle. All rights reserved.
Used parameter files:
/u01/app/oracle/product/19.0.0/dbhome_1/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve
the alias
Attempting to contact
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oratest)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORAPRIM) (UR=A)))
OK (10 msec)
[oracle@oratest ~]$ tnsping ORADR
TNS Ping Utility for Linux:
Version 19.0.0.0.0 - Production on 20-DEC-2023 10:51:18
Copyright (c) 1997, 2019,
Oracle. All rights reserved.
Used parameter files:
/u01/app/oracle/product/19.0.0/dbhome_1/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oradr)(PORT = 1522))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORADR) (UR=A)))
OK (20 msec)
NOTE: Same tnsping check from standby database server too.
Step 3rd: Create pfile manually in standby database server using only db_name parameter and start the instance in nomount mode
[oracle@oradr dbs]$ cat
initORAPRIM.ora
*.db_name=ORAPRIM
[oracle@oradr dbs]$ sqlplus
"/as sysdba"
SQL*Plus: Release 19.0.0.0.0 -
Production on Wed Dec 20 10:45:44 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019,
Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount
pfile='$ORACLE_HOME/dbs/initORAPRIM.ora'
ORACLE instance started.
Total System Global Area 268434280 bytes
Fixed Size 8895336
bytes
Variable Size
201326592 bytes
Database Buffers
50331648 bytes
Redo Buffers
7880704 bytes
Step 4th: On Standby Database host, create a password file in $ORACLE_HOME/dbs directory
NOTE: For Active duplicate we must create a
password file for the auxiliary instance & establish oracle net
connectivity. This is a temporary password file as it’s will be overwritten
during the duplication operation.
[oracle@oradr dbs]$ orapwd
file=orapwORAPRIM password=welcome#123
[oracle@oradr dbs]$ ls
orapwORAPRIM
orapwORAPRIM
Step 5th: Check connectivity manually with
primary database and as an auxiliary database to standby, create shell script for below
rman command to run it in nohup mode.
[oracle@oratest dbs]$ rman
Recovery Manager: Release
19.0.0.0.0 - Production on Wed Dec 20 12:42:23 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle
and/or its affiliates. All rights
reserved.
RMAN> connect
target sys/sys123@oraprim;
connected to target database:
ORAPRIM (DBID=179388109)
RMAN> connect auxiliary sys/sys123@oradr;
connected to auxiliary database
(not started)
Body Of Shell
Script
Rman target sys/sys123@oraprim;
Connect auxiliary
sys/sys123@oradr;
Run {
Allocate channel c1 device type
disk;
Allocate channel c1 device type
disk;
Allocate auxiliary channel ch1
device type disk;
Duplicate target database for
standby from active database
Spfile
Parameter_value_convert=’ORAPRIM’,’ORADR’
Set db_unique_name=’ORADR’
Set db_file_name_convert=’/u01/oradata/ORAPRIM/’,
‘/u01/oradata/ORADR/’
Set log_file_name_convert=’/u01/oradata/ORAPRIM/’,
‘/u01/oradata/ORADR/’
Set control_files=’/u01/oradata/ORADR/control01.ctl’,’
‘/u01/app/oracle/recovery/_area/ORADR/control02.ctl
Set fal_server=’ORAPRIM’
Set log_archive_config=’
DG_CONFIG=(ORAPRIM,ORADR)’
}
######### Shell Scripts End Here
Step 6th: Run rman shell script created in step 5 in nohup mode
[oracle@oratest scripts]$ nohup rman target sys/sys123@oraprim auxiliary
sys/sys123@oradr cmdfile=/u01/scripts/duplicate.sh log=standby_build.log &
[oracle@oratest scripts]$ tail -10f standby_build.log ( Logfile Of Duplicate command)
Recovery Manager: Release
19.0.0.0.0 - Production on Wed Dec 20 13:34:15 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle
and/or its affiliates. All rights
reserved.
connected to target database:
ORAPRIM (DBID=179388109)
connected to auxiliary database:
ORAPRIM (not mounted)
RMAN> #!/bin/bash
2> #set -xv
3> run {
4> allocate channel c1 device
type disk;
5> allocate channel c2 device
type disk;
6> allocate auxiliary channel
ch1 device type disk;
7> duplicate target database
for standby from active database
8> spfile
9> set db_name='ORAPRIM'
10> set db_unique_name='ORADR'
11> set
db_file_name_convert='/u01/oradata/ORAPRIM/','/u01/oradata/ORADR/'
12> set
log_file_name_convert='/u01/oradata/ORAPRIM/','/u01/oradata/ORADR/'
13> set
control_files='/u01/oradata/ORADR/control01.ctl','/u01/app/oracle/recovery_area/ORADR/control02.ctl'
14> set fal_server='ORAPRIM'
15> set
log_archive_config='DG_CONFIG=(ORAPRIM,ORADR)'
16> NOFILENAMECHECK DORECOVER;
17> }
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=292 device type=DISK
allocated channel: c2
channel c2: SID=276 device
type=DISK
allocated channel: ch1
channel ch1: SID=181 device
type=DISK
Starting Duplicate Db at
20-DEC-23
current log archived
contents of Memory Script:
{
backup as copy reuse
passwordfile auxiliary format
'/u01/app/oracle/product/19.0.0/dbhome_1/dbs/orapwORADR' targetfile
'/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfileORAPRIM.ora'
auxiliary format
'/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfileORADR.ora' ;
sql clone "alter system set spfile=
''/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfileORADR.ora''";
}
executing Memory Script
Starting backup at 20-DEC-23
Finished backup at 20-DEC-23
Starting restore at 20-DEC-23
channel ch1: starting datafile backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: restoring SPFILE
output file
name=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfileORADR.ora
channel ch1: restore complete,
elapsed time: 00:00:01
Finished restore at 20-DEC-23
sql statement: alter system set
spfile= ''/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfileORADR.ora''
contents of Memory Script:
{
sql clone "alter system set
db_name =
''ORAPRIM'' comment=
'''' scope=spfile";
sql clone "alter system set
db_unique_name =
''ORADR'' comment=
'''' scope=spfile";
sql clone "alter system set
db_file_name_convert =
''/u01/oradata/ORAPRIM/'',
''/u01/oradata/ORADR/'' comment=
'''' scope=spfile";
sql clone "alter system set
log_file_name_convert =
''/u01/oradata/ORAPRIM/'',
''/u01/oradata/ORADR/'' comment=
'''' scope=spfile";
sql clone "alter system set
control_files =
''/u01/oradata/ORADR/control01.ctl'',
''/u01/app/oracle/recovery_area/ORADR/control02.ctl'' comment=
'''' scope=spfile";
sql clone "alter system set
fal_server =
''ORAPRIM'' comment=
'''' scope=spfile";
sql clone "alter system set
log_archive_config =
''DG_CONFIG=(ORAPRIM,ORADR)'' comment=
'''' scope=spfile";
shutdown clone immediate;
startup clone nomount;
}
executing Memory Script
sql statement: alter system
set db_name = ''ORAPRIM'' comment= '''' scope=spfile
sql statement: alter system set db_unique_name = ''ORADR'' comment= '''' scope=spfile
sql statement: alter system set db_file_name_convert = ''/u01/oradata/ORAPRIM/'', ''/u01/oradata/ORADR/'' comment= '''' scope=spfile
sql statement: alter system set log_file_name_convert = ''/u01/oradata/ORAPRIM/'', ''/u01/oradata/ORADR/'' comment= '''' scope=spfile
sql statement: alter system set control_files = ''/u01/oradata/ORADR/control01.ctl'', ''/u01/app/oracle/recovery_area/ORADR/control02.ctl'' comment= '''' scope=spfile
sql statement: alter system set fal_server = ''ORAPRIM'' comment= '''' scope=spfile
sql statement: alter system set log_archive_config = ''DG_CONFIG=(ORAPRIM,ORADR)'' comment= '''' scope=spfile
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
Total System Global Area 1728050736 bytes
Fixed Size 9135664 bytes
Variable Size 402653184 bytes
Database Buffers 1308622848 bytes
Redo Buffers 7639040 bytes
allocated channel: ch1
channel ch1: SID=21 device
type=DISK
contents of Memory Script:
{
restore clone from service
'oraprim' standby controlfile;
}
executing Memory Script
Starting restore at 20-DEC-23
channel ch1: starting datafile
backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: restoring control
file
channel ch1: restore complete,
elapsed time: 00:00:04
output file
name=/u01/oradata/ORADR/control01.ctl
output file
name=/u01/app/oracle/recovery_area/ORADR/control02.ctl
Finished restore at 20-DEC-23
contents of Memory Script:
{
sql clone 'alter database mount standby database';
}
executing Memory Script
sql statement: alter database mount standby database
contents of Memory Script:
{
set newname for tempfile 1 to
"/u01/oradata/ORADR/temp01.dbf";
set newname for tempfile 2 to
"/u01/oradata/ORADR/pdbseed/temp012023-12-15_15-14-11-697-PM.dbf";
set newname for tempfile 3 to
"/u01/oradata/ORADR/PDB1/temp01.dbf";
switch clone tempfile all;
set newname for datafile 1 to
"/u01/oradata/ORADR/system01.dbf";
set newname for datafile 3 to
"/u01/oradata/ORADR/sysaux01.dbf";
set newname for datafile 4 to
"/u01/oradata/ORADR/undotbs01.dbf";
set newname for datafile 5 to
"/u01/oradata/ORADR/pdbseed/system01.dbf";
set newname for datafile 6 to
"/u01/oradata/ORADR/pdbseed/sysaux01.dbf";
set newname for datafile 7 to
"/u01/oradata/ORADR/users01.dbf";
set newname for datafile 8 to
"/u01/oradata/ORADR/pdbseed/undotbs01.dbf";
set newname for datafile 9 to
"/u01/oradata/ORADR/PDB1/system01.dbf";
set newname for datafile 10 to
"/u01/oradata/ORADR/PDB1/sysaux01.dbf";
set newname for datafile 11 to
"/u01/oradata/ORADR/PDB1/undotbs01.dbf";
set newname for datafile 12 to
"/u01/oradata/ORADR/PDB1/users01.dbf";
restore
from nonsparse from service
'oraprim'
clone database
;
sql 'alter system archive log current';
}
executing Memory Script
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
renamed tempfile 1 to
/u01/oradata/ORADR/temp01.dbf in control file
renamed tempfile 2 to
/u01/oradata/ORADR/pdbseed/temp012023-12-15_15-14-11-697-PM.dbf in control file
renamed tempfile 3 to
/u01/oradata/ORADR/PDB1/temp01.dbf in control file
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting restore at 20-DEC-23
channel ch1: starting datafile
backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: specifying
datafile(s) to restore from backup set
channel ch1: restoring datafile
00001 to /u01/oradata/ORADR/system01.dbf
channel ch1: restore complete,
elapsed time: 00:00:25
channel ch1: starting datafile
backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: specifying
datafile(s) to restore from backup set
channel ch1: restoring datafile
00003 to /u01/oradata/ORADR/sysaux01.dbf
channel ch1: restore complete,
elapsed time: 00:00:26
channel ch1: starting datafile
backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: specifying
datafile(s) to restore from backup set
channel ch1: restoring datafile
00004 to /u01/oradata/ORADR/undotbs01.dbf
channel ch1: restore complete,
elapsed time: 00:00:15
channel ch1: starting datafile
backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: specifying
datafile(s) to restore from backup set
channel ch1: restoring datafile
00005 to /u01/oradata/ORADR/pdbseed/system01.dbf
channel ch1: restore complete,
elapsed time: 00:00:16
channel ch1: starting datafile
backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: specifying
datafile(s) to restore from backup set
channel ch1: restoring datafile
00006 to /u01/oradata/ORADR/pdbseed/sysaux01.dbf
channel ch1: restore complete,
elapsed time: 00:00:16
channel ch1: starting datafile
backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: specifying
datafile(s) to restore from backup set
channel ch1: restoring datafile
00007 to /u01/oradata/ORADR/users01.dbf
channel ch1: restore complete,
elapsed time: 00:00:01
channel ch1: starting datafile
backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: specifying
datafile(s) to restore from backup set
channel ch1: restoring datafile
00008 to /u01/oradata/ORADR/pdbseed/undotbs01.dbf
channel ch1: restore complete,
elapsed time: 00:00:04
channel ch1: starting datafile
backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: specifying
datafile(s) to restore from backup set
channel ch1: restoring datafile
00009 to /u01/oradata/ORADR/PDB1/system01.dbf
channel ch1: restore complete, elapsed
time: 00:00:15
channel ch1: starting datafile
backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: specifying
datafile(s) to restore from backup set
channel ch1: restoring datafile
00010 to /u01/oradata/ORADR/PDB1/sysaux01.dbf
channel ch1: restore complete,
elapsed time: 00:00:16
channel ch1: starting datafile
backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: specifying
datafile(s) to restore from backup set
channel ch1: restoring datafile
00011 to /u01/oradata/ORADR/PDB1/undotbs01.dbf
channel ch1: restore complete,
elapsed time: 00:00:03
channel ch1: starting datafile
backup set restore
channel ch1: using network backup
set from service oraprim
channel ch1: specifying
datafile(s) to restore from backup set
channel ch1: restoring datafile
00012 to /u01/oradata/ORADR/PDB1/users01.dbf
channel ch1: restore complete,
elapsed time: 00:00:01
Finished restore at 20-DEC-23
sql statement: alter system
archive log current
current log archived
contents of Memory Script:
{
restore clone force from service
'oraprim'
archivelog from scn 2616534;
switch clone datafile all;
}
executing Memory Script
Starting restore at 20-DEC-23
channel ch1: starting archived
log restore to default destination
channel ch1: using network backup
set from service oraprim
channel ch1: restoring archived
log
archived log thread=1 sequence=6
channel ch1: restore complete,
elapsed time: 00:00:01
channel ch1: starting archived
log restore to default destination
channel ch1: using network backup
set from service oraprim
channel ch1: restoring archived
log
archived log thread=1 sequence=7
channel ch1: restore complete,
elapsed time: 00:00:01
Finished restore at 20-DEC-23
datafile 1 switched to datafile
copy
input datafile copy RECID=5
STAMP=1156081987 file name=/u01/oradata/ORADR/system01.dbf
datafile 3 switched to datafile
copy
input datafile copy RECID=6
STAMP=1156081987 file name=/u01/oradata/ORADR/sysaux01.dbf
datafile 4 switched to datafile
copy
input datafile copy RECID=7
STAMP=1156081988 file name=/u01/oradata/ORADR/undotbs01.dbf
datafile 5 switched to datafile
copy
input datafile copy RECID=8
STAMP=1156081988 file name=/u01/oradata/ORADR/pdbseed/system01.dbf
datafile 6 switched to datafile
copy
input datafile copy RECID=9
STAMP=1156081988 file name=/u01/oradata/ORADR/pdbseed/sysaux01.dbf
datafile 7 switched to datafile
copy
input datafile copy RECID=10
STAMP=1156081988 file name=/u01/oradata/ORADR/users01.dbf
datafile 8 switched to datafile
copy
input datafile copy RECID=11
STAMP=1156081988 file name=/u01/oradata/ORADR/pdbseed/undotbs01.dbf
datafile 9 switched to datafile
copy
input datafile copy RECID=12
STAMP=1156081988 file name=/u01/oradata/ORADR/PDB1/system01.dbf
datafile 10 switched to datafile
copy
input datafile copy RECID=13
STAMP=1156081988 file name=/u01/oradata/ORADR/PDB1/sysaux01.dbf
datafile 11 switched to datafile
copy
input datafile copy RECID=14
STAMP=1156081988 file name=/u01/oradata/ORADR/PDB1/undotbs01.dbf
datafile 12 switched to datafile
copy
input datafile copy RECID=15
STAMP=1156081988 file name=/u01/oradata/ORADR/PDB1/users01.dbf
contents of Memory Script:
{
set until scn 2617057;
recover
standby
clone database
delete archivelog
;
}
executing Memory Script
executing command: SET until
clause
Starting recover at 20-DEC-23
starting media recovery
archived log for thread 1 with
sequence 6 is already on disk as file
/u01/app/oracle/recovery_area/ORADR/archivelog/2023_12_20/o1_mf_1_6_lr5939bl_.arc
archived log for thread 1 with
sequence 7 is already on disk as file
/u01/app/oracle/recovery_area/ORADR/archivelog/2023_12_20/o1_mf_1_7_lr593bnc_.arc
archived log file
name=/u01/app/oracle/recovery_area/ORADR/archivelog/2023_12_20/o1_mf_1_6_lr5939bl_.arc
thread=1 sequence=6
archived log file
name=/u01/app/oracle/recovery_area/ORADR/archivelog/2023_12_20/o1_mf_1_7_lr593bnc_.arc
thread=1 sequence=7
media recovery complete, elapsed
time: 00:00:02
Finished recover at 20-DEC-23
contents of Memory Script:
{
delete clone force archivelog all;
}
executing Memory Script
deleted archived log
archived log file
name=/u01/app/oracle/recovery_area/ORADR/archivelog/2023_12_20/o1_mf_1_6_lr5939bl_.arc
RECID=1 STAMP=1156081985
deleted archived log
archived log file
name=/u01/app/oracle/recovery_area/ORADR/archivelog/2023_12_20/o1_mf_1_7_lr593bnc_.arc
RECID=2 STAMP=1156081986
Deleted 2 objects
Finished Duplicate Db at
20-DEC-23
released channel: c1
released channel: ch1
Recovery Manager complete.
Step 7th: Clear
log group created on standby database after standby creation
SQL> alter database clear logfile group 1;
Database altered.
SQL> alter database clear logfile group 2;
Database altered.
SQL> alter database clear logfile group 3;
Database altered.
SQL> alter database clear logfile group 4;
Database altered.
SQL> alter database clear logfile group 5;
Database altered.
SQL> alter database clear logfile group 6;
Database altered.
SQL> alter database clear logfile group 7;
Database altered.
Step 8th: Drop & Recreate Temp Files In Standby Database
NOTE: Drop & re-create tempfile otherwise we’ll get error highlighted in a box everytime whenever Standby will restart.
CON_ID|TABLESPACE_NAME |FILE_NAME |BYTES/1024/1024
----------|------------------------------|----------------------------------------------------------------------------------------------------|---------------
3|TEMP |/u01/app/oracle/oradata/IND_DR/0D40A9D4D52D26BDE0630901A8C0E8F7/datafile/o1_mf_temp_lrjt24w7_.tmp | 36
1|TEMP |/u01/app/oracle/oradata/IND_DR/datafile/o1_mf_temp_lrjsz8bj_.tmp | 20
SQL> alter database open read only;
Database altered.
SQL> alter tablespace TEMP add tempfile
'/u01/app/oracle/oradata/IND_DR/datafile/TEMP01.dbf' size 50M;
Tablespace altered.
SQL> alter tablespace TEMP drop tempfile
'/u01/app/oracle/oradata/IND_DR/datafile/o1_mf_temp_lrjsz8bj_.tmp';
Tablespace altered.
SQL> alter session set container=PDB1;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
PDB1
SQL> alter tablespace TEMP add tempfile
'/u01/app/oracle/oradata/IND_DR/datafile/PDB1_TEMP01' size 20M;
Tablespace altered.
SQL> alter tablespace TEMP drop tempfile '/u01/app/oracle/oradata/IND_DR/0D40A9D4D52D26BDE0630901A8C0E8F7/datafile/o1_mf_temp_lrjt24w7_.tmp';
Tablespace altered.
CON_ID|TABLESPACE_N|FILE_NAME |BYTES/1024/1024
----------|------------|---------------------------------------------------|---------------
3|TEMP
|/u01/app/oracle/oradata/IND_DR/datafile/PDB1_TEMP01|
20
1|TEMP
|/u01/app/oracle/oradata/IND_DR/datafile/TEMP01.dbf |
50
STEP 9th: Start MRP Process
SQL> alter database recover managed standby database
disconnect from session;
Database altered.
STEP 10th: Verify if MRP is running fine
NOTE A. Since v$managed_standby is deprecated as of oracle 12c , So use Use
v$dataguard_process
NOTE B. Recovery logmerger role shows that redo is being applied at the standby
Standby
Database Output
SQL>select name,role,action,group#,thread#,sequence#,BLOCK#,BLOCK_COUNT,DELAY_MINS from v$dataguard_process;
NAME |ROLE |ACTION | GROUP#| THREAD#| SEQUENCE#| BLOCK#|BLOCK_COUNT|DELAY_MINS
-----|------------------------|------------|----------|----------|----------|----------|-----------|----------
LGWR |log writer
|IDLE | 0| 0|
0| 0| 0| 0
TMON |redo transport
monitor |IDLE | 0| 0| 0| 0| 0| 0
TT00 |gap manager
|IDLE | 0| 0|
0| 0| 0| 0
TT01 |redo transport
timer |IDLE |
0| 0| 0|
0| 0| 0
ARC0 |archive local
|IDLE | 0| 0|
0| 0| 0| 0
ARC1 |archive redo
|IDLE | 0| 0|
0| 0| 0| 0
ARC2 |archive redo
|IDLE | 0| 0|
0| 0| 0| 0
ARC3 |archive redo
|IDLE | 0| 0|
0| 0| 0| 0
rfs |RFS ping |IDLE | 0| 1|
5| 0| 0| 0
rfs |RFS async |IDLE | 4| 1|
5| 10087| 1| 0
MRP0 |managed recovery |IDLE | 0| 0|
0| 0| 0| 0
PR00 |recovery logmerger
|APPLYING_LOG| 0| 1|
5| 10087|
409600| 0
PR01 |recovery apply slave
|IDLE | 0| 0|
0| 0| 0| 0
PR02 |recovery apply slave
|IDLE | 0| 0|
0| 0| 0| 0