Below are the steps for recreating physical standby controlfile.
1. Get the controlfile location [STANDBY]
SQL> show parameter control_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /archive/NONPLUG/NONCDB/contro
l01.ctl, /archive/NONPLUG/NONC
DB/control02.ctl
2. Cancel recovery [STANDBY]
alter database recover managed standby database cancel;
3. Shutdown standby [ STANDBY]
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
4. Create standby controlfile in primary [ PRIMARY]
alter database create standby controlfile as '/export/home/oracle/standby_ctrl.ctl';
5. copy the controlfile to standby server.
scp /export/home/oracle/standby_ctrl.ctl [email protected]:/export/stdby/home/
6.Replace the existing controlfile with the new controlfile [ STANDBY]
rm -rf /archive/NONPLUG/NONCDB/control01.ctl
rm -rf /archive/NONPLUG/NONCDB/control02.ctl
cp /export/stdby/home/standby_ctrl.ctl /archive/NONPLUG/NONCDB/control01.ctl
cp /export/stdby/home/standby_ctrl.ctl /archive/NONPLUG/NONCDB/control02.ctl
7. Mount standby database [ STANDBY]
SQL> startup mount
ORACLE instance started.
Total System Global Area 1.1107E+10 bytes
Fixed Size 7644464 bytes
Variable Size 9294584528 bytes
Database Buffers 1711276032 bytes
Redo Buffers 93011968 bytes
Database mounted.
8. Start MRP recovery process [ STANDBY]
alter database recover managed standby database disconnect from session;
CONTROLFILEdataguardstandby DATAGUARD