Always On Availability Groups (AG) kullanırken veri kaybı riski, AG konfigürasyonunuzun senkronizasyon moduna bağlıdır. İki ana senkronizasyon modundan bahsedebiliriz: Senkron Commit ve Asenkron Commit.
Senkron Commit
Senkron commit modunda, birincil veritabanındaki her işlem ikincil veritabanlarına commit edilmeden önce birincil veritabanda commit edilmez. Bu süreç aşağıdaki şekilde çalışır:
- Bir işlem birincil veritabanında kaydedilir.
- İlgili transaction log kayıtları ikincil sunuculara gönderilir.
- İkincil sunucular işlemi uygular ve başarılı olduğunu doğrular.
- İkincil sunucular, işlemin başarıyla uygulandığını birincil sunucuya bildirir.
- Birincil sunucu, ikincil sunucuların onayını aldıktan sonra işlemi commit eder.
Bu modun kullanıldığı bir AG konfigürasyonunda, doğru bir şekilde çalıştığı sürece ve ikincil düğümler sağlıklı oldukları sürece, veri kaybı riski neredeyse yoktur. Ancak, senkronizasyon süreci ağ gecikmesine neden olabilir ve bu da birincil sunucunun işlem performansını etkileyebilir.
Asenkron Commit
Asenkron commit modunda ise, birincil veritabanındaki işlemler ikincil sunuculara gönderilir ve birincil sunucu ikincil sunucuların cevabını beklemeden işlemi commit eder. Bu süreç şu adımları içerir:
- Bir işlem birincil veritabanında kaydedilir.
- İlgili transaction log kayıtları ikincil sunuculara gönderilir.
- Birincil sunucu beklemeksizin işlemi commit eder.
- İkincil sunucular işlemi aldıklarında uygularlar.
Asenkron commit modu, daha düşük gecikme süresi ve yüksek performans sağlar, ancak birincil sunucu çökerse ve ikincil sunuculara henüz uygulanmamış işlemler varsa veri kaybı riski taşır. Bu mod genellikle, birincil ve ikincil sunucular arasında önemli ağ gecikmesi olan veya veri kaybı kabul edilebilir düzeyde olan uzak felaket kurtarma senaryolarında tercih edilir.
Failover Durumlarında Veri Kaybı
Otomatik failoverlar yalnızca senkron commit modunda çalışan ikincil kopyalar için mümkündür. Bu durumda, sistem birincil sunucunun başarısız olması durumunda otomatik olarak ikincil sunucuya geçiş yapar ve veri kaybı olmaz.
Manuel failoverlarda, yöneticinin çeşitli senaryolara göre hareket etmesi gerekir. Eğer yöneticiler failover işlemini senkron commit modunda çalışan ve verilerin tamamen senkronize olduğu bir ikincil sunucuya yaparlarsa, veri kaybı olmaz. Ancak, asenkron commit modunda çalışan bir ikincile failover yapılırsa, son işlemlerde veri kaybı yaşanabilir.
Özetle, Always On AG kullanırken veri kaybı riskini minimize etmek için senkron commit modunu kullanmak en güvenli yoldur, ancak bu seçim her zaman performans ve yüksek erişilebilirlik ihtiyaçları arasında bir denge kurmayı gerektirir. Asenkron commit daha yüksek performans sağlar ancak veri kaybı riskini artırır.