Yüksek Erişilebilirlik

SQL Server'da yüksek erişilebilirlik: Always On seçenekleri

“Sunucu ölürse ne olur?” sorusunun cevabı, seçtiğiniz HA topolojisine göre saniyeler ya da saatler olabilir. Seçim, teknolojiden önce RPO/RTO ile başlar.

Önce iki sayı: RPO ve RTO

RPO (Recovery Point Objective): kabul edilebilir veri kaybı. “En fazla 5 saniyelik işlem kaybolabilir” gibi.

RTO (Recovery Time Objective): kabul edilebilir kesinti süresi. “Hizmet 60 saniye içinde geri gelmeli” gibi.

Bu iki değer netleşmeden HA tartışması eksik kalır; her çözümün maliyeti ve karmaşıklığı bu hedeflere göre değerlendirilmelidir.

Failover Cluster Instance (FCI)

Paylaşımlı depolama üzerinde çalışan, örnek (instance) seviyesinde yük devretme. Bütün veritabanları birlikte taşınır; istemci aynı sanal ağ adına bağlanır.

  • Artı: uygulama için şeffaf, örnek düzeyi nesneler (login, job, linked server) tek yerde.
  • Eksi: paylaşımlı depolama tek arıza noktası olabilir; yük devretmede birkaç on saniyelik kesinti; okuma ölçekleme yok.
  • Uygun: orta seviye RTO, düşük RPO; “bütün örnek tek parça taşınsın” ihtiyacı.

Always On Availability Groups (AG)

Veritabanı grubu düzeyinde replikasyon. Her replika kendi depolamasına sahiptir; senkron ya da asenkron kopyalama seçilebilir.

  • Senkron + otomatik failover: düşük RPO (sıfıra yakın) ve düşük RTO; genelde 2–3 senkron replika ve bir quorum tanığı.
  • Asenkron replika: uzak bölgeye felaket kurtarma; ağ gecikmesi birincil performansını etkilemez ama RPO > 0.
  • Okunabilir ikincil: raporlama ve yedek alma yükünü birincilden alır.
  • Listener: uygulama tek bir ada bağlanır; yönlendirme otomatik yapılır.
  • Eksi: örnek düzeyi nesneler her replikada elle senkron tutulmalı; lisans ve işletim karmaşıklığı daha yüksek.

Log shipping ve yedek tabanlı DR

Belirli aralıklarla transaction log yedeğinin ikinci sunucuya taşınıp uygulanması. Basit, ucuz ve dayanıklıdır; ancak RPO yedek aralığı kadardır ve failover manueldir. Modern kurulumlarda genelde AG'nin asenkron replikasına ek bir güvenlik katmanı olarak konumlanır.

Karşılaştırma özeti

ÇözümTipik RPOTipik RTOOkuma ölçekleme
FCI≈ 015–60 snHayır
AG (senkron, oto failover)≈ 05–30 snEvet
AG (asenkron)saniyeler–dakikalarmanuel: dakikalarEvet
Log shippingyedek aralığımanuel: dakikalar–saatSınırlı

Değerler ortam ve yapılandırmaya göre değişir; kendi donanımınızda tatbikatla ölçmek şarttır.

HA, tatbikat edilmeden HA değildir

En sık gördüğümüz hata: kurulum yapılır, dokümante edilmez ve hiç denenmez. Öneriler:

  • Planlı ve plansız failover senaryolarını en az çeyrekte bir çalıştırın; gerçek RTO'yu kaydedin.
  • Uygulama tarafında bağlantı yeniden deneme, kısa timeout ve idempotent yazma olsun.
  • Listener/DNS TTL, quorum yapılandırması ve tanık (witness) yerleşimini gözden geçirin.
  • Runbook'u güncel tutun: kim, hangi komutu, hangi sırayla çalıştırıyor?

Kısa özet: Önce RPO/RTO'yu yazın. Sıfıra yakın RPO + hızlı otomatik failover istiyorsanız senkron AG; uzak bölge felaket kurtarma için asenkron AG; “tek örnek tek parça” için FCI; bütçe kısıtlı ek güvenlik için log shipping. Hangisi olursa olsun düzenli tatbikat şart.

HA/DR mimarinizi birlikte tasarlayıp tatbikatlarla kanıtlayabiliriz — Yönetilen Veritabanı hizmetimize bakın.

“Sunucu ölürse” sorusuna net bir cevap

Mevcut kurulumunuz için RPO/RTO hedefi ve uygun topoloji önerisi çıkaralım.

Görüşme planlayın