Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 9

Rolling Forward a Physical Standby Using Recover From Service Command in 12c (Doc

ID 1987763.1)
===================================================================================
===================

SELECT ARCH.THREAD# "Thread", ARCH.SEQUENCE# "Last Sequence Received",


APPL.SEQUENCE# "Last Sequence Applied", (ARCH.SEQUENCE# - APPL.SEQUENCE#)
"Difference" FROM (SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE
(THREAD#,FIRST_TIME ) IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG
GROUP BY THREAD#)) ARCH, (SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE
(THREAD#,FIRST_TIME )
IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL WHERE
ARCH.THREAD# = APPL.THREAD# ORDER BY 1;

Pre-check
============
1) Set blackout for DR database in OEM
2) Verify FRA DISK space for RMAN restore.

PRIMARY
=======
alter system set log_Archive_dest_state_2=DEFER;

SQL> insert into tab1 select * from tab1; ---


Generate log from primary.

131072 rows created.

set lines 200


column FILE_NAM for a50
select HXFIL File_num,substr(HXFNM,1,40),fhscn from x$kcvfh; --- use this
query to check the datafile level scn difference.
------------------------------ --------------------
1 +DATA/DBD00/DATAFILE/system.293.10602220 32504058
2 +DATA/DBD00/DATAFILE/sysaux.278.10602220 32504058
3 +DATA/DBD00/DATAFILE/undotbs1.277.106022 32504058
4 +DATA/DBD00/DATAFILE/undotbs2.292.106022 32504058
5 +DATA/DBD00/DATAFILE/users.291.106022201 32504058
6 +DATA/DBD00/DATAFILE/audit_arch_dat.281. 32504058
7 +DATA/DBD00/DATAFILE/audit_dat.280.10602 32504058

7 rows selected.

SQL> select to_char(current_scn) from v$database;

TO_CHAR(CURRENT_SCN)
----------------------------------------
32508983

*******************************************************************************
STANDBY
=======

SELECT ARCH.THREAD# "Thread", ARCH.SEQUENCE# "Last Sequence Received",


APPL.SEQUENCE# "Last Sequence Applied", (ARCH.SEQUENCE# - APPL.SEQUENCE#)
"Difference" FROM (SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE
(THREAD#,FIRST_TIME ) IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG
GROUP BY THREAD#)) ARCH, (SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE
(THREAD#,FIRST_TIME )
IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL WHERE
ARCH.THREAD# = APPL.THREAD# ORDER BY 1;

Thread Last Sequence Received Last Sequence Applied Difference


---------- ---------------------- --------------------- ----------
1 385 385 0
2 324 324 0

alter database recover managed standby database cancel;

select to_char(current_scn) from v$database;

TO_CHAR(CURRENT_SCN)
----------------------------------------
32508983

set line 200


select HXFIL File_num,substr(HXFNM,1,40),fhscn from x$kcvfh;

FILE_NUM SUBSTR(HXFNM,1,40)
FHSCN
----------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------
--------------------
1 +DATA/DBD00/DATAFILE/system.316.10746403
32510862
2 +DATA/DBD00/DATAFILE/sysaux.258.10746403
32510862
3 +DATA/DBD00/DATAFILE/undotbs1.259.107464
32510862
4 +DATA/DBD00/DATAFILE/undotbs2.306.107464
32510862
5 +DATA/DBD00/DATAFILE/users.263.107464038
32510862
6 +DATA/DBD00/DATAFILE/audit_arch_dat.292.
32510862
7 +DATA/DBD00/DATAFILE/audit_dat.295.10746
32510862

7 rows selected.

[oracle@oraracr10-01 restore_archive_to_Standby]$ srvctl status database -d dbd00 -


v
Instance dbd001 is running on node oraracr10-01. Instance status: Mounted (Closed).
Instance dbd002 is running on node oraracr10-02. Instance status: Mounted (Closed).

[oracle@oraracr10-01 ~]$ srvctl stop database -d dbd00


[oracle@oraracr10-01 ~]$ srvctl status database -d dbd00 -v
Instance dbd001 is not running on node oraracr10-01
Instance dbd002 is not running on node oraracr10-02

[oracle@oraracr10-01 ~]$ srvctl start instance -d dbd00 -i dbd001 -o mount;


----- Bring one node in mount stage.
[oracle@oraracr10-01 ~]$ srvctl status database -d dbd00 -v
Instance dbd001 is running on node oraracr10-01. Instance status: Mounted (Closed).
Instance dbd002 is not running on node oraracr10-02
[oracle@oraracr10-01 ~]$

The RECOVER … FROM SERVICE command refreshes the standby data files and rolls them
forward to the same point-in-time as the primary.
===================================================================================
===============================================
recover database from service DBD00_ORARACP10 noredo using compressed backupset;

connected to target database: DBD00 (DBID=921665587, not open)


RMAN> recover database from service DBD00_ORARACP10 noredo using compressed
backupset;

Starting recover at 08-JUN-2021 23:02:39


using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1428 instance=dbd001 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=1712 instance=dbd001 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=1714 instance=dbd001 device type=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: SID=1993 instance=dbd001 device type=DISK
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: using compressed network backup set from service
DBD00_ORARACP10
destination for restore of datafile 00001:
+DATA/DBD00/DATAFILE/system.316.1074640351
channel ORA_DISK_2: starting incremental datafile backup set restore
channel ORA_DISK_2: using compressed network backup set from service
DBD00_ORARACP10
destination for restore of datafile 00002:
+DATA/DBD00/DATAFILE/sysaux.258.1074640367
channel ORA_DISK_3: starting incremental datafile backup set restore
channel ORA_DISK_3: using compressed network backup set from service
DBD00_ORARACP10
destination for restore of datafile 00003:
+DATA/DBD00/DATAFILE/undotbs1.259.1074640381
channel ORA_DISK_4: starting incremental datafile backup set restore
channel ORA_DISK_4: using compressed network backup set from service
DBD00_ORARACP10
destination for restore of datafile 00004:
+DATA/DBD00/DATAFILE/undotbs2.306.1074640385
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: using compressed network backup set from service
DBD00_ORARACP10
destination for restore of datafile 00005:
+DATA/DBD00/DATAFILE/users.263.1074640387
channel ORA_DISK_2: restore complete, elapsed time: 00:00:02
channel ORA_DISK_2: starting incremental datafile backup set restore
channel ORA_DISK_2: using compressed network backup set from service
DBD00_ORARACP10
destination for restore of datafile 00006:
+DATA/DBD00/DATAFILE/audit_arch_dat.292.1074640387
channel ORA_DISK_3: restore complete, elapsed time: 00:00:03
channel ORA_DISK_3: starting incremental datafile backup set restore
channel ORA_DISK_3: using compressed network backup set from service
DBD00_ORARACP10
destination for restore of datafile 00007:
+DATA/DBD00/DATAFILE/audit_dat.295.1074640389
channel ORA_DISK_4: restore complete, elapsed time: 00:00:02
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_DISK_2: restore complete, elapsed time: 00:00:01
channel ORA_DISK_3: restore complete, elapsed time: 00:00:01

Finished recover at 08-JUN-2021 23:02:47

RMAN>

After restored then see the scn number matched with primary
===========================================================
set long 1000
select HXFIL File_num,substr(HXFNM,1,40),fhscn from x$kcvfh;

FILE_NUM
----------
SUBSTR(HXFNM,1,40)
--------------------------------------------------------------------------------
FHSCN
--------------------
1
+DATA/DBD00/DATAFILE/system.316.10746403
32512823

Startup database in one node


==================================
[oracle@oraracr10-01 ~]$ srvctl status database -d dbd00 -v
Instance dbd001 is running on node oraracr10-01. Instance status: Mounted (Closed).
Instance dbd002 is running on node oraracr10-02. Instance status: Mounted (Closed).
[oracle@oraracr10-01 ~]$ srvctl stop database -d dbd00

SQL> startup nomount; ---


only one node
ORACLE instance started.

***********************************************************************************
****
Restore controlfile using service(DBD00_ORARACP10) from standby rman
=====================================================================
RESTORE STANDBY CONTROLFILE FROM SERVICE DBD00_ORARACP10;

[oracle@oraracr10-01 ~]$ rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Tue Jun 8 23:13:25 2021


Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

connected to target database: DBD00 (not mounted)

RMAN> RESTORE STANDBY CONTROLFILE FROM SERVICE DBD00_ORARACP10;


Starting restore at 08-JUN-2021 23:14:41
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=10 instance=dbd001 device type=DISK

channel ORA_DISK_1: starting datafile backup set restore


channel ORA_DISK_1: using network backup set from service DBD00_ORARACP10
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
output file name=+DATA/DBD00/CONTROLFILE/current.317.1074640343
output file name=+FRA/DBD00/CONTROLFILE/current.451.1074640343
Finished restore at 08-JUN-2021 23:14:46

RMAN> alter database mount;

released channel: ORA_DISK_1


Statement processed

RMAN> report schema;

Starting implicit crosscheck backup at 08-JUN-2021 23:15:50


allocated channel: ORA_DISK_1
allocated channel: ORA_DISK_2
allocated channel: ORA_DISK_3
allocated channel: ORA_DISK_4
Crosschecked 7 objects
Crosschecked 7 objects
Crosschecked 3 objects
Crosschecked 9 objects
Finished implicit crosscheck backup at 08-JUN-2021 23:15:52

Starting implicit crosscheck copy at 08-JUN-2021 23:15:52


using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
Finished implicit crosscheck copy at 08-JUN-2021 23:15:52

searching for all files in the recovery area


cataloging files...
cataloging done

List of Cataloged Files


=======================
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_366.343.1074652597
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_2_seq_314.322.1074654569
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_2_seq_315.312.1074672733
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_2_seq_316.306.1074672937
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_2_seq_317.303.1074673085
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_2_seq_318.299.1074673087
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_367.352.1074674359
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_368.337.1074674361
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_370.327.1074674361
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_372.266.1074674361
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_373.271.1074674361
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_371.256.1074674361
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_369.287.1074674361
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_374.257.1074674361
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_375.263.1074674719
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_376.272.1074674723
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_2_seq_319.313.1074674723
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_377.447.1074674725
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_2_seq_320.446.1074674909
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_2_seq_321.445.1074674911
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_2_seq_322.315.1074674915
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_378.340.1074674917
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_379.429.1074722863
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_380.428.1074722999
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_2_seq_323.427.1074723001
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_381.426.1074723013
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_382.425.1074723433
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_383.424.1074723447
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_2_seq_324.423.1074723449
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_384.422.1074723453
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_385.421.1074723453
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_1_seq_386.420.1074726043
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_08/thread_2_seq_325.419.1074726043
File Name: +FRA/DBD00/ARCHIVELOG/2021_06_07/thread_2_seq_313.270.1074640549

RMAN-06139: warning: control file is not current for REPORT SCHEMA


Report of database schema for database with db_unique_name DBD00

List of Permanent Datafiles


===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 0 SYSTEM ***
+DATA/DBD00/DATAFILE/system.293.1060222007
2 0 SYSAUX ***
+DATA/DBD00/DATAFILE/sysaux.278.1060222009
3 0 UNDOTBS1 ***
+DATA/DBD00/DATAFILE/undotbs1.277.1060222009
4 0 UNDOTBS2 ***
+DATA/DBD00/DATAFILE/undotbs2.292.1060222015
5 0 USERS ***
+DATA/DBD00/DATAFILE/users.291.1060222015
6 0 AUDIT_ARCH_DAT ***
+DATA/DBD00/DATAFILE/audit_arch_dat.281.1060223735
7 0 AUDIT_DAT ***
+DATA/DBD00/DATAFILE/audit_dat.280.1060223735

List of Temporary Files


=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 20 TEMP 32767
+DATA/DBD00/TEMPFILE/temp.286.1060222011

***********************************************************************************
*************************************************

Update the names of the data files and the temp files in the standby control file.
===================================================================================
=====

RMAN> catalog start with '+DATA/DBD00/DATAFILE';

searching for all files that match the pattern +DATA/DBD00/DATAFILE


List of Files Unknown to the Database
=====================================
File Name: +DATA/DBD00/DATAFILE/system.316.1074640351
File Name: +DATA/DBD00/DATAFILE/sysaux.258.1074640367
File Name: +DATA/DBD00/DATAFILE/undotbs1.259.1074640381
File Name: +DATA/DBD00/DATAFILE/undotbs2.306.1074640385
File Name: +DATA/DBD00/DATAFILE/users.263.1074640387
File Name: +DATA/DBD00/DATAFILE/audit_arch_dat.292.1074640387
File Name: +DATA/DBD00/DATAFILE/audit_dat.295.1074640389

Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done

List of Cataloged Files


=======================
File Name: +DATA/DBD00/DATAFILE/system.316.1074640351
File Name: +DATA/DBD00/DATAFILE/sysaux.258.1074640367
File Name: +DATA/DBD00/DATAFILE/undotbs1.259.1074640381
File Name: +DATA/DBD00/DATAFILE/undotbs2.306.1074640385
File Name: +DATA/DBD00/DATAFILE/users.263.1074640387
File Name: +DATA/DBD00/DATAFILE/audit_arch_dat.292.1074640387
File Name: +DATA/DBD00/DATAFILE/audit_dat.295.1074640389

RMAN> SWITCH DATABASE TO COPY;

datafile 1 switched to datafile copy "+DATA/DBD00/DATAFILE/system.316.1074640351"


datafile 2 switched to datafile copy "+DATA/DBD00/DATAFILE/sysaux.258.1074640367"
datafile 3 switched to datafile copy "+DATA/DBD00/DATAFILE/undotbs1.259.1074640381"
datafile 4 switched to datafile copy "+DATA/DBD00/DATAFILE/undotbs2.306.1074640385"
datafile 5 switched to datafile copy "+DATA/DBD00/DATAFILE/users.263.1074640387"
datafile 6 switched to datafile copy
"+DATA/DBD00/DATAFILE/audit_arch_dat.292.1074640387"
datafile 7 switched to datafile copy
"+DATA/DBD00/DATAFILE/audit_dat.295.1074640389"

RMAN>

Optional one, if output came means, need to run


====================================================
Use the current SCN returned in step 4 to determine if new data files were added to
the primary database since the standby database was last refreshed. If yes, these
datafiles need to be restored on the standby from the primary database.

After restore check below query any datafile add while restored. if yes. need to
start catalog
SELECT file# FROM V$DATAFILE WHERE creation_change# >= 32508983;

no rows selected
--- no datafile added here.

RMAN> RUN
2> {
3> SET NEWNAME FOR DATABASE TO '/';
4> RESTORE DATAFILE 21 FROM SERVICE prim;
5> }
**************************************

SQL> select GROUP# from v$logfile where TYPE='STANDBY' group by GROUP#;

GROUP#
----------
5
6
7
8
9

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.

SQL> ALTER DATABASE CLEAR LOGFILE GROUP 8;

Database altered.

SQL> ALTER DATABASE CLEAR LOGFILE GROUP 9;

Database altered.

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> shut immediate;


ORA-01109: database not open

[oracle@oraracr10-01 ~]$ srvctl status database -d dbd00 -v


Instance dbd001 is not running on node oraracr10-01
Instance dbd002 is not running on node oraracr10-02
[oracle@oraracr10-01 ~]$ srvctl start database -d dbd00
[oracle@oraracr10-01 ~]$ srvctl status database -d dbd00 -v
Instance dbd001 is running on node oraracr10-01. Instance status: Mounted (Closed).
Instance dbd002 is running on node oraracr10-02. Instance status: Mounted (Closed).
[oracle@oraracr10-01 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jun 13 03:07:33 2021
Version 19.11.0.0.0

Copyright (c) 1982, 2020, Oracle. All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.11.0.0.0

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Database altered.

SELECT ARCH.THREAD# "Thread", ARCH.SEQUENCE# "Last Sequence Received",


APPL.SEQUENCE# "Last Sequence Applied", (ARCH.SEQUENCE# - APPL.SEQUENCE#)
"Difference" FROM (SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE
(THREAD#,FIRST_TIME ) IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG
GROUP BY THREAD#)) ARCH, (SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE
(THREAD#,FIRST_TIME )
IN (SELECT THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL WHERE
ARCH.THREAD# = APPL.THREAD# ORDER BY 1;

Thread Last Sequence Received Last Sequence Applied Difference


---------- ---------------------- --------------------- ----------
1 389 389 0
2 326 326 0

SQL> select count(*) from gv$archive_gap;

COUNT(*)
----------
0

SQL> select thread#,max(sequence#) from gv$archived_log group by thread#;

THREAD# MAX(SEQUENCE#)
---------- --------------
1 496
2 417

You might also like