Oracle Data Guard Apply/Transport Lag: Safe Diagnosis
Separates transport from apply lag, finds archive gaps, network or standby I/O issues and verifies catch-up without disrupting broker management.
Operational Safety & Risk Notice
This runbook contains operational intervention steps; several are write-impacting (KILL, terminate, DROP, RESIZE). Verify in a staging environment first, and apply sequentially in production with verification.
1. Symptom & Signals
- Standby M42 apply lag yükseliyor, broker `WARNING`/`ERROR` bildirebilir; felaket kurtarma RPO'su riske girer.
- Transport lag ve apply lag birbirinden farklı davranabilir; sıfır olmayan her değer hata değildir.
2. Business & Technical Impact
Standby verisi geride kalır; failover'da veri kaybı veya RTO uzaması mümkündür. Okuma standby'larında veri eskir.
3. Diagnosis & Root-Cause Analysis
SELECT name, value, unit, time_computed, datum_time
FROM v$dataguard_stats
WHERE name IN ('transport lag','apply lag','apply finish time');
SELECT thread#, low_sequence#, high_sequence# FROM v$archive_gap;
SELECT dest_id, status, error FROM v$archive_dest
WHERE status <> 'INACTIVE';`datum_time` eskiyse “lag=0” bile veri akışının durduğunu gizleyebilir.
dgmgrl /
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SHOW DATABASE VERBOSE 'standby_db_unique_name';4. Remediation & Action Plan
DGMGRL> EDIT DATABASE 'standby_db_unique_name' SET STATE='APPLY-OFF';
DGMGRL> EDIT DATABASE 'standby_db_unique_name' SET STATE='APPLY-ON';**Yalnızca apply gerçekten durmuşsa ve planlı müdahale onaylandıysa** yapın; çalışan apply'ı sırf lag var diye kesmeyin.
4. 12c/19c Real-Time Apply, broker ve lisans/opsiyon koşulları ortamdan ortama farklıdır; konfigürasyonu doğrulamadan `USING CURRENT LOGFILE` gibi sürüme özel sözdizimine güvenmeyin.
5. Verification & Health Checks
- `datum_time` güncel; transport ve apply lag azalıp RPO sınırına döndü; `v$archive_gap` boş ve broker sağlıklı.
- Aynı primary transaction'ının standby'da uygulandığını kontrollü uygulama testiyle doğrulayın.
6. Rollback & Contingency Plan
- Broker ile apply kapatıldıysa `APPLY-ON` ile açın; kapalı kaldığı sürede biriken gecikmeyi izleyin.
- Yeniden oluşturulan standby'ın geri alınması basit değildir; başlamadan önce yedek ve failover planını doğrulayın.