Objective is to create RAC cascade standby (olapdr) from existing standby (oltpdr) on the same host.
Cascade Standby: ORACLE_SID=olap1; db_name=oltp; db_unique_name=olapdr Standby: ORACLE_SID=oltp1; db_name=oltp; db_unique_name=oltpdr
Configuration for standby (oltpdr)
$ srvctl config database -d oltpdr Spfile: +DATA/OLTPDR/spfileoltpdr.ora Password file: +DATA/OLTPDR/orapwoltpdr
Copy existing password file from disk to ASM for cascade standby (olapdr)
This did not work and possibly different from password file at ASM.
Please don’t ask me why.
-rw-r----- 1 oracle oinstall 7680 Sep 18 13:28 orapwolap -rw-r----- 1 oracle oinstall 7680 Sep 18 13:28 orapwolap1 -rw-r----- 1 oracle oinstall 7680 May 28 12:08 orapwoltp -rw-r----- 1 oracle oinstall 7680 May 28 12:08 orapwoltp1 $ cp $ORACLE_HOME/dbs/orapwolap /tmp/orapwolapdr ASMCMD> pwcopy /tmp/orapwolapdr +DATA/OLAPDR/orapwolapdr
Check standby (oltpdr)
oltp1> @dataguard.sql Session altered. *** v$database *** DB OPEN DATABASE REMOTE SWITCHOVER DATAGUARD PRIMARY_DB UNIQUE_NAME MODE ROLE PROTECTION_MODE ARCHIVE STATUS BROKER UNIQUE_NAME --------------- ---------------------- ------------------ -------------------- ---------- ------------------ ---------- --------------- oltpdr READ ONLY WITH APPLY PHYSICAL STANDBY MAXIMUM PERFORMANCE ENABLED NOT ALLOWED ENABLED oltp *** gv$archive_dest_status *** DB DATABASE RECOVERY INST DEST TARGET UNIQUE_NAME DESTINATION MODE STATUS MODE SCHEDULE PROCESS ----- ----- ---------------- --------------- ------------------------- --------------- ------------ ----------------------- -------- -------- 1 1 LOCAL NONE USE_DB_RECOVERY_FILE_DEST OPEN_READ-ONLY VALID MANAGED REAL TIME APPLY ACTIVE ARCH 5 REMOTE olapdr olapdr UNKNOWN ERROR IDLE ACTIVE ARCH 32 LOCAL NONE USE_DB_RECOVERY_FILE_DEST UNKNOWN VALID IDLE ACTIVE RFS 2 1 LOCAL NONE USE_DB_RECOVERY_FILE_DEST OPEN_READ-ONLY VALID MANAGED REAL TIME APPLY ACTIVE ARCH 5 REMOTE olapdr olapdr UNKNOWN ERROR IDLE ACTIVE ARCH 32 LOCAL NONE USE_DB_RECOVERY_FILE_DEST UNKNOWN VALID IDLE ACTIVE RFS 6 rows selected. INST DEST STATUS SRL GAP_STATUS ERROR ----- ----- ------------ --- --------------- -------------------------------------------------------------------------------- 1 1 VALID NO NONE 5 ERROR NO RESOLVABLE GAP ORA-01033: ORACLE initialization or shutdown in progress 32 VALID NO NONE 2 1 VALID NO NONE 5 ERROR NO RESOLVABLE GAP ORA-01033: ORACLE initialization or shutdown in progress 32 VALID NO NONE 6 rows selected.
Suggestion from teammate is to copy password file at ASM from oltpdr to olapdr
ASMCMD> pwcopy +DATA/OLTPDR/orapwoltpdr /tmp/orapwolapdr ASMCMD> pwcopy /tmp/orapwolapdr +DATA/OLAPDR/orapwolapdr
Check standby (oltpdr) and don’t forget to defer and enable dest.
oltp1> alter system set log_archive_dest_state_5=defer; System altered. oltp1> alter system set log_archive_dest_state_5=enable oltp1> @dataguard.sql Session altered. *** v$database *** DB OPEN DATABASE REMOTE SWITCHOVER DATAGUARD PRIMARY_DB UNIQUE_NAME MODE ROLE PROTECTION_MODE ARCHIVE STATUS BROKER UNIQUE_NAME --------------- ---------------------- ------------------ -------------------- ---------- ------------------ ---------- --------------- oltpdr READ ONLY WITH APPLY PHYSICAL STANDBY MAXIMUM PERFORMANCE ENABLED NOT ALLOWED ENABLED oltp *** gv$archive_dest_status *** DB DATABASE RECOVERY INST DEST TARGET UNIQUE_NAME DESTINATION MODE STATUS MODE SCHEDULE PROCESS ----- ----- ---------------- --------------- ------------------------- --------------- ------------ ----------------------- -------- -------- 1 1 LOCAL NONE USE_DB_RECOVERY_FILE_DEST OPEN_READ-ONLY VALID MANAGED REAL TIME APPLY ACTIVE ARCH 5 REMOTE olapdr olapdr MOUNTED-STANDBY VALID MANAGED REAL TIME APPLY ACTIVE ARCH 32 LOCAL NONE USE_DB_RECOVERY_FILE_DEST UNKNOWN VALID IDLE ACTIVE RFS 2 1 LOCAL NONE USE_DB_RECOVERY_FILE_DEST OPEN_READ-ONLY VALID MANAGED REAL TIME APPLY ACTIVE ARCH 5 REMOTE olapdr olapdr MOUNTED-STANDBY VALID MANAGED REAL TIME APPLY ACTIVE ARCH 32 LOCAL NONE USE_DB_RECOVERY_FILE_DEST UNKNOWN VALID IDLE ACTIVE RFS 6 rows selected. INST DEST STATUS SRL GAP_STATUS ERROR ----- ----- ------------ --- --------------- -------------------------------------------------------------------------------- 1 1 VALID NO NONE 5 VALID YES RESOLVABLE GAP NONE 32 VALID NO NONE 2 1 VALID NO NONE 5 VALID YES RESOLVABLE GAP NONE 32 VALID NO NONE 6 rows selected.
Check standby (olapdr)
olap1> @dataguard.sql Session altered. *** v$database *** DB OPEN DATABASE REMOTE SWITCHOVER DATAGUARD PRIMARY_DB UNIQUE_NAME MODE ROLE PROTECTION_MODE ARCHIVE STATUS BROKER UNIQUE_NAME --------------- ---------------------- ------------------ -------------------- ---------- ------------------ ---------- --------------- olapdr MOUNTED PHYSICAL STANDBY MAXIMUM PERFORMANCE ENABLED NOT ALLOWED DISABLED oltp *** gv$archive_dest_status *** DB DATABASE RECOVERY INST DEST TARGET UNIQUE_NAME DESTINATION MODE STATUS MODE SCHEDULE PROCESS ----- ----- ---------------- --------------- ------------------------- --------------- ------------ ----------------------- -------- -------- 1 1 LOCAL NONE USE_DB_RECOVERY_FILE_DEST MOUNTED-STANDBY VALID MANAGED REAL TIME APPLY ACTIVE ARCH 32 LOCAL NONE USE_DB_RECOVERY_FILE_DEST UNKNOWN VALID IDLE ACTIVE RFS 2 1 LOCAL NONE USE_DB_RECOVERY_FILE_DEST MOUNTED-STANDBY VALID MANAGED REAL TIME APPLY ACTIVE ARCH 32 LOCAL NONE USE_DB_RECOVERY_FILE_DEST UNKNOWN VALID IDLE ACTIVE RFS INST DEST STATUS SRL GAP_STATUS ERROR ----- ----- ------------ --- --------------- -------------------------------------------------------------------------------- 1 1 VALID NO NONE 32 VALID NO NONE 2 1 VALID NO NONE 32 VALID NO NONE *** v$archived_log *** TIME THREAD# ARCHIVED APPLIED GAP -------------------- -------- -------- -------- -------- 23-SEP-2018 09:26:05 1 37550 37467 83 23-SEP-2018 09:26:05 2 32631 32566 65 *** gv$managed_standby *** CLIENT DELAY INST PID THREAD# PROCESS PROCESS STATUS SEQUENCE# BLOCK# MINS ----- ------------------------ -------- ---------- -------- ------------ --------- -------- ------ 1 399156 2 N/A MRP0 APPLYING_LOG 32570 721960 0 olap1> r 1 select inst_id inst,PID,thread#,client_process,process,status,sequence#,block#,DELAY_MINS 2 from gv$managed_standby 3 where status not in ('CLOSING','IDLE','CONNECTED') 4 order by inst_id, status desc, thread#, sequence# 5* CLIENT DELAY INST PID THREAD# PROCESS PROCESS STATUS SEQUENCE# BLOCK# MINS ----- ------------------------ -------- ---------- -------- ------------ --------- -------- ------ 1 399156 2 N/A MRP0 APPLYING_LOG 32570 733658 0 olap1> r 1 select inst_id inst,PID,thread#,client_process,process,status,sequence#,block#,DELAY_MINS 2 from gv$managed_standby 3 where status not in ('CLOSING','IDLE','CONNECTED') 4 order by inst_id, status desc, thread#, sequence# 5* CLIENT DELAY INST PID THREAD# PROCESS PROCESS STATUS SEQUENCE# BLOCK# MINS ----- ------------------------ -------- ---------- -------- ------------ --------- -------- ------ 1 399156 1 N/A MRP0 APPLYING_LOG 37474 499677 0 2 366691 2 UNKNOWN RFS RECEIVING 32632 1073153 0 olap1>
Next, configure DataGuard Broker and not looking pretty.