İçerikleri sosyal medya üzerinden paylaşarak daha fazla kişiye ulaşmasına yardımcı olabilirsiniz.




Fırat Boyan 23.12.2021 0

Exchange Server 2019'da DAG Yapısına PowerShell İle Database Ekleme

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

Exchange DAG

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

Exchange DAG

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

Exchange DAG

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

Exchange DAG

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

Exchange DAG
Exchange DAG

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

Exchange DAG

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

Exchange DAG

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

Exchange DAG

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

Exchange DAG

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

Exchange DAG
Exchange DAG

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.



Yazar Hakkında

firatboyan.com


1985 yılında Alanya'da doğdum. İlk, orta ve lise öğrenimimi Alanya'da tamamladım. Liseden mezun olduktan sonra Akdeniz Üniversitesi Bilgisayar Teknolojisi Ön Lisans programına yerleştim ve bu programdan mezun oldum. Ön Lisans programından mezun olduktan bir süre sonra Dikey Geçiş Sınavı (DGS) ile İstanbul Teknik Üniversitesi (İTÜ) Bilgisayar Mühendisliği Lisans programına yerleştim.

2003 yılından beri Bilgi Teknolojileri sektöründe Sistem ve Network alanlarında çalışıyorum. Bir çok firma bünyesinde onlarca farklı projelerde yer alarak bu alanda yıllar içinde ciddi bir bilgi birikimi ve deneyimler kazandım. Bilgi Teknolojileri sektöründeki profesyonel çalışma hayatımın uzunca bir dönemini entegratör firma bazında, ağılıklı olarak Microsoft ürünleri üzerine danışman olarak sürdürüyor ve yüksek seviyeli projeler geliştiriyorum. Uzunca bir süredir de Türkiye'nin önde gelen entegratör firmalarından olan Data Market bünyesinde Senior Cloud Engineer olarak çalışıyorum.

Ek olarak, 2015 yılında Network Akademi bünyesinde Microsoft Certified Trainer (MCT) ünvanı ile Sistem ve Network Uzmanlık eğitimleri vermeye başladım. Sistem ve Network Uzmanlığı alanındaki eğitmenlik serüvenime Network Akademi bünyesinde devam etmekteyim.

YORUMLAR
Bu makaleye henüz yorum yapılmadı! İlk yorum yapan sen ol.
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.


750 karakter yazabilirsiniz.
Captcha
Güvenlik kodunu BÜYÜK harflerle giriniz.
* Yorumlar, onaylandıktan sonra yayınlanmaktadır.
* E-posta, yorum onay bildirimi için gereklidir. Yayınlanmaz.