18 Nisan 2015 Cumartesi

Transactional Replication için çok tatlı bir SP

Selam millet,

Size bugün Susantha Bathige 'nin bir makalesinden öğrendiğim bir SP'den bahsetmek istiyorum. Bu SP, Transactional Replication yapılandırmaları için kullanılıyor. Çok pratik olarak, replike edilen Publication'ların aktarım istatistikleri hakkında bilgi veriyor. Kullanımı, çok basit, Publication'ların olduğu sunucuda SP'yi parametresiz olarak çalıştırıyorsunuz; şöyle:

EXEC sp_replcounters;
GO

Bunun akabinde, aşağıdaki gibi bir sonuç dönüyor:


Sorgu sonucu

Bir sorgu çalıştırarak, hantal olan Replication Monitor arayüzünü kullanmadan, tak diye böyle bir sonucu bu SP sayesinde alabiliyoruz, bu SP'ye buradan teşekkürler ediyorum.

Efendim gelelim SP'nin çalıştırılması sonucu dönen alanların anlamlarına, şöyle izah edeyim:
- database: malumunuz Publication'lara ait veritabanlarının isimleri.
- replicated transactionsTransaction Log dosyasında Distribution veritabanına gönderilmeyi bekleyen Transaction sayısı. Yani an itibariyle Publisher'daki Transaction Log dosyasında bekliyor bu kayıtlar. Eğer bu değer çok çok büyükse, o zaman Distributor ile Publisher arasında bir gecikme veya tıkanma veya başka bir sorun var demektir. Hemen müdahale etmeniz gerekir. Aksi takdirde Transaction Log dosyası (eğer bir üst sınır belirlemediyseniz) şişer, şişer ve bulunduğu diski doldurur. Bu noktadan sonrası çok riskli. Veritabanınız Suspend duruma düşebilir, yeni bir işlem yapılamaz, eğer bu veritabanının Transaction Log dosyası, diğer veritabanlarının Transaction Log dosyalarıyla birlikte aynı diskteyse, diğer veritabanlarının Transaction Log dosyalarının içleri de dolduktan sonra diskte boş yer kalmadığı için büyüyemeyeceklerdir ve o veritabanlarında da artık yeni işlem yapılamaz ve onlar da Suspend duruma düşebilirler. Bu noktada, Replikasyon yapılandırmalarınızın gecikme alarmını muhakkak kurmalısınız. Ayrıca disk doluluk oranı uyarınız, Transaction Log dosyası doluluk uyarınız, muhakkak olmalı. Sorun çıkarması muhtemelen ve kritik veritabanlarının farklı disklere dağılımını, bu açıyı düşünerek de tekrar gözden geçirmek isteyebilirsiniz.
- replication rate trans/sec: Distribution veritabanına gönderilen Transaction'ların saniye başına ortalama sayısı.
- replication latency (sec): Transaction'ların Distribution veritabanına gönderilmeden önce Transaction Log dosyasında ortalama kaç saniye durduklarını gösterir. Bu çok önemli. Bu değer ile replikasyonumuzda ne kadar gecikme yaşandığını anlarız.
- replbeginlsn: Transaction Log dosyasındaki o anki Truncation Point (yani örneğin Transaction Log yedeği alındıktan sonra Transaction Log dosyasındaki kayıtların tam olarak hangi noktadan itibaren silinebileceğini gösteren LSN [Log Sequence Number = Kayıt Sıra Numarası])
- replnextlsnBir sonraki Commit edilmiş ve Distribution veritabanına gönderilmeyi bekleyen kaydın LSN numarası.

Kolay gelsin,
Ekrem Önsoy

Hiç yorum yok: