dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Runbooks Library/oracle/#40
Runbook #40
oracle
PerformanceSEV3 · RISK / WARNING15-30 dakika / 15-30 minsSYSDBA / DBA / SELECT_CATALOG_ROLE

Oracle Frequent Redo Log Switches: Measurement and Redo Group Sizing

Measures switches per thread, separates archive/checkpoint pressure and plans controlled sizing with new redo groups.

Related Metrics:M41
Related Scripts:S72
#redo#log-switch#checkpoint#archivelog#rac

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.

🟢 Salt Okunur (Read-Only)·🟡 Geri Alınabilir (Reversible)·🔴 Yüksek Etkili / Geri Alınamaz (High Impact)

1. Symptom & Signals

- M41, iş yüküne göre olağandışı yükseliyor; alert log'da `checkpoint not complete` veya `cannot allocate new log` uyarıları olabilir.

- Arşivleme ve yedekleme trafiği artar. Tek başına switch sayısı olay değildir.

2. Business & Technical Impact

Sık switch; checkpoint, arşiv I/O'su ve yazma gecikmesini artırabilir. Standby apply veya FRA kullanımı etkilenebilir.

3. Diagnosis & Root-Cause Analysis

🟢 Read-Only1. S72'yi **RAC thread bazında** çalıştırın; log büyüklükleri ve durumlarını inceleyin:
sql
SELECT thread#, TRUNC(first_time,'HH24') AS hour_bucket, COUNT(*) AS switches
FROM v$log_history
WHERE first_time >= SYSDATE - 1
GROUP BY thread#, TRUNC(first_time,'HH24')
ORDER BY hour_bucket DESC, thread#;

SELECT thread#, group#, ROUND(bytes/1048576) AS size_mb, status, archived, members
FROM v$log ORDER BY thread#, group#;
🟢 Read-Only2. `v$archive_dest` hata durumu, FRA (S66) ve disk gecikmelerini karşılaştırın. Ani ETL'nin redo hacmini artırıp artırmadığını uygulama ve bakım takvimiyle eşleştirin.
🟢 Read-Only3. AWR/ASH raporu Diagnostics Pack lisansı gerektirir; lisans yoksa S72 ve alert log ile devam edin.

4. Remediation & Action Plan

🟡 Reversible1. Disk/ASM'de kapasite ve standby redo log boyutlarını kontrol edin; daha büyük redo grubu eklemeyi değişiklik penceresinde planlayın. Dosya adları ve grup numarası **ortama göre** seçilmelidir:
sql
-- Örnek, tek instance ve dosya sistemi; ASM/OMF/RAC'te uygun yolu ve thread'i seçin.
ALTER DATABASE ADD LOGFILE GROUP 4 ('/u02/oradata/DB/redo04.log') SIZE 2G;
🟡 Reversible2. Yeni grupların kullanılmasını doğal switch'lerle doğrulayın. Eski küçük gruplar ancak `INACTIVE` ve `ARCHIVED=YES` iken, Data Guard/backup gereksinimleri değerlendirilerek planlı kaldırılmalıdır. **`CURRENT` veya `ACTIVE` grubu silmeyin.**
🔴 HIGH RISK / IRREVERSIBLE3. FRA dolu veya archiver durmuşsa önce `oracle-fra-full`; zorla ardışık `ALTER SYSTEM SWITCH LOGFILE` çağrılarıyla baskıyı artırmayın.

4. Kalıcı boyutlandırmayı yoğun saatte hedeflenen switch aralığına göre yapın; “her zaman saatte 4-6” gibi sabit hedef yerine throughput ve arşivleme gecikmesini esas alın. 12c/19c RAC'te her thread için yeterli grup ve uygun standby redo log sağlayın.

5. Verification & Health Checks

- İş yükü eşdeğerken switch hızı ve checkpoint/archiver uyarıları azaldı; standby apply ve FRA sağlıklı.

- Yeni grup statüleri normal, kaybolan/bozuk log yok.

6. Rollback & Contingency Plan

- Yeni grubun kaldırılması için önce `INACTIVE`/`ARCHIVED` ve yeterli alternatif grup koşullarını doğrulayın; yapılmış switch'ler geri alınmaz.

- Eski log gruplarını kaldırmadan önce planın geri dönüşünü sağlayacak şekilde değişikliği aşamalı yapın.

More ORACLE Runbooks