A technical troubleshooting blog about Oracle with other Databases & Cloud Technologies.

ORA-16855: Transport Lag Has Exceeded Specified Threshold in Data Guard !!

2 min read

The ORA-16855 error indicates that the transport lag (the delay in sending redo data from the primary to the standby database) has exceeded the specified threshold.

Cause: The current apply lag has exceeded the value specified by the ApplyLagThreshold configurable property. This can be due to either a significant transport lag or poor performance of the apply services on the standby database.

On Primary database parameter log_archive_dest_2 is use to  ship the redo to standby database, and parameter DELAY is set to 120 minutes. Therefore apply lag exists on Standby database to 2 hrs(120 mins). 


By default there is no delay, The DELAY attribute specifies a minimum time lag between when redo data from the primary site is archived on a standby site and when the archived redo log file is applied to the standby database or any standbys cascaded from it.

Action: Check for gaps in the standby database. If no gaps are present, optimize the apply services for better performance.

SOLUTION:

ApplyLagThreshold configurable database property generates a warning status for a logical or physical standby when the database’s apply lag exceeds the value specified by the property.

If the DELAY parameter set to protect a standby database from corrupted or erroneous primary data, then modify the ApplyLagThreshold in DataGuard broker properties match with DELAYMINS.

  1. ORA-16853 reported when DELAY parameter set:

    Broker reports warning as shown below:

DGMGRL> show configuration;

Configuration - dg_config

  Protection Mode: MaxPerformance
  Members:
  prod101  - Primary database
    prod101s - Physical standby database 
      Warning: ORA-16855: transport lag has exceeded specified threshold

Fast-Start Failover:  Disabled

Configuration Status:
WARNING   (status updated 17 seconds ago)

2. Change the parameter value:

DGMGRL> show database verbose prod101s delaymins;
  DelayMins = '0'

DGMGRL> edit database prod101s set property delaymins=14400;
Property "delaymins" updated

3. Validate it, now Configuration status is showing as SUCCESS.

DGMGRL> show configuration;

Configuration - dg_config

  Protection Mode: MaxPerformance
  Members:
  prod101  - Primary database
    prod101s - Physical standby database 

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 49 seconds ago)

DGMGRL> 

Hope it helped !! 🙂