Data guard broker cascaded standby delay parameter is ignored

cascadedataguardoracle-12cstandby

I have 3 databases: db01 primary, db02 standby cascading, db03 standby cascaded.

I have configured broker parameters by the following way:

DGMGRL> show configuration
Configuration – DB_HQ_DR
Protection Mode: MaxPerformance
Members:
db01 – Primary database
db02 – Physical standby database
db03- Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS

DGMGRL> edit database ‘db01′ set property RedoRoutes='(LOCAL:db02)(db02:db03)’;
Property “redoroutes” updated

DGMGRL> edit database ‘db02′ set property RedoRoutes='(LOCAL:db01)(db01:db03)’;
Property “redoroutes” updated

–Configured delaymins parameter:

DGMGRL> edit database ‘db03′ set property DelayMins=’21600’;

When selecting log_archive_dest_2 parameter on db02 I see that there is delay parameter 21600 as it should be.

SQL> show parameter log_archive_dest_2

log_archive_dest_2   |  service="db03",  delay=21600 optional compression=disable  max_failure=0 max_connections=1 reopen=300

db_unique_name="db03" net_timeout=30, valid
_for=(standby_logfile,all_roles)

DGMGRL> show configuration
Configuration – DB_HQ_DR
Protection Mode: MaxPerformance
Members:
db01 – Primary database
db02 – Physical standby database
db03- Physical standby database (receiving archived redo)
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS

Problem is that apply process is not delayed. It applied as soon as there is generated archive log.
What happens? Why delay parameter is ignored?

Best Answer

If you want delay apply on Cascaded Standby you need to set the DELAY of LOG_ARCHIVE_DEST_n on Primary.

The DELAY value that a cascaded standby uses is the value that was set for the LOG_ARCHIVE_DEST_n parameter on the primary that shipped the redo to the cascading standby.

Reference:DELAY

Related Question