SQL Server Always On Availability Group’ta Initialization / Recovery ifadesi, veritabanının senkronize edilirken veya ayağa kalkarken geçici bir durumda olduğunu gösterir.
Initialization bu aşamada SQL Server şunu yapar:
• Secondary replica’daki veritabanı primary ile eşitleniyor
• Log’lar primary’den secondary’ye gönderiliyor. Secondary sunucusunun log dosyasına yazılması hardened işlemidir. Commit sadece primary sunucusunda olmaktadır.
• Database kullanıma secondary sunucusuna bu aşamada açık değildir.
Database durumu: Restoring’dir. Read-only değildir. Connection kabul etmez.
Availability Group’a yeni DB eklendiğinde, Secondary sunucu restart olduktan sonra, Network kopup tekrar geldiğinde görülmektedir.
Recovery işleminde ise alınan loglar işlenmektedir. Sql server crash recovery yapmaktadır. Veritabanı online olmaya hazırlanıyordur.
Yukarıdaki adımlar tamamlandığında veritabanı online moduna geçmektedir. Initialization / Recovery = geçici senkronizasyon durumudur. Database offline değildir ama kullanılamaz. Bitince only read-only moduna geçmektedir.
Genel özet yapacak olursak:
Secondary tarafı – Initialization / Synchronizing
Bu aşamada şunlar olur:
- Primary’den gelen log’lar secondary LDF’ye yazılır.
- Ama:
- Log’lar henüz redo edilmemiş olabilir.
- Database recovery sürecindedir.
- Bu yüzden:
- Database online değildir
- Okuma / yazma yapılamaz
Bu durum SSMS’te:
- Initializing
- Synchronizing
- In Recovery
olarak görünür.
Recovery & Redo tamamlanınca
Secondary şunları yapar:
- LDF’ye yazılmış log’ları data file’lara (MDF/NDF) redo eder.
- Recovery tamamlanır.
Sonuç:
- Database ONLINE olur
- Eğer Readable Secondary = Yes ise:
- Read-only sorgular çalışır
- Değilse:
- Online ama erişilemez görünür
Başka makalede görüşmek dileğiyle..
“Mutlu olanlar ise cennettedirler.” (Hud, 11/108)
