Exchange Server 2019'da Database Availability Group (DAG) yapılandırması, yüksek kullanılabilirlik ve veri bütünlüğü sağlama açısından kritik bir rol oynar. DAG, birden fazla Mailbox Server arasında veritabanı kopyaları oluşturarak, veritabanlarının sürekli erişilebilir olmasını sağlar. Bu yapı, veri kaybı ve hizmet kesintisi riskini en aza indirir. DAG yapısına veritabanı eklemek, yüksek performanslı ve kesintisiz bir e-posta hizmeti sunmak için önemlidir.
PowerShell, Exchange Server yönetiminde güçlü ve esnek bir araç olarak karşımıza çıkar. DAG'a veritabanı eklemek için, öncelikle bir veritabanı oluşturmanız ve ardından bu veritabanını DAG içindeki uygun Mailbox Server'lara eklemeniz gerekir. Bu süreçte Exchange Management Shell (EMS) kullanılarak gerekli komutlar yürütülür. Veritabanı ekleme süreci, DAG üyeleri arasında replikasyonun düzgün bir şekilde yapılandırılmasını ve izlenmesini içerir. Replikasyon, veritabanı kopyalarının güncel tutulmasını sağlar ve herhangi bir sunucu arızası durumunda verilerin kaybolmasını önler.
Veritabanı oluşturma aşamasında, veritabanının adı, dosya yolu ve log dosyalarının konumu gibi bilgilerin belirlenmesi gereklidir. Bu bilgiler, veritabanının doğru bir şekilde yapılandırılmasını ve yönetilmesini sağlar. Oluşturulan veritabanı, DAG yapısına eklendiğinde, diğer Mailbox Server'lar arasında kopyalanarak yüksek erişilebilirlik sağlanır. Veritabanı ekleme işlemi sırasında, DAG üyeleri arasındaki bağlantılar ve Network bileşenleri dikkatle yönetilmelidir. Network Interface Card (NIC) ve IP adresleri gibi ağ bileşenleri, veritabanı kopyalarının hızla ve güvenli bir şekilde senkronize edilmesini destekler.
Veritabanı ekleme işlemi tamamlandıktan sonra, DAG içinde veritabanı kopyalarının durumu ve sağlığı düzenli olarak izlenmelidir. Veritabanı kopyalarının durumu, sağlığı ve replikasyon gecikmesi gibi kritik bilgiler, DAG'ın etkin bir şekilde yönetilmesi için önemlidir. Replikasyon sürecinde oluşabilecek herhangi bir sorun, DAG'ın genel performansını ve veri bütünlüğünü etkileyebilir. Bu nedenle, DAG yöneticileri, veritabanı kopyalarının durumunu sürekli olarak izlemeli ve gerekli müdahaleleri zamanında yapmalıdır.
Exchange Server 2019'da DAG yapılandırması ve veritabanı ekleme işlemi, IT yöneticilerine esneklik ve kontrol sağlar. Yüksek kullanılabilirlik, veri koruma ve esneklik sunan bu yapı, modern iş dünyasında kesintisiz iletişimi sağlamak için vazgeçilmez bir araçtır. DAG'ın sağladığı avantajlar, kurumsal e-posta hizmetlerinin sürekli olarak erişilebilir olmasını ve veri kaybı riskinin minimize edilmesini sağlar. Bu, kullanıcı memnuniyetini artırır ve işletmelerin verimliliğini destekler. DAG yönetimi, IT ekiplerine güçlü bir araç sunarak, Exchange Server ortamlarının daha güvenilir ve performanslı olmasını mümkün kılar.
Exchange Server 2010 sürümünden beri son derece başarılı bir şekilde çalışan DAG (Database Availability Group) mimarisi, kesintisiz bir E-Mail sistemi deneyimi sunmaktadır. Aslında Exchange Server 2007 sürümünde temelleri atılan ancak Exchange Server 2010 sürümü ile ideal yapıya kavuşan DAG, yani aslında LOG replikasyonu, sayesinde Mailbox Server'lar arasındaki eşitleme özelliği sayesinde olası bir sorunda Mailbox Server seviyesinde herhangi bir kesinti olmadan kullanıcılarımız E-Mail'lerine ulaşmaya devam edebilmektedir.
Bu nedenle de özellikle iletişimin yollarınızdan birisi olan E-Mail trafiğinin yönetiminin yapıldığı Exchange Server mimarinizin kalbi olan ve tüm E-Mail verilerinizin tutulduğu Database'lerin yedekliliğinin sağlanması; iş sürekliliğinizi sağlamanız, zaman ve para kayıplarının önüne geçmeniz açısından kritik önem arz etmektedir. Bu makalemde sizlere Exchange Server 2019 ortamında mevcut DAG yapınıza yeni bir Database'in (veri tabanı) nasıl ekleneceğinden bahsediyor olacağım.
1- Aşağıdaki komutla Exchange yapımızdaki DAG yapılandırma bilgilerini çekiyorum.
Get-DatabaseAvailabilityGroup |
2- Ortamımda tek bir DAG yapılandırması var. Yukarıdaki komutla DAG mimarimizin Member Server'larını görebiliyoruz ancak aşağıdaki komutla da Member Server'ların hangisinin DAG mimarisinde çalışabilir durumda olduğu bilgisini görüntülüyorum.
Get-DatabaseAvailabilityGroup EXCHDAG01 -Status |
3- Aşağıdaki komutla Exchange yapımızdaki Database'lerin hangisinin aktif kopya, hangisinin pasif kopya olduğu ve hangi Server'larda host edildiği bilgilerini elde ediyorum. Çıkan sonuçta Database'lerin Status bilgisi Healthy ve Mounted olarak ikiye ayrılmaktadır. Healthy, DAG mimarisindeki pasif kopya Database'i; Mounted, DAG mimarisindeki aktif kopya Database'i temsil etmektedir.
Ortamımda bir önceki Exchange Server 2019'da Exchange Management Shell Üzerinden Database Oluşturma isimli makalemde oluşturmuş olduğum MBXSYSDB isimli Database'in de listede yer aldığını, Mounted durumda olduğunu ve Healthy durumda olan pasif kopyalasının olmadığını görebiliyorum.
Get-MailboxDatabaseCopyStatus * | Sort Name | Select Name, Status, ContentIndexState |
4- Aşağıdaki komutla yukarıdaki komut çıksındaki bilgilerin daha derli toplu bir hali ile sonuç çıktısını elde edebiliriz.
Get-MailboxDatabase | Format-List DatabaseCopies |
5- Aşağıdaki komutlarla Exchange Server Host Name bilgileri ile Member (üye) bazında Database kopylaları filterli bir şekilde görüntülenebilir. Makalemde 2 adet Member (üye) Exchange Server'ım olduğu için ve doğal olarak tüm Database'lerin her iki sunucuda da aktif ve pasif kopyaları olacağı için çok büyük bir fark görülmeyecek olsa da, daha fazla Member (üye) Exchange Server olan DAG yapılarında belirleyici bir filtreleme olacaktır. Bu çıktıyı almamdaki asıl sebep, DAG içine yer almayan MBXSYSDB isimli Database'in sadece EXCHSRV01 Host Name'li sunucuda yer aldığını, diğer sunucuda böyle bir Database'in olmadğını göstermektedir.
Get-ExchangeServer -Identity EXCHSRV01 | Get-MailboxDatabase | Format-List DatabaseCopies |
6- Aşağıdaki komutla MBXSYSDB isimli Database'in pasif kopyasının ortamımdaki ikinci DAG Member (üye) Exchange Server'ımda oluşmasını sağlıyorum.
Add-MailboxDatabaseCopy -Identity MBXSYSDB -MailboxServer EXCHSRV02 -Verbose –ActivationPreference:2 |
7- MBXSYSDB isimli Database'in pasif kopyasının ortamımdaki ikinci DAG Member (üye) Exchange Server'ımda oluşmasını sağladıktan sonra sıra, Information Store servisinin Restart edilmesine geldi. Aşağıdaki komutla ilgili servisi Restart ediyorum.
Get-Service | Where-Object { $_.DisplayName –ilike “Information Store *” } | Restart-Service |
8- Aşağıdaki komutla iligli Database'in hangi sunucuda pasif kopya/kopyalarının tutulduğu ve en son hangi tarih ve saatte en son Log dosyasının kopyalandığı bilgisi yer almaktadır. Last Inspection Log Time, sadece Status bilgisi Healthy olan yani pasif kopya Database'lerde tarih ve saat damgasını işlemektedir.
Get-MailboxDatabaseCopyStatus * | ft -AutoSize |
9- Aşağıdaki komut, Database adı verilen ilgili Database'in hangi sunucuda aktif kopyasının, hengi sunucularda pasif kopyalarının bulunduğu bilgisini vermektedir. Görüldüğü gibi MBXSYSDB isimli Database'im EXCHSRV02 Host Naname'li Exchange Server'ımda pasif kopya durumdadır.
Get-MailboxDatabaseCopyStatus -Db MBXSYSDB |
10- Aşağıdaki komutla tüm Database'lerin Replication Health bilgilerinin "Passed" yani başarılı durumda olduğunu görüntülüyorum.
Test-ReplicationHealth -Identity EXCHSRV01 |
11- Replication Health kontolü sırasında hangi adımların kontrol edilğini detaylıca açıklamak istiyorum.
» ClusterService:
Cluster servisinin sağlıklı bir şekilde çalışıp çalışmağını kontol eder.
» ReplayService:
Microsoft Exchange Replication servisinin çalışıp çalışmağını kontol eder.
» ActiveManager:
Active Manager'ın çalışıp çalışmağını kontol eder.
» TasksRpcListener:
Tasks RPC Listener servisinin çalışıp çalışmağını ve uzak isteklere cevap verip vermediğini kontol eder.
» TcpListener:
TCP Listener servisinin çalışıp çalışmağını ve uzak isteklere cevap verip vermediğini kontol eder.
» ServerLocatorService:
Server Locator servisinin çalışıp çalışmağını ve uzak isteklere cevap verip vermediğini kontol eder.
» DagMembersUp:
DAG üye sunucularının UP ve Running durumda olduklarını kontol eder.
» MonitoringService:
Monitoring WCF Service servisinin çalışıp çalışmağını ve uzak isteklere cevap verip vermediğini kontol eder.
» ClusterNetwork:
Network'lerin sağlık durumlarını kontrol eder.
» QuorumGroup:
DAG için kullanılan quorum ve witness'ın sağlık durumlarını kontrol eder.
» FileShareQuorum:
Witness için kullanılan dizin yolunun erişilebilir olduğunu doğrular.
» DatabaseRedundancy:
Database'lerin yeterli yedekliliğe sahip olduklarını kontrol eder.
» DatabaseAvailability:
Database'lerin yeterli erişim düzeyine sahip olduklarını kontrol eder.
» DBCopySuspended:
Database kopyalarının herhangi birinin 'Suspended' durumda olup olmadıklarını kontrol eder.
» DBCopyFailed:
Database kopyalarının herhangi birinin 'Failed' durumda olup olmadıklarını kontrol eder.
» DBInitializing:
Database kopyalarının herhangi birinin 'Initializing' durumda olup olmadıklarını kontrol eder.
» DBDisconnected:
Database kopyalarının herhangi birinin 'DisconnectedAndHealthy' durumda olup olmadıklarını kontrol eder.
» DBLogCopyKeepingUp:
Database kopyası için Log kopyalama ve incelemenin, kaynak sunucudaki Log oluşturma işlemine ayak uydurduğunu doğrular.
» DBLogReplayKeepingUp:
Log kaydı tekrarlama işleminin Log kopyalama ve incelemeye ayak uydurduğunu doğrular.
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.