dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Runbook #40
oracle
PerformanceSEV3 · PERFORMANS / RİSK15-30 dakika / 15-30 minsSYSDBA / DBA / SELECT_CATALOG_ROLE

Oracle Sık Redo Log Switch: Ölçüm ve Redo Grup Boyutlandırma

Sık switch'leri thread bazında ölçer, archive/checkpoint baskısını ayırt eder ve yeni redo gruplarıyla kontrollü boyutlandırma planı çıkarır.

İlişkili Metrik:M41
İlişkili Script:S72
#redo#log-switch#checkpoint#archivelog#rac

Operasyonel Güvenlik ve Risk Uyarısı

Bu runbook müdahale adımları içerir; birçok adım yazma etkilidir (KILL, terminate, DROP, RESIZE). Önce test ortamında deneyin, üretimde adımları sırayla ve doğrulayarak uygulayın.

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

1. Belirti / Symptom

- 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. Etki / Impact

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

3. Teşhis / Diagnosis

🟢 Salt Okunur1. 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#;
🟢 Salt Okunur2. `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.
🟢 Salt Okunur3. AWR/ASH raporu Diagnostics Pack lisansı gerektirir; lisans yoksa S72 ve alert log ile devam edin.

4. Müdahale / Response

🟡 Geri Alınabilir1. 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;
🟡 Geri Alınabilir2. 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.**
🔴 YÜKSEK RİSK / GERİ ALINAMAZ3. 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. Doğrulama / Verification

- İş 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. Geri Alma / Rollback

- 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.

Diğer ORACLE Runbook'ları