1. As the first step disable log apply and transport.
DGMGRL> edit database fsfodr set state='apply-off'; Succeeded. DGMGRL> edit database fsfopr set state='transport-off'; Succeeded. DGMGRL>2. Start the standby database in nomount mode and restore the standby controlfile.
$ rman target / RMAN > startup nomount RMAN> restore standby controlfile from '/opt/backup/fsfodr/full_c-1245564449-20230913-02.ctl'; Starting restore at 13-SEP-23 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=2836 device type=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:02 output file name=+DATA/FSFODR/CONTROLFILE/current.341.1147435431 output file name=+FRA/FSFODR/CONTROLFILE/current.573.1147435431 Finished restore at 13-SEP-233. Mount the database.
RMAN> alter database mount;4. Since the standby controfile was restored from a backup taken on standby database no need to catalog backup file location. The controlfile is aware of the backup locations. Run a restore and recover statements.
RMAN> run {
2> restore database;
3> recover database;
4> }5. Clear the online logfiles on the standby database.SQL> begin
for log_cur in ( select group# group_no from v$log )
loop
execute immediate 'alter database clear logfile group '||log_cur.group_no;
end loop;
end;
/
PL/SQL procedure successfully completed.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME CON_ID
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ --------- ----------
1 1 0 104857600 512 2 YES UNUSED 2635375 13-SEP-23 2635378 13-SEP-23 0
2 1 0 104857600 512 2 YES UNUSED 2635378 13-SEP-23 2636371 13-SEP-23 0
5 1 0 104857600 512 2 YES UNUSED 2636825 13-SEP-23 9.2954E+18 0
4 1 0 104857600 512 2 YES UNUSED 2636470 13-SEP-23 2636825 13-SEP-23 0
3 1 0 104857600 512 2 YES UNUSED 2636371 13-SEP-23 2636470 13-SEP-23 06. Clear the standby logfilesbegin
for log_cur in ( select group# group_no from v$standby_log )
loop
execute immediate 'alter database clear logfile group '||log_cur.group_no;
end loop;
end;
/
PL/SQL procedure successfully completed.
SQL> select * from v$standby_log;
GROUP# DBID THREAD# SEQUENCE# BYTES BLOCKSIZE USED ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME CON_ID
---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ --------- ----------
6 UNASSIGNED 1 0 104857600 512 0 NO UNASSIGNED 0
7 UNASSIGNED 1 0 104857600 512 0 YES UNASSIGNED 0
8 UNASSIGNED 1 0 104857600 512 0 YES UNASSIGNED 0
9 UNASSIGNED 1 0 104857600 512 0 YES UNASSIGNED 0
10 UNASSIGNED 1 0 104857600 512 0 YES UNASSIGNED 0
11 UNASSIGNED 1 0 104857600 512 0 YES UNASSIGNED 0
6 rows selected.7. Enable log transport and redo apply
DGMGRL> edit database fsfopr set state='transport-on'; Succeeded. DGMGRL> edit database fsfodr set state='apply-on'; Succeeded.8. Check data guard configuration status and valdiate the standby database
DGMGRL> show configuration
Configuration - fsfo_dg
Protection Mode: MaxAvailability
Members:
fsfopr - Primary database
fsfodr - Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 25 seconds ago)
DGMGRL> validate database fsfodr;
Database Role: Physical standby database
Primary Database: fsfopr
Ready for Switchover: Yes
Ready for Failover: Yes (Primary Running)
Managed by Clusterware:
fsfopr: YES
fsfodr: YESUseful metalink notes
Creating a Physical Standby database using RMAN restore database from service [ID 2283978.1]
