Exchange Server 2019'da Database Availability Group (DAG), yüksek erişilebilirlik ve felaket kurtarma çözümlerinin temelini oluşturur. Database Availability Group (DAG), birden fazla Mailbox sunucusu arasında Database replikasyonu yaparak veri kaybını önler ve hizmetin kesintisiz devam etmesini sağlar. Bu, sunucular arasında verilerin sürekli senkronize edilmesini sağlar. Birincil kopyanın devre dışı kaldığı durumlarda, pasif kopyalardan biri devreye girer ve kullanıcılar herhangi bir kesinti yaşamadan e-posta hizmetlerini kullanmaya devam eder.
Database Availability Group (DAG), sunucular arasında Database'lerin birden fazla kopyasını tutarak iş sürekliliğini sağlar. Bu yapı, herhangi bir Mailbox sunucusunun arızalanması durumunda diğer sunucuların devreye girmesini ve hizmetin devam etmesini sağlar. Her bir Database kopyası, aynı Database Availability Group (DAG) içindeki farklı sunucularda tutulur ve replikasyon trafiği bu sunucular arasında gerçekleşir. Database Availability Group (DAG) içindeki tüm Database kopyaları sürekli olarak güncellenir, bu da bir sunucu arızasında veri kaybını minimuma indirir.
Exchange Server 2019'da Database Availability Group (DAG) yapılandırması, önce bir Database Availability Group (DAG) oluşturulmasını, ardından bu Database Availability Group (DAG)'a Mailbox sunucularının eklenmesini ve son olarak Database kopyalarının yapılandırılmasını içerir. Bu yapılandırma sırasında, Network yapılandırması, Disk performansı ve kapasitesi gibi faktörler dikkatlice değerlendirilmelidir. Replikasyon trafiğinin sağlıklı bir şekilde işleyebilmesi için, Database Availability Group (DAG) içinde kullanılan Network'lerin birbirinden izole edilmesi ve performansın optimize edilmesi kritik öneme sahiptir.
Database Availability Group (DAG) yapısını detaylı bir şekilde anladıktan sonra, bu yapıya pasif Database kopyalarının eklenmesi sürecine geçebiliriz. Exchange Management Shell (EMS) kullanılarak yapılan bu işlem, sistemin veri bütünlüğünü ve yüksek erişilebilirliğini korumak için gereklidir. Pasif kopyalar, birincil kopyanın devre dışı kalması durumunda devreye girerek veri kaybını önler ve hizmetin kesintisiz devam etmesini sağlar. Bu kopyaların eklenmesi sırasında, replikasyon trafiği, Network performansı ve Disk kapasitesi gibi faktörler titizlikle yönetilmelidir.
Ayrıca pasif Database kopyalarını eklerken, Database Availability Group (DAG) içindeki replikasyon trafiği kritik bir rol oynar. Replikasyon işlemleri sırasında, sunucular arasındaki veri senkronizasyonu sürekli olarak izlenmeli ve olası hatalar hızlı bir şekilde tespit edilmelidir.
Ek olarak, pasif kopyaların eklendiği Disk altyapısı, yeterli IOPS kapasitesine sahip olmalıdır. Yetersiz Disk performansı, replikasyon gecikmelerine ve dolayısıyla veri senkronizasyonu sorunlarına yol açabilir. Bu durum, özellikle yüksek veri trafiği olan sistemlerde ciddi problemlere neden olabilir. Bu nedenle, Disk performansı ve kapasitesi önceden dikkatlice analiz edilmelidir.
Pasif kopyaların eklenmesi sırasında Activation Preference değerlerinin doğru bir şekilde ayarlanması da önemlidir. Bu değerler, Database Availability Group (DAG) içindeki Failover sürecini doğrudan etkiler. En düşük ActivationPreference değerine sahip olan kopya, birincil kopyanın devre dışı kalması durumunda ilk olarak devreye girer. Bu nedenle, kopyalar arasında iş yükü dağılımının dengeli olması için bu parametrelerin doğru şekilde yapılandırılması gerekmektedir.
Son olarak, replikasyon sürecindeki olası gecikmeler ve hatalar düzenli olarak izlenmelidir. Replikasyon hataları, Database Availability Group (DAG) içindeki kopyaların güncel olmamasına ve bu nedenle veri kaybına yol açabilir. Replikasyon durumunun sık sık kontrol edilmesi ve gereken düzeltmelerin zamanında yapılması, veri bütünlüğünü korumak adına hayati öneme sahiptir. Tüm bu adımlar, Exchange Server 2019 Database Availability Group (DAG) yapısına pasif Database kopyalarının başarılı bir şekilde eklenmesini sağlar.
DAG Yapısına Database Kopyaları Ekleme
1- Aşağıdaki cmdlet'ler ile öncelikli olarak Database'lerimin aktif ve pasif kopyalarını kontrol ederek, özellikle aktif kopyaların hangi sunucularda olduğu bilgisini ediniyorum.
Bu cmdtlet, Database'lerimin aktif kopyaların hangi sunucularda olduğu bilgisini veriyor.
Get-MailboxDatabaseCopyStatus * | Where-Object {$_.Status -like "*Mounted"} | Sort Name | FL Name, Status | FT -Autosize |
Bu cmdtlet, Database'lerimin pasif kopyaların hangi sunucularda olduğu bilgisini veriyor. Yeni kurulan bir Exchange Server ortamı ve Database Availability Group (DAG) yapısı olduğu için Database'lerimin henüz pasif kopyaları bulunmuyor. Bu nedenle sizin ortamınızdaki cmdlet çıktıları farklı sonuçlar verebilir.
Get-MailboxDatabaseCopyStatus * | Where-Object {$_.Status -notlike "*Mounted"} | Sort Name | FL Name, Status | FT -Autosize |
2- Aşağıdaki cmdlet ile Database'lerimin, Database Availability Group (DAG) yapısı içindeki Activation Preference numaralarını görebilmem için gereklidir.
Get-MailboxDatabase | Format-Table Server, DatabaseCopies, ActivationPreference |
Activation Preference, Exchange Server 2019'da bir Database Availability Group (DAG) içindeki her bir Database kopyasına atanan ve o kopyanın devreye alınma sırasını belirleyen bir değerdir. Bu değer, Failover veya Switchover durumunda hangi kopyanın ilk olarak aktif hale geleceğini tanımlar. Activation Preference numaraları genellikle 1'den başlar ve bir DAG içindeki diğer kopyalar için sıralanır.
Ayrıca, yeni kurulan bir Database Availability Group (DAG) yapısında her bir Database kopyasının Activation Preference değeri 1 olarak atanır çünkü bu değer, o Database kopyasının DAG içerisindeki en yüksek öncelikli kopya olduğunu belirtir. Başlangıçta tüm Database kopyaları, hangi sunucuda oluşturulduklarına bakılmaksızın bu değere sahiptir. Activation Preference değeri 1, o kopyanın birincil olarak devreye alınacağı kopya olduğunu ifade eder, bu da varsayılan olarak kopyanın oluşturulduğu sunucuda aktif olmasını sağlar.
3- Aşağıdaki cmdlet'ler ile aktif Database'lerimin pasif kopyalarını Exchange Server ortamımdaki 3 Node'da ekleme işlemini gerçekleştiriyorum.
Add-MailboxDatabaseCopy -Identity [DB] -MailboxServer [sunucu] –ActivationPreference:[numara] |
Add-MailboxDatabaseCopy -Identity TRSADB01x -MailboxServer 06SW-EXCHANGEB –ActivationPreference:2
Add-MailboxDatabaseCopy -Identity TRSADB01x -MailboxServer 06SW-EXCHANGEC –ActivationPreference:3
Add-MailboxDatabaseCopy -Identity TRSADB02x -MailboxServer 06SW-EXCHANGEA –ActivationPreference:2
Add-MailboxDatabaseCopy -Identity TRSADB02x -MailboxServer 06SW-EXCHANGEC –ActivationPreference:3
Add-MailboxDatabaseCopy -Identity TRSADB03x -MailboxServer 06SW-EXCHANGEA –ActivationPreference:2
Add-MailboxDatabaseCopy -Identity TRSADB03x -MailboxServer 06SW-EXCHANGEB –ActivationPreference:3 |
İlgili cmdlet'te –ActivationPreference parametresi ile kullandığım kullandığım 2, 3, vb. değerler, daha düşük önceliğe sahip kopyaları temsil eder. Eğer Activation Preference değeri 1 olan kopya devreye giremezse, sıradaki en düşük değerli kopya devreye alınır.
Exchange Server 2019'da Activation Preference değeri, bir Database kopyasının failover sırasında hangi sırayla devreye alınacağını belirler. Eğer Activation Preference değeri 1 olan kopya devreye giremezse, sistem bu değerin ardından gelen en düşük Activation Preference değerine sahip kopyayı devreye almak için harekete geçer. Bu süreçte, belirli kriterlere göre kopyaların sağlık durumu ve uygunluğu değerlendirilir. Ancak, bu kararlar otomatik olarak DAG yapısı içinde yer alan Primary Active Manager (PAM) ve Standby Active Manager (SAM) bileşenleri tarafından yönetilir.
Primary Active Manager (PAM)
Primary Active Manager (PAM), DAG içerisindeki en önemli bileşendir ve tüm aktif Database kopyalarını yönetir. PAM, DAG üyeleri arasındaki aktif kopyaların yerini belirlemekten ve bu kopyaları yönetmekten sorumludur. PAM, Cluster Group'un sahipliğini üstlenen Mailbox sunucusudur ve DAG içindeki aktif kopyaların konumunu belirleyen tüm kararları alır. Bir failover durumunda, PAM devreye girerek hangi Database kopyasının aktif olacağına karar verir. Eğer Activation Preference değeri 1 olan kopya devreye giremezse, PAM diğer kopyaların Activation Preference değerlerine ve sağlık durumlarına göre bir karar verir ve sıradaki en uygun kopyayı devreye alır.
Standby Active Manager (SAM)
Standby Active Manager (SAM) ise DAG içinde yer alan diğer Mailbox sunucularında çalışır ve genellikle pasif rol üstlenir. SAM, yalnızca ilgili Mailbox sunucusundaki Database kopyalarının durumunu izler. Eğer PAM bir sorun nedeniyle devre dışı kalırsa, SAM devreye girer ve PAM'ın görevlerini devralarak aktif kopyaların yönetimini üstlenir. SAM, DAG içerisindeki her sunucuda bulunur ve PAM'ın görevlerini yedeklemek için hazır bekler. Bu şekilde, PAM'ın devre dışı kaldığı bir durumda bile, DAG işlevselliğini korur ve Database kopyalarının yönetimini aksatmaz.
Best Copy Selection-BCS (En İyi Kopya Seçim) Süreci
Active Manager, aktif bir Database ulaşılamaz hale geldiğinde Best Copy Selection - BCS (En İyi Kopya Seçim) sürecini başlatır. BCS süreci, aktivasyon için en uygun Database kopyalarını On Set kriterine göre listeleyecektir. Bu süreçte, çevrimdışı olan veya bir yönetici tarafından aktivasyonu engellenen Database kopyaları göz ardı edilir. BCS sürecinde, Active Manager, birincil anahtar olarak Copy Queue Length değerini kullanarak bir Database kopyaları listesi oluşturur. Active Manager, sıralama için ActivationPreference değerini ikincil anahtar olarak kullanır. Düşük ActivationPreference değeri, en yüksek öncelik anlamına gelir.
Eğer Database Mount Dial ayarını Lossless olarak yapılandırdıysanız, bu davranış biraz farklılık gösterir. Bir Exchange Admin'i veya bir Script, hedef belirtmeden bir Switch-Over işlemi gerçekleştirdiğinde ve Lossless ayarları ile, Active Manager listeyi sadece ActivationPreference değerini birincil anahtar olarak kullanarak artan sırayla sıralar. Bu işlemden sonra, Active Manager, her bir Database kopyasını On Set kriterine göre değerlendirir. Active Manager, aşağıda gösterilen sıraya göre Set kriterlerine en uygun Database'i bulmaya çalışacaktır.
Yukarıdaki ifadelerim tam olarak, Exchange Server ortamında Database Mount Dial ayarının Lossless olarak yapılandırıldığında, Active Manager'ın bir Switch-Over işlemi sırasında nasıl davrandığını açıklamaktadır. Bu durum, veri kaybını önlemek için en uygun Database kopyasını seçmeye odaklanır.
1. Database Mount Dial - Lossless
» Lossless, bir Database'in herhangi bir veri kaybı olmadan Mount edilmesini sağlamak için kullanılır. Bu ayar, veri kaybına tahammülü olmayan ortamlarda tercih edilir. Lossless modu, verilerin eksiksiz ve tam olarak senkronize edilmesini sağlamak için diğer ayarlardan daha titiz davranır.
2. Switch-Over İşlem
» Switch-Over, aktif bir Database'in başka bir kopyasını aktif hale getirme işlemidir. Bir Exchange Admin'i veya bir Script, belirli bir hedefi belirtmeden bir Switch-Over işlemi gerçekleştirdiğinde, Active Manager devreye girer ve hangi kopyanın aktif hale getirileceğini belirler.
3. ActivationPreference Değeri
» ActivationPreference, her bir Database kopyasının aktivasyon sırasındaki öncelik seviyesini belirleyen bir parametredir. Düşük ActivationPreference değeri, bu kopyanın daha yüksek öncelikli olduğunu ifade eder.
» Lossless ayarları ile, Active Manager öncelikle ActivationPreference değerine göre kopyaları sıralar. Yani, Active Manager bu değeri birincil anahtar olarak kullanarak kopyaları artan sırayla dizilir.
4. On Set Kriterine Göre Değerlendirme
» ActivationPreference değeri kullanılarak yapılan sıralamanın ardından, Active Manager, her bir Database kopyasını belirli kriterlere göre değerlendirir. Bu kriterler, Database'in sağlıklı olup olmadığı, Copy Queue Length ve Replay Queue Length gibi faktörleri içerir.
» On Set kriteri, Active Manager'ın en uygun Database kopyasını belirlemek için kullandığı bir dizi kurallar bütünüdür. Bu kurallar, Database kopyalarının sağlığını, senkronizasyon durumunu ve diğer önemli metrikleri göz önünde bulundurur.
5. Sonuç
» Active Manager, bu süreç sonunda en uygun Database kopyasını seçer ve onu aktif hale getirir. Bu süreç, veri kaybını önlemek ve sistemin güvenilir bir şekilde çalışmasını sağlamak için titizlikle yürütülür.
Aşağıdaki tabloyu, her bir set kriterini referans almanız için oluşturdum. Bu bilgiler, Primary Active Manager'ın Best Copy Selection-BCS (En İyi Kopya Seçim) sürecinde kullandığı kriterlerdir.
Kriter Seti |
Kriter |
1 |
» Content Index durumu Healthy olan bir Database.
» Copy Queue Length 10 Log dosyasından az olan bir Database.
» Replay Queue Length 50 Log dosyasından az olan bir Database. |
2 |
» Content Index durumu Crawling olan bir Database.
» Copy Queue Length 10 Log dosyasından az olan bir Database.
» Replay Queue Length 50 Log dosyasından az olan bir Database. |
3 |
» Content Index durumu Healthy olan bir Database.
» Replay Queue Length 50 Log dosyasından az olan bir Database. |
4 |
» Content Index durumu Crawling olan bir Database.
» Replay Queue Length 50 Log dosyasından az olan bir Database. |
5 |
» Replay Queue Length 50 Log dosyasından az olan bir Database. |
6 |
» Content Index durumu Healthy olan bir Database.
» Copy Queue Length 10 Log dosyasından az olan bir Database. |
7 |
» Content Index durumu Crawling olan bir Database.
» Copy Queue Length 10 Log dosyasından az olan bir Database. |
8 |
» Content Index durumu Healthy olan bir Database. |
9 |
» Content Index durumu Crawling olan bir Database. |
10 |
» Healthy, DisconnectedAndHealthy, DisconnectedAndResynchronizing veya SeedingSource durumunda olan bir Database. |
PAM, bu kriterlere göre bir değerlendirme yapar ve en düşük Activation Preference değerine sahip olan, aynı zamanda yukarıdaki kriterleri karşılayan kopyayı devreye alır. Bu süreç, DAG yapısının veri bütünlüğünü ve erişilebilirliğini korumak için kritik bir rol oynar. Bu nedenle, her bir kriterin doğru şekilde izlenmesi ve değerlendirilmesi, Exchange Server 2019'un sorunsuz çalışmasını sağlar.
Database Availability Group (DAG) yapımdaki tüm Database'lerin pasif kopyalarının diğer Node'lara eklenme işlemleri tamamlandı.
4- Tüm Database'lerin pasif kopyalarının diğer Node'lara eklenme işlemleri tamamlandıktan sonra sıra, aşağıdaki cmdlet ile tüm Node'lardaki Information Store servisini Restart etme işlemine geldi.
Aşağıdaki cmdlet ile öncelikli olarak Information Store servisini cmdlet'i çalıştırdığım Node üzerinde çalıştıyorum. Bu şekilde öncelikle, cmdlet'i çalıştırdığım Node'un Information Store servisini Restart etme işlemini gerçekleştirmiş oldum.
Get-Service | Where-Object { $_.Name –like “*MSExchangeIS*” } | Restart-Service -Force |
Diğer 2 Node'a ise RDC (Remote Desktop Connection) ile bağlanmadan yine aynı Node üzerinden -ComputerName parametresi ile Hostname bilgilerini belirttiğim uzak bilgisayara örneğin, Enter-PSSession veya Invoke-Command gibi bir Remote PowerShell Session başlatmadan çalıştırıp, Information Store servisinin her iki Node'da da Restart olmasını sağlıyorum.
Get-Service -ComputerName [sunucu] | Where-Object { $_.Name –like “*MSExchangeIS*” } | Restart-Service -Force |
Get-Service -ComputerName 06SW-EXCHANGEB | Where-Object { $_.Name –like “*MSExchangeIS*” } | Restart-Service -Force
Get-Service -ComputerName 06SW-EXCHANGEC | Where-Object { $_.Name –like “*MSExchangeIS*” } | Restart-Service -Force |
NOT: -ComputerName parametresi ile kullanılan cmdlet, WMI kullanarak servisleri yönetir. Bu nedenle cmdlet, Networok üzerinden uzak komut yürütme yeteneği sağlayan PowerShell Remoting özelliğinin temelini oluşturan WS-Management veya WinRM protokollerine dayanmaz, dolayısıyla bir uzak oturum açmadan çalışır.
5- Aşağıdaki cmdlet ile Database'lerimin, Database Availability Group (DAG) yapısı içindeki Activation Preference numaralarını tekrar görüntülüyorum.
Get-MailboxDatabase | Format-Table Server, DatabaseCopies, ActivationPreference |
Tüm bu adımlardan sonra pasif Database kopyalarının, Exchange Server 2019'da Database Availability Group (DAG) yapısına başarılı bir şekilde eklenmesi işlemini tamamlamış oluyorum.
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.