How to Verify Transport, Apply Status, Gaps, and Errors in Oracle Data Guard

INTRODUCTION: 

As an Oracle DBA, setting up Data Guard is only half the job.
The real responsibility starts after the setup — making sure redo is shipping, applying correctly, and that there are no hidden gaps or errors. 

Over time, I’ve built a simple daily verification checklist that helps me quickly confirm whether a Data Guard environment is healthy or needs attention. 

In this blog, I’m sharing the Oracle views and commands I use regularly to verify transport status, apply status, gaps, and broker errors in Oracle Data Guard. 

Daily Data Guard Verification Checklist 

This checklist can be run in 5–10 minutes and gives a clear picture of Data Guard health. 

Press enter or click to view image in full size
 

  1. 1.Check Transport Lag and Apply Lag

This is always my first check. 

It shows: 

Transport lag (redo shipping delay) 

Apply lag (redo apply delay) 

Estimated apply rate 

SELECT name, value, time_computed
FROM v$dataguard_stats; 

What to look for: 

Transport Lag → Delay in redo shipping from primary 

Apply Lag → Delay in redo being applied on standby 

Estimated Apply Rate → Speed at which redo is applied 

If lag keeps increasing, it’s a sign to investigate network, disk, or apply processes. 

  1. 2.Verify Redo Transport Status

Next, I confirm whether redo is actually being shipped from the primary. 

SELECT dest_id, status, error
FROM v$archive_dest_status; 

What to look for: 

STATUS should be VALID 

INACTIVE is acceptable if the destination is not currently used 

ERROR column should be NULL 

Any non-null error here means redo transport is broken or unstable. 

  1. 3.Check Managed Standby Processes

This step confirms whether redo is being received and applied. 

SELECT process, status, sequence#
FROM v$managed_standby; 

Important processes: 

MRP → Managed Recovery Process (must be running on standby) 

RFS → Remote File Server (receives redo) 

LNS → Log Network Server (on primary) 

If MRP is not running, redo may be received but not applied. 

  1. 4.Detect Redo Gaps

Redo gaps are silent killers in the Data Guard. 

SELECT * FROM v$archive_gap; 

What it means: 

If no rows are returned → no gaps 

If rows are returned → standby is missing archive logs 

In such cases, logs must be restored manually or via RMAN. 

  1. 5.Check Broker Errors and Warnings

If you are using Data Guard Broker, this view is extremely useful. 

SELECT timestamp, message
FROM v$dataguard_status
ORDER BY timestamp DESC; 

Why this matters: 

Shows broker-detected issues 

Captures warnings and configuration errors 

Often points directly to misconfiguration 

This is one of the fastest ways to spot problems early. 

  1. 6. Confirm Archive Log Application

To ensure logs are continuously applied on standby: 

SELECT applied_scn, applied_time
FROM v$standby_log; 

What to verify: 

APPLIED_SCN should keep increasing 

APPLIED_TIME should be recent 

If values are stagnant, redo apply is likely stopped. 

  1. 7.Broker Health Check Using DGMGRL

For a high-level health check, I always use DGMGRL. 

DGMGRL> SHOW CONFIGURATION;
DGMGRL> SHOW DATABASE VERBOSE <standby_db_name>; 

What to look for: 

Configuration Status should be SUCCESS 

Verbose output shows: 

Transport lag 

Apply lag 

Errors or warnings 

 

This gives a clean, summarized status of the entire Data Guard setup. 

Best Practice Verification Flow 

This is the exact order I follow daily: 

Run V$DATAGUARD_STATS → check lag 

Run V$ARCHIVE_DEST_STATUS → confirm redo transport 

Run V$MANAGED_STANDBY → confirm apply process 

Run V$ARCHIVE_GAP → check missing logs 

Run V$DATAGUARD_STATUS → check broker errors 

Cross-check alert logs for detailed messages 

CONCLUSION: 

A Data Guard setup doesn’t fail suddenly — it gives signals long before that.
If you consistently monitor transport, apply, and gaps, you can fix issues before they turn into outages. 

This checklist has helped me keep multiple Data Guard environments stable, and I hope it helps you do the same. 

If you’re an Oracle DBA working with Data Guard, feel free to save this as your daily verification reference. 

Recent Posts