Exchange Server’da replikasyon işlemi sırasında kullanılan önemli iki metrik olan CopyQueueLength ve ReplayQueueLength, DAG (Database Availability Group) içindeki replikasyonun performansını ve sağlığını anlamak için kritik öneme sahiptir. Her Database kopyasının hedef sunucuya aktarılması ve uygulanması süreci bu metriklerle izlenebilir. Bu iki değer, replikasyonun doğru çalışıp çalışmadığını değerlendirmek için sürekli olarak kontrol edilmelidir.
CopyQueueLength Nedir?
CopyQueueLength, kaynak sunucudan hedef sunucuya henüz kopyalanmamış olan Log dosyalarının sayısını gösterir. Normal şartlarda replikasyon hızlı bir şekilde gerçekleşir ve bu değer düşük tutulur. Ancak Network performansı, sunucu yükü veya donanım sorunları gibi nedenlerle kopyalama işlemi aksadığında, CopyQueueLength yükselmeye başlar. Bu da Database kopyasının hedef sunucu üzerinde güncel olmadığını ve Log dosyalarının biriktiğini gösterir. Kopyalanmamış Log'lar arttıkça, sistemdeki veri bütünlüğü risk altına girer, çünkü hedef sunucu, kaynak sunucu ile aynı Database durumuna sahip olamaz. Bu nedenle, özellikle CopyQueueLength’in yükselmesine neden olan Network sorunları veya sistem tıkanıklıkları çözülmeden sağlıklı bir replikasyon beklemek zorlaşır.
ReplayQueueLength Nedir?
ReplayQueueLength ise kopyalanan Log dosyalarının hedef sunucuya ulaşmasına rağmen henüz Database'e işlenmediğini belirtir. Log dosyaları hedef sunucuya kopyalandıktan sonra, bu Log'lar Database üzerinde sıralı bir şekilde işlenmelidir. Eğer ReplayQueueLength yüksekse bu durum, Log dosyalarının hedef Database'e işlenemediğini ve Database kopyasının güncellenmediğini gösterir. Log dosyalarının işlenmemesi, DAG üzerindeki veritabanlarının birbirinden farklı veri setlerine sahip olmasına yol açabilir. Bu da, veri bütünlüğünü korumak açısından ciddi bir sorun teşkil eder. ReplayQueueLength’in yükselmesi, genellikle hedef sunucuda yaşanan Disk performansı sorunları, yetersiz donanım kaynakları ya da yoğun iş yükü nedeniyle ortaya çıkar.
Nasıl Çalışır?
Bu iki metriği daha anlaşılır kılmak için, replikasyonu bir nehir akışına benzetebiliriz. CopyQueueLength, nehrin su kaynağından barajın önüne kadar ulaşan ama baraj kapakları açılmadığı için henüz geçememiş olan suyu temsil eder. ReplayQueueLength ise baraj kapaklarından geçmiş, ama henüz tarım arazilerine dağılmamış suyu gösterir. Bu iki süreçte yaşanan aksaklıklar, suyun (Log dosyalarının) verimli bir şekilde kullanılamadığını gösterir.
Daha teknik bir dille yaklaşacak olursak CopyQueueLength kısmındaki Log'larda bir şişme gördüğünüzde bu, büyük olasılıkla Network kaynaklı sorunlara işaret eder. ReplayQueueLength kısmındaki Log'larda bir şişme gördüğünüzde ise bu, büyük olasılıkla Disk kaynaklı sorunlara işaret eder diyebilmekteyiz.
Nasıl İzlenir?
Exchange Server'da DAG yapılandırmalarının sağlıklı bir şekilde çalışmasını sağlamak için bu iki değerin sürekli izlenmesi gereklidir. Özellikle Network kesintileri, Disk performans problemleri veya sunucu yük dengeleme hataları gibi durumlar, bu değerlerin yükselmesine neden olabilir. Gerekli adımlar atılmadığı sürece, DAG içindeki Database kopyalarının güncel kalması zorlaşır ve bu durum sonunda veri kaybına veya yedekleme başarısızlıklarına yol açabilir. Bu nedenle, replikasyon süreci sırasında CopyQueueLength ve ReplayQueueLength değerlerini izlemek, DAG yapısının sağlığı açısından kritik bir görevdir.
Aşağıdaki Script yardımıyla DAG (Database Availability Group) içindeki replikasyonun performansını ve sağlığını kontrol edebilirsiniz. Bu sayede CopyQueueLength ve ReplayQueueLength gibi kritik metriklerin izlenmesi sağlanarak, Network üzerindeki olası gecikmeler, Log'ların kopyalanmasında meydana gelebilecek birikmeler ya da hedef sunucuda Log'ların işlenmesindeki potansiyel sorunlar tespit edilebilir.
$allDBCopies = Get-MailboxDatabaseCopyStatus *
$allDBCopies | ForEach-Object {
$dbName = $_.Name
$copyQueueLength = $_.CopyQueueLength
$replayQueueLength = $_.ReplayQueueLength
Write-Host "Database: $dbName"
Write-Host "CopyQueueLength: $copyQueueLength"
Write-Host "ReplayQueueLength: $replayQueueLength"v Write-Host "-----------------------------------"
} |
Ek olarak Exchange Server’daki DAG (Database Availability Group) yapısında replikasyon sürecini izlemek ve replikasyon durumu hakkında periyodik e-posta bildirimleri almak için GitHub üzerinde yayınladığım Copy-Replay-QueueLength.ps1 isimli Script'imi kullanabilirsiniz. Bu Script, CopyQueueLength ve ReplayQueueLength değerlerini her bir veritabanı için toplar ve bu değerleri HTML formatında bir tabloya ekleyerek belirlenen alıcıya e-posta ile gönderir.
Bu teknik izleme, DAG ortamındaki veri bütünlüğünün korunması ve olası senkronizasyon hatalarının önlenmesi için erken uyarı niteliği taşır. Ayrıca, replikasyon sürecinde yaşanan darboğazlar veya performans sorunlarının kök nedenlerini detaylı bir şekilde analiz ederek, sistemin stabilitesini ve iş sürekliliğini korumak için proaktif müdahaleler yapılmasını mümkün kılar.
İlgili Script'i çalıştırdığımızda DAG üyesi Database'lerimizin CopyQueueLength ve ReplayQueueLength durumlarını HTML formatında belirlediğimiz e-posta adresine mail yoluyla iletildiğini görebilirsiniz.
Exchange Server ortamındaki DAG (Database Availability Group) yapısının performansını sürekli olarak izlemek, sistem sağlığı ve veri bütünlüğü açısından kritik önem taşır. Replikasyon işlemlerinin sağlıklı yürütülmesini sağlayan CopyQueueLength ve ReplayQueueLength metriklerinin dikkatli bir şekilde izlenmesi, Network veya Disk kaynaklı potansiyel sorunların erken tespiti ve çözülmesini mümkün kılar. DAG içindeki veritabanlarının güncelliğini koruyarak veri kaybını engellemek, yüksek erişilebilirlik ve veri kurtarma senaryolarında temel bir gerekliliktir.
Bu nedenle, replikasyon sürecinde herhangi bir aksaklık yaşanmaması için sunucuların ve Network altyapısının sürekli gözlemlenmesi ve gerektiğinde zamanında müdahale edilmesi hayati önem taşır. Özellikle yüksek yük altında çalışan sistemlerde, CopyQueueLength ve ReplayQueueLength gibi metriklerin düzenli olarak analiz edilmesi, DAG yapılarının optimum performansta çalışmasını sağlar ve iş sürekliliğini güvence altına alır.
Faydalı olması dileğiyle...
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.