Bilgi Bankası
MySQLOlay ve bakım 15 dk 14.06.2026

MySQL replication lag ve binlog büyümesi: okuma gecikmesi neden olur, nasıl toparlanır?

MySQL replikasında gecikme başladığında sorun sadece “replika geride kaldı” değildir. Kullanıcı eski veri görebilir, raporlar şaşabilir, failover kararı riskli hale gelebilir. Bu yazı gecikmenin nedenini ve güvenli toparlama sırasını anlatır.

Bu yazı sana şu durumda yardımcı olur
  • okuma replikasında eski veri görülüyor
  • Seconds_Behind_Source artıyor
  • binlog dosyaları hızla büyüyor
  • raporlama sorguları replikayı yoruyor
  • failover öncesi replika güncelliğinden emin olunamıyor
Yazıyı bitirince

Replika gecikmesini uzun transaction, ağır sorgu, yetersiz kaynak veya binlog saklama politikası olarak ayırabileceksiniz. Failover veya bakım kararından önce hangi kanıtları kontrol edeceğinizi bileceksiniz.

TürkDB açısından ürünleşme notu

Bu bölüm, TürkDB’nin ilgili problemi hangi ürün ilkeleri ve kontrol noktalarıyla ele alacağını anlatır. Kapsam, gerçek iş yükü ve ihtiyaçla birlikte netleşir.

TürkDB MySQL tarafında replika durumu, bakım geçmişi ve yedek/PITR bağlamını görünür kılmayı hedefler. Bu görünürlük üretim garantisi yerine geçmez; pilotta özellikle replika gecikmesi ve toparlama davranışı ölçülmelidir.

Replication lag neyi bozar?

Replika gecikmesi teknik olarak kaynak veritabanındaki değişikliklerin replikaya geç ulaşmasıdır. Kullanıcı açısından ise daha basittir: az önce yaptığı işlem listede görünmez, rapor eski sayıyı gösterir veya arama sonucu tutarsızlaşır.

Okuma/yazma ayrımı kullanan sistemlerde bu etki daha belirgindir. Yazma primary üzerinde olur, okuma replikadan yapılır. Replika geride kalırsa sistem aynı anda hem doğru hem yanlış gibi davranabilir.

  • Kullanıcı kendi yaptığı değişikliği hemen göremeyebilir.
  • Raporlama sorguları iş kararını eski veriyle besleyebilir.
  • Failover sırasında gerideki replika veri kaybı riski doğurabilir.
  • Binlog büyümesi disk baskısı ve yedek/PITR maliyeti yaratabilir.

Önce replikanın gerçekten geride olup olmadığını görün

MySQL sürümüne göre SHOW SLAVE STATUS veya SHOW REPLICA STATUS çıktısı kullanılır. Yeni yazılarda REPLICA terimi tercih edilir; eski sistemlerde SLAVE alan adları hâlâ görülebilir.

Tek bir Seconds_Behind_Source değeri her şeyi anlatmaz. IO thread çalışıyor mu, SQL thread çalışıyor mu, son hata ne, relay log büyüyor mu, bunlar birlikte okunmalıdır.

Replika durumunu okuma

mysql-replica-status.sql
SHOW REPLICA STATUS\G

-- Eski MySQL sürümlerinde:
SHOW SLAVE STATUS\G

Gecikmenin yaygın nedenleri

Replika gecikmesi her zaman ağ sorunu değildir. Primary üzerinde büyük transaction çalışmış olabilir, replikada raporlama sorguları kaynak tüketiyor olabilir, disk yavaş kalmış olabilir veya DDL işlemi replika tarafında uzun sürüyordur.

Özellikle büyük tek transactionlar replikayı uzun süre bekletebilir. Uygulama küçük küçük yazıyor gibi görünse bile arka plandaki toplu iş tek transaction içinde milyonlarca satır değiştirebilir.

  • Uzun transaction: replikada tek seferde uygulanması zaman alır.
  • Ağ veya IO gecikmesi: relay log birikir.
  • Ağır raporlama: replikanın SQL thread’i kaynak bulamaz.
  • DDL veya indeks değişikliği: replikada da aynı etkiyi üretir.
  • Binlog saklama süresi: disk ve kurtarma penceresiyle birlikte düşünülmelidir.

Toparlama planı acele failover değildir

Replika gerideyken failover yapmak çoğu zaman daha büyük sorun üretir. Önce gecikmenin artmaya devam edip etmediğini, replikadaki son uygulanan konumu ve kullanıcı etkisini anlamak gerekir.

Eğer replika yalnızca raporlama yüzünden yoruluyorsa raporlama trafiğini kısmak yeterli olabilir. Eğer primary üzerinde büyük yazım devam ediyorsa önce o işlemin bitmesi beklenebilir. Körlemesine yeniden başlatma, bazı durumlarda yalnızca teşhis kanıtını kaybettirir.

Olay notu için replika kontrol şablonu

mysql-replica-lag-note.md
Başlangıç zamanı:
Etkilenen replika:
Seconds_Behind_Source:
IO thread:
SQL thread:
Son hata:
Primary üzerinde uzun transaction var mı:
Replikada ağır rapor sorgusu var mı:
Failover uygun mu:
Bir sonraki kontrol zamanı:
Devam etmek istersen

Sorunu motor bazında derinleştirin

Benzer belirtiler farklı motorlarda farklı nedenlere dayanır; yayınlanan tüm rehberleri ana sayfadan takip edebilirsiniz.

Tüm makaleler