Steps To Create Physical Standby Using RMAN Duplicate

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


                                    Checklist To Create Physical Standby Database

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

 









Post a Comment

Previous Post Next Post