{"id":37537,"date":"2020-07-02T15:23:44","date_gmt":"2020-07-02T22:23:44","guid":{"rendered":"https:\/\/virtual-dba.com\/?p=37537"},"modified":"2025-11-12T09:30:20","modified_gmt":"2025-11-12T16:30:20","slug":"refreshing-physical-standby-using-recover-from-service-on-12c","status":"publish","type":"post","link":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/","title":{"rendered":"Refreshing a Physical Standby Using Recover from Service on 12c"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-summary\">SUMMARY:<\/h2>\n\n\n\n<p>Database administrators must roll forward a troubled Oracle 12c Physical Standby database to resolve severe data gaps caused by missing or corrupt archive logs by executing a multi-step RMAN procedure utilizing the automated <code>RECOVER FROM SERVICE<\/code> command.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Rolling forward<\/strong> the Physical Standby database using the <code>RECOVER FROM SERVICE<\/code> feature is the preferred method over rebuilding the entire standby database when archive logs are missing or corrupt.<\/li>\n\n\n\n<li>The initial procedure requires placing the physical standby in mount mode and stopping the managed recovery process (MRP) using DGMGRL.<\/li>\n\n\n\n<li>The <code>recover database from service XTPRIM<\/code> RMAN command automates taking and applying incremental backups from the primary database, but subsequent steps like control file synchronization remain manual in 12c.<\/li>\n\n\n\n<li>Successfully achieving synchronization requires comparing data file SCNs between the primary and standby, refreshing the physical standby\u2019s control file from the primary, cataloging new data file locations, and finally restarting the managed recovery process.<\/li>\n<\/ul>\n\n\n\n<p>This complex, multi-step RMAN intervention is essential for synchronizing the Data Guard environment and ensuring the continuous application of logs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-refresh-an-oracle-12c-physical-standby-using-rman-recover-from-service\">How to Refresh an Oracle 12c Physical Standby Using RMAN Recover from Service<\/h2>\n\n\n\n<div style=\"height:29px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>If you&#8217;re in a situation where you need to resolve a gap in a Data Guard environment due to missing\/corrupt archive logs, rolling forward the Physical Standby would be your best option vs. having to rebuild your entire physical standby database. It has become much easier to roll forward a physical standby with the updated features of RMAN on the newer versions. Before 12c, manual steps were needed to determine the current SCN, take an incremental backup, etc. Starting with 12c, the first few steps of taking and applying incremental backups are now automated, but you still have to update your control file to complete the synchronization. From 18c onwards, manual intervention is gone, and refreshing the physical standby runs in one command.<\/p>\n\n\n\n<p>In this tutorial, I will be performing a roll-forward of the physical standby using RECOVER FROM SERVICE on a 12c Database.<\/p>\n\n\n\n<p>Here are the TEST lab environment details:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"740\" height=\"372\" src=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Refreshing-a-Physical-Standby-Using-Recover-from-Service-on-12c_-test-lab-environment-details.png\" alt=\"Refreshing a Physical Standby Using Recover from Service on 12c_ test lab environment details\" class=\"wp-image-37539\" style=\"width:370px;height:186px\"\/><\/figure>\n\n\n\n<p>I simulated an unrecoverable gap in this environment by turning off log transport on the primary, then switching log files enough to cycle through the redo logs, then deleting the generated archive logs. After turning on log transport, it will clearly be unable to resolve the gap.<\/p>\n\n\n<pre><code>  DGMGRL&gt; show configuration  \n    \n  Configuration - my_dg_config  \n    \n    Protection Mode: MaxPerformance  \n    Members:  \n    xtprim - Primary database  \n      Error: ORA-16724: cannot resolve gap for one or more members  \n    \n     xtstby - Physical standby database  \n       Warning: ORA-16809: multiple warnings detected for the member  \n   \n Fast-Start Failover: DISABLED  \n   \n Configuration Status:  \n ERROR   (status updated 6 seconds ago)  <\/code><\/pre>\n\n\n<p>Steps:<\/p>\n\n\n\n<p>1. Standby should be in mount mode<\/p>\n\n\n<pre><code>      SQL&gt; select NAME, DB_UNIQUE_NAME, OPEN_MODE, DATABASE_ROLE from V$DATABASE;  \n        \n      NAME      DB_UNIQUE_NAME    OPEN_MODE     DATABASE_ROLE  \n      --------- ----------------  ------------- ----------------  \n      XTPRIM    XTSTBY            MOUNTED       PHYSICAL STANDBY <\/code><\/pre>\n\n\n<p>2. Stop the managed recovery process (MRP) on the physical standby using broker (DGMGRL)<\/p>\n\n\n<pre><code>      DGMGRL&gt; edit database XTSTBY set state=APPLY-OFF;  \n      Succeeded.  <\/code><\/pre>\n\n\n<p>3. Identify the datafiles on the physical standby database that are out of sync.<\/p>\n\n\n<p><code>XTPRIM<\/code><\/p>\n<pre><code>      SQL&gt; select HXFIL, FHSCN from X$KCVFH;  \n        \n           HXFIL FHSCN  \n      ---------- --------------------  \n               1 2269109  \n               3 2269109  \n               4 2269109  \n               5 1435690  \n               6 1435690  \n            7 2269109  \n            9 1572106  \n           10 1572106  \n           11 1572106<\/code><\/pre>\n<p><code>XTSTBY<\/code><\/p>\n<pre><code>  SQL&gt; select HXFIL, FHSCN from X$KCVFH;  \n    \n       HXFIL FHSCN  \n  ---------- --------------------  \n           1 2268370  \n           3 2268370  \n           4 2268370  \n           5 1435690  \n           6 1435690  \n          7 2268370  \n          9 1572106  \n         10 1572106  \n         11 1572106  <\/code><\/pre>\n\n\n<p>4. Take note of the current SCN of the physical standby database. This is required to determine, in a later step, if datafiles were added to the primary database.<\/p>\n\n\n<pre><code>  SQL&gt; select CURRENT_SCN from V$DATABASE;  \n    \n  CURRENT_SCN  \n  -----------  \n      2268369  <\/code><\/pre>\n\n\n<p>5. Roll forward the physical standby database using the RECOVER FROM SERVICE command..<\/p>\n\n\n<pre><code>  [oracle@asmnode2 ~]$ rman target \/  \n    \n  Recovery Manager: Release 12.2.0.1.0 - Production on Mon Jun 22 10:51:12 2020  \n    \n  Copyright (c) 1982, 2017, Oracle and\/or its affiliates.  All rights reserved.  \n    \n  connected to target database: XTPRIM (DBID=3617192712, not open)<\/code><\/pre>\n<pre><code>  RMAN&gt; recover database from service XTPRIM noredo using compressed backupset;  \n    \n  Starting recover at 22-JUN-20  \n  Starting implicit crosscheck backup at 22-JUN-20  \n  using target database control file instead of recovery catalog  \n  allocated channel: ORA_DISK_1  \n  channel ORA_DISK_1: SID=29 device type=DISK  \n  Crosschecked 2 objects  \n  Finished implicit crosscheck backup at 22-JUN-20  \n   \n Starting implicit crosscheck copy at 22-JUN-20  \n using channel ORA_DISK_1  \n Finished implicit crosscheck copy at 22-JUN-20  \n   \n searching for all files in the recovery area  \n cataloging files...  \n no files cataloged  \n   \n using channel ORA_DISK_1  \n skipping datafile 5; already restored to SCN 1435690  \n skipping datafile 6; already restored to SCN 1435690  \n skipping datafile 9; already restored to SCN 1572106  \n skipping datafile 10; already restored to SCN 1572106  \n skipping datafile 11; already restored to SCN 1572106  \n channel ORA_DISK_1: starting incremental datafile backup set restore  \n channel ORA_DISK_1: using compressed network backup set from service XTPRIM  \n destination for restore of datafile 00001: +DATA\/XTSTBY\/DATAFILE\/system.260.1043528437  \n channel ORA_DISK_1: restore complete, elapsed time: 00:00:07  \n channel ORA_DISK_1: starting incremental datafile backup set restore  \n channel ORA_DISK_1: using compressed network backup set from service XTPRIM  \n destination for restore of datafile 00003: +DATA\/XTSTBY\/DATAFILE\/sysaux.261.1043528451  \n channel ORA_DISK_1: restore complete, elapsed time: 00:00:08  \n channel ORA_DISK_1: starting incremental datafile backup set restore  \n channel ORA_DISK_1: using compressed network backup set from service XTPRIM  \n destination for restore of datafile 00004: +DATA\/XTSTBY\/DATAFILE\/undotbs1.262.1043528459  \n channel ORA_DISK_1: restore complete, elapsed time: 00:00:03  \n channel ORA_DISK_1: starting incremental datafile backup set restore  \n channel ORA_DISK_1: using compressed network backup set from service XTPRIM  \n destination for restore of datafile 00007: +DATA\/XTSTBY\/DATAFILE\/users.265.1043528467  \n channel ORA_DISK_1: restore complete, elapsed time: 00:00:03  \n   \n Finished recover at 22-JUN-20 <\/code><\/pre>\n\n\n<p>6. Compare both primary and standby&#8217;s datafile SCN&#8217;s.<\/p>\n\n\n<p><code>XTPRIM<\/code><\/p>\n<pre><code>      SQL&gt; select HXFIL, FHSCN from X$KCVFH;  \n        \n           HXFIL FHSCN  \n      ---------- --------------------  \n               1 2277525  \n               3 2277539  \n               4 2277553  \n               5 1435690  \n               6 1435690  \n            7 2277561  \n            9 1572106  \n           10 1572106  \n           11 1572106  <\/code><\/pre>\n<p><code>XTSTBY<\/code><\/p>\n<pre><code>      RMAN&gt; select HXFIL, FHSCN from X$KCVFH;  \n        \n           HXFIL FHSCN  \n      ---------- --------------------  \n               1 2277525  \n               3 2277539  \n               4 2277553  \n               5 1435690  \n               6 1435690  \n            7 2277561  \n            9 1572106  \n           10 1572106  \n           11 1572106  <\/code><\/pre>\n\n\n<p>We should now see that the datafiles are in sync.<\/p>\n\n\n\n<p><p>7. Complete the synchronization by refreshing the physical standby&#8217;s control file from the primary.<\/p>\n\n\n<pre><code>  RMAN&gt; shutdown immediate  \n  RMAN&gt; startup nomount  <\/code><\/pre>\n<pre><code>  RMAN&gt; restore standby controlfile from service XTPRIM;  \n    \n  Starting restore at 22-JUN-20  \n  allocated channel: ORA_DISK_1  \n  channel ORA_DISK_1: SID=260 device type=DISK  \n    \n  channel ORA_DISK_1: starting datafile backup set restore  \n channel ORA_DISK_1: using network backup set from service XTPRIM  \n  channel ORA_DISK_1: restoring control file  \n channel ORA_DISK_1: restore complete, elapsed time: 00:00:04  \n output file name=+DATA\/XTSTBY\/CONTROLFILE\/current.259.1043528429  \n output file name=+FRA\/XTSTBY\/CONTROLFILE\/current.258.1043528429  \n Finished restore at 22-JUN-20<\/code><\/pre>\n<\/p>\n\n\n<p>Mount database<\/p>\n\n\n<pre><code>  RMAN&gt; alter database mount <\/code><\/pre>\n\n\n<p>8. Catalog the datafile location. Since this environment is using Oracle Manage Files (OMF), the file structure and datafiles names will be different. You will get a warning message: RMAN-06139: warning: control file is not current for REPORT SCHEMA. during report schema.<\/p>\n\n\n<pre><code>  RMAN&gt; report schema;  \n    \n  Starting implicit crosscheck backup at 22-JUN-20  \n  released channel: ORA_DISK_1  \n  allocated channel: ORA_DISK_1  \n  channel ORA_DISK_1: SID=260 device type=DISK  \n  Crosschecked 10 objects  \n  Finished implicit crosscheck backup at 22-JUN-20  \n    \n Starting implicit crosscheck copy at 22-JUN-20  \n using channel ORA_DISK_1  \n Finished implicit crosscheck copy at 22-JUN-20  \n   \n searching for all files in the recovery area  \n cataloging files...  \n cataloging done  \n   \n List of Cataloged Files  \n =======================  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_22\/thread_1_seq_30.284.1043740837  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_22\/thread_1_seq_31.285.1043747041  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_22\/thread_1_seq_38.286.1043749751  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_22\/thread_1_seq_39.287.1043749869  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_21\/thread_1_seq_25.279.1043626555  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_21\/thread_1_seq_26.280.1043657483  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_21\/thread_1_seq_27.281.1043657511  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_21\/thread_1_seq_28.282.1043680031  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_21\/thread_1_seq_29.283.1043701101  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_20\/thread_1_seq_20.273.1043573589  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_20\/thread_1_seq_21.274.1043573589  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_20\/thread_1_seq_19.275.1043573591  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_20\/thread_1_seq_22.276.1043573603  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_20\/thread_1_seq_23.277.1043588677  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_20\/thread_1_seq_24.278.1043604915  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_19\/thread_1_seq_12.259.1043528483  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_19\/thread_1_seq_13.260.1043528485  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_19\/thread_1_seq_14.268.1043529443  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_19\/thread_1_seq_15.269.1043529617  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_19\/thread_1_seq_16.270.1043529689  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_19\/thread_1_seq_17.271.1043529691  \n File Name: +FRA\/XTSTBY\/ARCHIVELOG\/2020_06_19\/thread_1_seq_18.272.1043529691  \n   \n RMAN-06139: warning: control file is not current for REPORT SCHEMA  \n Report of database schema for database with db_unique_name XTSTBY  \n   \n List of Permanent Datafiles  \n ===========================  \n File Size(MB) Tablespace           RB segs Datafile Name  \n ---- -------- -------------------- ------- ------------------------  \n 1    0        SYSTEM               ***     +DATA\/XTPRIM\/DATAFILE\/system.257.1043513685  \n 3    0        SYSAUX               ***     +DATA\/XTPRIM\/DATAFILE\/sysaux.258.1043513729  \n 4    0        UNDOTBS1             ***     +DATA\/XTPRIM\/DATAFILE\/undotbs1.259.1043513755  \n 5    0        PDB$SEED:SYSTEM      ***     +DATA\/XTPRIM\/4700A987085B3DFAE05387E5E50A8C7B\/DATAFILE\/system.267.1043513859  \n 6    0        PDB$SEED:SYSAUX      ***     +DATA\/XTPRIM\/4700A987085B3DFAE05387E5E50A8C7B\/DATAFILE\/sysaux.266.1043513859  \n 7    0        USERS                ***     +DATA\/XTPRIM\/DATAFILE\/users.260.1043513757  \n 9    0        PDB1:SYSTEM          ***     +DATA\/XTPRIM\/A877553C8E534E4FE0530FBEA8C06F41\/DATAFILE\/system.270.1043514675  \n 10   0        PDB1:SYSAUX          ***     +DATA\/XTPRIM\/A877553C8E534E4FE0530FBEA8C06F41\/DATAFILE\/sysaux.271.1043514675  \n 11   0        PDB1:MARVIN          ***     +DATA\/XTPRIM\/A877553C8E534E4FE0530FBEA8C06F41\/DATAFILE\/marvin.273.1043514911  \n   \n List of Temporary Files  \n =======================  \n File Size(MB) Tablespace           Maxsize(MB) Tempfile Name  \n ---- -------- -------------------- ----------- --------------------  \n 1    20       TEMP                 32767       +DATA\/XTPRIM\/TEMPFILE\/temp.265.1043513851  \n 2    64       PDB$SEED:TEMP        32767       +DATA\/XTPRIM\/A877267091982C90E0530FBEA8C0E855\/TEMPFILE\/temp.269.1043513889  \n 3    64       PDB1:TEMP            32767       +DATA\/XTPRIM\/A877553C8E534E4FE0530FBEA8C06F41\/TEMPFILE\/temp.272.1043514677 <\/code><\/pre>\n\n\n<p>We need to update the datafile location and name using catalog.<\/p>\n\n\n<pre><code>  RMAN&gt; catalog start with '+DATA\/XTSTBY\/';  \n    \n  searching for all files that match the pattern +DATA\/XTSTBY\/  \n    \n  List of Files Unknown to the Database  \n  =====================================  \n  File Name: +DATA\/XTSTBY\/A877553C8E534E4FE0530FBEA8C06F41\/DATAFILE\/system.266.1043528469  \n  File Name: +DATA\/XTSTBY\/A877553C8E534E4FE0530FBEA8C06F41\/DATAFILE\/sysaux.267.1043528471  \n  File Name: +DATA\/XTSTBY\/A877553C8E534E4FE0530FBEA8C06F41\/DATAFILE\/marvin.268.1043528479  \n File Name: +DATA\/XTSTBY\/A877267091982C90E0530FBEA8C0E855\/DATAFILE\/system.263.1043528461  \n File Name: +DATA\/XTSTBY\/A877267091982C90E0530FBEA8C0E855\/DATAFILE\/sysaux.264.1043528463  \n File Name: +DATA\/XTSTBY\/DATAFILE\/system.260.1043528437  \n File Name: +DATA\/XTSTBY\/DATAFILE\/sysaux.261.1043528451  \n File Name: +DATA\/XTSTBY\/DATAFILE\/undotbs1.262.1043528459  \n File Name: +DATA\/XTSTBY\/DATAFILE\/users.265.1043528467  \n   \n   \n Do you really want to catalog the above files (enter YES or NO)? YES  \n cataloging files...  \n cataloging done  \n   \n List of Cataloged Files  \n =======================  \n File Name: +DATA\/XTSTBY\/A877553C8E534E4FE0530FBEA8C06F41\/DATAFILE\/system.266.1043528469  \n File Name: +DATA\/XTSTBY\/A877553C8E534E4FE0530FBEA8C06F41\/DATAFILE\/sysaux.267.1043528471  \n File Name: +DATA\/XTSTBY\/A877553C8E534E4FE0530FBEA8C06F41\/DATAFILE\/marvin.268.1043528479  \n File Name: +DATA\/XTSTBY\/A877267091982C90E0530FBEA8C0E855\/DATAFILE\/system.263.1043528461  \n File Name: +DATA\/XTSTBY\/A877267091982C90E0530FBEA8C0E855\/DATAFILE\/sysaux.264.1043528463  \n File Name: +DATA\/XTSTBY\/DATAFILE\/system.260.1043528437  \n File Name: +DATA\/XTSTBY\/DATAFILE\/sysaux.261.1043528451  \n File Name: +DATA\/XTSTBY\/DATAFILE\/undotbs1.262.1043528459  \n File Name: +DATA\/XTSTBY\/DATAFILE\/users.265.1043528467  \n   \n List of Files Which Were Not Cataloged  \n =======================================  \n File Name: +DATA\/XTSTBY\/CONTROLFILE\/current.257.1043528427  \n   RMAN-07517: Reason: The file header is corrupted  \n File Name: +DATA\/XTSTBY\/CONTROLFILE\/current.258.1043528427  \n   RMAN-07517: Reason: The file header is corrupted<\/code><\/pre>\n\n\n<p>The error can be ignored since these are the old control files that we can remove later.<\/p>\n\n\n\n<p>9. Switch to the cataloged datafile copy<\/p>\n\n\n<pre><code>  RMAN&gt; switch database to copy;  \n    \n  datafile 1 switched to datafile copy \"+DATA\/XTSTBY\/DATAFILE\/system.260.1043528437\"  \n  datafile 3 switched to datafile copy \"+DATA\/XTSTBY\/DATAFILE\/sysaux.261.1043528451\"  \n  datafile 4 switched to datafile copy \"+DATA\/XTSTBY\/DATAFILE\/undotbs1.262.1043528459\"  \n  datafile 5 switched to datafile copy \"+DATA\/XTSTBY\/A877267091982C90E0530FBEA8C0E855\/DATAFILE\/system.263.1043528461\"  \n  datafile 6 switched to datafile copy \"+DATA\/XTSTBY\/A877267091982C90E0530FBEA8C0E855\/DATAFILE\/sysaux.264.1043528463\"  \n  datafile 7 switched to datafile copy \"+DATA\/XTSTBY\/DATAFILE\/users.265.1043528467\"  \n  datafile 9 switched to datafile copy \"+DATA\/XTSTBY\/A877553C8E534E4FE0530FBEA8C06F41\/DATAFILE\/system.266.1043528469\"  \n datafile 10 switched to datafile copy \"+DATA\/XTSTBY\/A877553C8E534E4FE0530FBEA8C06F41\/DATAFILE\/sysaux.267.1043528471\"  \n datafile 11 switched to datafile copy \"+DATA\/XTSTBY\/A877553C8E534E4FE0530FBEA8C06F41\/DATAFILE\/marvin.268.1043528479\"<\/code><\/pre>\n\n\n<p>10. 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.<\/p>\n\n\n<pre><code>  RMAN&gt; select file# from V$DATAFILE where CREATION_CHANGE# &gt;= 2268369; \n   \n  no rows selected  <\/code><\/pre>\n\n\n<p>11. Update the names of the online redo logs and standby redo logs in the standby control file using the following methods:<\/p>\n\n\n<pre><code>  RMAN&gt; select GROUP# from V$LOG;  \n    \n      GROUP#  \n  ----------  \n           1  \n           3  \n           2  \n    \n  RMAN&gt; select GROUP# from V$LOGFILE where TYPE='STANDBY' group by GROUP#;  \n   \n     GROUP#  \n ----------  \n         10  \n         11  \n         12  \n         13  \n   \n SQL&gt; ALTER DATABASE CLEAR LOGFILE GROUP 1;  \n SQL&gt; ALTER DATABASE CLEAR LOGFILE GROUP 2;  \n SQL&gt; ALTER DATABASE CLEAR LOGFILE GROUP 3;  \n SQL&gt; ALTER DATABASE CLEAR LOGFILE GROUP 10;  \n SQL&gt; ALTER DATABASE CLEAR LOGFILE GROUP 11;  \n SQL&gt; ALTER DATABASE CLEAR LOGFILE GROUP 12;  \n SQL&gt; ALTER DATABASE CLEAR LOGFILE GROUP 13;<\/code><\/pre>\n\n\n<p>12. Using broker (DGMGRL), start the managed recovery process (MRP).<\/p>\n\n\n<pre><code>      DGMGRL&gt; edit database XTSTBY set state=APPLY-ON;  \n      Succeeded.<\/code><\/pre>\n\n\n<p>Physical standby should now be in sync with the primary and logs are back to being applied.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SUMMARY: Database administrators must roll forward a troubled Oracle 12c Physical Standby database to resolve severe data gaps caused by missing or corrupt archive logs by executing a multi-step RMAN procedure utilizing the automated RECOVER FROM SERVICE command. This complex, multi-step RMAN intervention is essential for synchronizing the Data Guard environment and ensuring the continuous [&hellip;]<\/p>\n","protected":false},"author":39,"featured_media":37548,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","content-type":"","footnotes":""},"categories":[4166,23],"tags":[24,4106,4075],"class_list":["post-37537","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-oracle","tag-database-backup","tag-oracle-12c","tag-rman"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.1 (Yoast SEO v27.1.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Refreshing a Physical Standby Using Recover from Service on 12c<\/title>\n<meta name=\"description\" content=\"This article will help to perform a roll-forward of the physical standby using RECOVER FROM SERVICE on a 12c Database\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Refreshing a Physical Standby Using Recover from Service on 12c\" \/>\n<meta property=\"og:description\" content=\"This article will help to perform a roll-forward of the physical standby using RECOVER FROM SERVICE on a 12c Database\" \/>\n<meta property=\"og:url\" content=\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/\" \/>\n<meta property=\"og:site_name\" content=\"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-02T22:23:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-12T16:30:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Refreshing-a-Physical-Standby-using-Recover-from-Service-on-12c.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"557\" \/>\n\t<meta property=\"og:image:height\" content=\"291\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Marvin Lapid\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@virtual_dba\" \/>\n<meta name=\"twitter:site\" content=\"@virtual_dba\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marvin Lapid\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/\"},\"author\":{\"name\":\"Marvin Lapid\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/af23393bbdbfff936f9649f8deccf48e\"},\"headline\":\"Refreshing a Physical Standby Using Recover from Service on 12c\",\"datePublished\":\"2020-07-02T22:23:44+00:00\",\"dateModified\":\"2025-11-12T16:30:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/\"},\"wordCount\":654,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/virtual-dba.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Refreshing-a-Physical-Standby-using-Recover-from-Service-on-12c.jpg\",\"keywords\":[\"database backup\",\"Oracle 12c\",\"RMAN\"],\"articleSection\":[\"Blog\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/\",\"url\":\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/\",\"name\":\"Refreshing a Physical Standby Using Recover from Service on 12c\",\"isPartOf\":{\"@id\":\"https:\/\/virtual-dba.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Refreshing-a-Physical-Standby-using-Recover-from-Service-on-12c.jpg\",\"datePublished\":\"2020-07-02T22:23:44+00:00\",\"dateModified\":\"2025-11-12T16:30:20+00:00\",\"description\":\"This article will help to perform a roll-forward of the physical standby using RECOVER FROM SERVICE on a 12c Database\",\"breadcrumb\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#primaryimage\",\"url\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Refreshing-a-Physical-Standby-using-Recover-from-Service-on-12c.jpg\",\"contentUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Refreshing-a-Physical-Standby-using-Recover-from-Service-on-12c.jpg\",\"width\":557,\"height\":291,\"caption\":\"Refreshing a Physical Standby using Recover from Service on 12c\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/virtual-dba.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Refreshing a Physical Standby Using Recover from Service on 12c\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/virtual-dba.com\/#website\",\"url\":\"https:\/\/virtual-dba.com\/\",\"name\":\"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts\",\"description\":\"Remote Database Administration\",\"publisher\":{\"@id\":\"https:\/\/virtual-dba.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/virtual-dba.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/virtual-dba.com\/#organization\",\"name\":\"Virtual-DBA: Remote DBA | Remote Database Administration\",\"alternateName\":\"Virtual-DBA powered by XTIVIA\",\"url\":\"https:\/\/virtual-dba.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg\",\"contentUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg\",\"width\":557,\"height\":291,\"caption\":\"Virtual-DBA: Remote DBA | Remote Database Administration\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/virtual_dba\",\"https:\/\/www.linkedin.com\/showcase\/36220649\/\",\"https:\/\/www.youtube.com\/channel\/UCx3AIeUQ2ziTLKZSJDZ-SEg\"],\"description\":\"Eliminate database downtime and spiraling costs with XTIVIA\u2019s Virtual-DBA. In today\u2019s always-on business world, gaps in 24x7 on-call DBA support, neglected maintenance and security, or a stretched team struggling with overwhelming workloads can lead to costly disruptions and threaten business continuity. XTIVIA\u2019s Virtual-DBA provides the immediate, expert database administration you need, exactly when you need it, ensuring optimal performance, ironclad security, and significant cost savings without the burden of expanding your in-house team. The goal of Virtual-DBA is to provide a cost-effective solution for organizations seeking to optimize the security, management, maintenance, availability, and performance of their critical business systems, whether self-managed or cloud-managed (e.g., AWS RDS, Azure SQL Database). We accomplish this through a comprehensive remote DBA service offering designed specifically to meet the Oracle\u00ae, DB2\u00ae, Informix\u00ae, MySQL\u2122, PostgreSQL\u00ae, MongoDB\u00ae, MariaDB, and Microsoft SQL Server\u00ae, CockroachDB, Databricks, AWS, and Azure needs of our clients.\",\"email\":\"info@xtivia.com\",\"telephone\":\"8886853101\",\"legalName\":\"XTIVIA, Inc\",\"foundingDate\":\"1992-05-01\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"201\",\"maxValue\":\"500\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/af23393bbdbfff936f9649f8deccf48e\",\"name\":\"Marvin Lapid\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1463b521f18db5d24bdb15bfbe819c8cebb96b6d00cdc470d2a435c2a817338a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1463b521f18db5d24bdb15bfbe819c8cebb96b6d00cdc470d2a435c2a817338a?s=96&d=mm&r=g\",\"caption\":\"Marvin Lapid\"},\"url\":\"https:\/\/virtual-dba.com\/author\/marvin-lapid\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Refreshing a Physical Standby Using Recover from Service on 12c","description":"This article will help to perform a roll-forward of the physical standby using RECOVER FROM SERVICE on a 12c Database","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/","og_locale":"en_US","og_type":"article","og_title":"Refreshing a Physical Standby Using Recover from Service on 12c","og_description":"This article will help to perform a roll-forward of the physical standby using RECOVER FROM SERVICE on a 12c Database","og_url":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/","og_site_name":"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts","article_published_time":"2020-07-02T22:23:44+00:00","article_modified_time":"2025-11-12T16:30:20+00:00","og_image":[{"width":557,"height":291,"url":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Refreshing-a-Physical-Standby-using-Recover-from-Service-on-12c.jpg","type":"image\/jpeg"}],"author":"Marvin Lapid","twitter_card":"summary_large_image","twitter_creator":"@virtual_dba","twitter_site":"@virtual_dba","twitter_misc":{"Written by":"Marvin Lapid","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#article","isPartOf":{"@id":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/"},"author":{"name":"Marvin Lapid","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/af23393bbdbfff936f9649f8deccf48e"},"headline":"Refreshing a Physical Standby Using Recover from Service on 12c","datePublished":"2020-07-02T22:23:44+00:00","dateModified":"2025-11-12T16:30:20+00:00","mainEntityOfPage":{"@id":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/"},"wordCount":654,"commentCount":2,"publisher":{"@id":"https:\/\/virtual-dba.com\/#organization"},"image":{"@id":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#primaryimage"},"thumbnailUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Refreshing-a-Physical-Standby-using-Recover-from-Service-on-12c.jpg","keywords":["database backup","Oracle 12c","RMAN"],"articleSection":["Blog","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/","url":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/","name":"Refreshing a Physical Standby Using Recover from Service on 12c","isPartOf":{"@id":"https:\/\/virtual-dba.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#primaryimage"},"image":{"@id":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#primaryimage"},"thumbnailUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Refreshing-a-Physical-Standby-using-Recover-from-Service-on-12c.jpg","datePublished":"2020-07-02T22:23:44+00:00","dateModified":"2025-11-12T16:30:20+00:00","description":"This article will help to perform a roll-forward of the physical standby using RECOVER FROM SERVICE on a 12c Database","breadcrumb":{"@id":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#primaryimage","url":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Refreshing-a-Physical-Standby-using-Recover-from-Service-on-12c.jpg","contentUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Refreshing-a-Physical-Standby-using-Recover-from-Service-on-12c.jpg","width":557,"height":291,"caption":"Refreshing a Physical Standby using Recover from Service on 12c"},{"@type":"BreadcrumbList","@id":"https:\/\/virtual-dba.com\/blog\/refreshing-physical-standby-using-recover-from-service-on-12c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/virtual-dba.com\/"},{"@type":"ListItem","position":2,"name":"Refreshing a Physical Standby Using Recover from Service on 12c"}]},{"@type":"WebSite","@id":"https:\/\/virtual-dba.com\/#website","url":"https:\/\/virtual-dba.com\/","name":"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts","description":"Remote Database Administration","publisher":{"@id":"https:\/\/virtual-dba.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/virtual-dba.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/virtual-dba.com\/#organization","name":"Virtual-DBA: Remote DBA | Remote Database Administration","alternateName":"Virtual-DBA powered by XTIVIA","url":"https:\/\/virtual-dba.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/","url":"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg","contentUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg","width":557,"height":291,"caption":"Virtual-DBA: Remote DBA | Remote Database Administration"},"image":{"@id":"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/virtual_dba","https:\/\/www.linkedin.com\/showcase\/36220649\/","https:\/\/www.youtube.com\/channel\/UCx3AIeUQ2ziTLKZSJDZ-SEg"],"description":"Eliminate database downtime and spiraling costs with XTIVIA\u2019s Virtual-DBA. In today\u2019s always-on business world, gaps in 24x7 on-call DBA support, neglected maintenance and security, or a stretched team struggling with overwhelming workloads can lead to costly disruptions and threaten business continuity. XTIVIA\u2019s Virtual-DBA provides the immediate, expert database administration you need, exactly when you need it, ensuring optimal performance, ironclad security, and significant cost savings without the burden of expanding your in-house team. The goal of Virtual-DBA is to provide a cost-effective solution for organizations seeking to optimize the security, management, maintenance, availability, and performance of their critical business systems, whether self-managed or cloud-managed (e.g., AWS RDS, Azure SQL Database). We accomplish this through a comprehensive remote DBA service offering designed specifically to meet the Oracle\u00ae, DB2\u00ae, Informix\u00ae, MySQL\u2122, PostgreSQL\u00ae, MongoDB\u00ae, MariaDB, and Microsoft SQL Server\u00ae, CockroachDB, Databricks, AWS, and Azure needs of our clients.","email":"info@xtivia.com","telephone":"8886853101","legalName":"XTIVIA, Inc","foundingDate":"1992-05-01","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"201","maxValue":"500"}},{"@type":"Person","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/af23393bbdbfff936f9649f8deccf48e","name":"Marvin Lapid","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1463b521f18db5d24bdb15bfbe819c8cebb96b6d00cdc470d2a435c2a817338a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1463b521f18db5d24bdb15bfbe819c8cebb96b6d00cdc470d2a435c2a817338a?s=96&d=mm&r=g","caption":"Marvin Lapid"},"url":"https:\/\/virtual-dba.com\/author\/marvin-lapid\/"}]}},"_links":{"self":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts\/37537","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/comments?post=37537"}],"version-history":[{"count":0,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts\/37537\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/media\/37548"}],"wp:attachment":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/media?parent=37537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/categories?post=37537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/tags?post=37537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}