Exchange Server

Exchange Server 2019 DAG Ortamında CU12 Update Adımları

Merhaba, Organizasyonumuzda Microsoft Exchange kullanıyorsanız en önemli operasyonlarımızdan biriside Exchange altyapımızı güncel tutmaktır. Bu gün sizler ile Exchange Server 2019 için yeni yayınlanan Cumulative Update 12 update uygulama adımlarını göreceğiz.

Cumulative Update güncelleme adımları önemlidir. Özellikle ortamınızda bir Exchange DAG yapısı varsa ve siz uygun olan adımları takip etmeden güncelleme yapmaya çalışırsanız sisteminizi çalışamaz hale getirebilirsiniz. Cumulative Update (CU) geçişlerinde bazı ön gereksinimler olur. Bu yüzden geçiş yapmadan önce, yapınızın ve CU geçişi için gereklilikleri karşılaştırıp eksikleri tamamlamanız gerekmektedir. Bizim konumuz Exchange server 2019 CU12 olduğu için gereksinimlerini ve yükleme adımlarını inceleyeceğiz.

Exchange Server Altyapısı

Aşağıdaki görseldeki gibi bir yapımız var, İki adet sunucu CP1 ve CP2, toplamda üç mailbox database’ine sahibiz. Bunlar DAG yapısı içerisinde aşağıdaki gibi çalışmakta.

Başlamadan önce yapılması gereken kontroller

İlk olarak buradaki linkli okuyunuz.

https://support.microsoft.com/en-au/topic/cumulative-update-12-for-exchange-server-2019-kb5011156-6a4e598a-876c-4ff1-9cfa-f7b87246f1d8

Sorulması gereken sorular

.Net Framework güncellemesi yaptın mı ?

İlk olarak .Net 4.8 yükseltmesi yapmanız gerekiyor. Yükledikten sonra sistemi reboot etmeyi unutmayın.

Exchange Server kurulu işletim sistemine son güncellemeleri yüklendin mi ?

CU güncellemesi yapmadan önce Exchange serverların kurulu olduğu işletim sisteminin son güncellemeleri aldığından emin olun.

Antivirüs ve backup angentlarını disable yaptın mı ?

Güncelleme öncesi sistem üzerinde aktif olan güvenlik endpointleri veya backuplama için kullanılan backup agentlarını disable yapıyoruz.

CU 12 ISO ‘u indirdin mi ?

https://www.microsoft.com/en-us/download/details.aspx?id=104131

Bu kontrollerden sonra ilk yapmamız gereken Active Directory işlemleri. Bunlar;

  • “Active Directory Schema” genişletme işlemi
  • “Active Directory hazırlanması”

Bu iki işlemi yapabilmek için işlem yapacağınız kullanıcının Schema Admins,Enterprise Admins gruplarına üye olması gerekiyor. Eğer üye değilse yukardaki iki işlemi yapamazsınız.

Bun aşamada sorun yaşamamak için PDC olan DomainController üzerinde “Exchange server 2019 CU12” ISO dosyamızı mount edip, cmd komut istemini administrator modda çalıştırıyoruz.

AD Schema genişletme işlemi

Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF /PrepareSchema

AD hazırlık işlemlerini

Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF /PrepareAD

Bu işlemlerin ardında Schema versiyonlarını kontrol ediyoruz. Bunun için aşağıdaki powershell scriptini kullanıyoruz.

$sc = (Get-ADRootDSE).SchemaNamingContext
$ob = "CN=ms-Exch-Schema-Version-Pt," + $sc
Write-Output "RangeUpper: $((Get-ADObject $ob -pr rangeUpper).rangeUpper)"
# Exchange Object Version (domain)
$dc = (Get-ADRootDSE).DefaultNamingContext
$ob = "CN=Microsoft Exchange System Objects," + $dc
Write-Output "ObjectVersion (Default): $((Get-ADObject $ob -pr objectVersion).objectVersion)"
# Exchange Object Version (forest)
$cc = (Get-ADRootDSE).ConfigurationNamingContext
$fl = "(objectClass=msExchOrganizationContainer)"
Write-Output "ObjectVersion (Configuration): $((Get-ADObject -LDAPFilter $fl -SearchBase $cc -pr objectVersion).objectVersion)"

Bu script çıktısında, aşağıdaki değerleri görmeniz gerekiyor.

Bu işlemlerden sonra AD tarafında işlemler bitiyor ve CU geçişine hazır hale geliyor. Şimdi tekrar Exchange tarafına dönüyorum.

Exchange tarafında işlemlere başlamadan önce, Load Balancer kontrolü

Sisteminizde bir Load Balance kullanıyorsanız ve Exchange sunucular bu cihazın arkasındaysa (öyle olmalıdır) dikkat etmeniz gereken bir kaç nokta var.

Kullandığınız Load Balancer, Exchange sunucu havuzundan bir sunucunun otomatik down olduğunu algılayabiliyor mu. Eğer cevap evet ise sorun yok ancak otomatik olarak algılayamıyorsa cihazda ilgili ayarları yapmak gerekli, yoksa update sırasında kesinti yaşarsınız.

Eğer sisteminizde bir Load Balancer yok bunun yerine DNS Round Robin kullanıyorsanız kesinti yaşarsınız bunun nedeni DNS Round Robin’in sunucunun kapanmış olduğunu anlayamıyor olmasıdır. Bu yüzden DNS Round Robin kullanıyorsanız, güncelleme yapacağınız sunucunun kaydını geçici olarak silebilirsiniz.

Tüm adımlardan sonra CU geçişine başlayabiliriz

Ben CU geçişlerine hep en son sunucundan başlarım, son dan başa doğru gelirim. yani s01,s02,s03 sunucularım varsa ilk olarak s03 den başlarım. Siz istediğinizden başlayabilirsiniz. Bizim öğrenimizde CP1 ve CP2 sunucuları var. Ben CP2 ile başlıyorum.

İlk olarak CU12 ISO dosyamı CP2 sunucuma mount ettim ve Exchange konsolumu admin modda başlattım. Burada yapmak istediğimiz aktif db’leri CP1’e almak, tüm servisleri durdurmak ( cluster,exchange vs..) sonra update işlemi yaparak her şey eski haline getirmek.

  • Sunucuyu mail kabul etmemesi için ayarlıyoruz.
Set-ServerComponentState -identity cp2 -Component HubTransport -State Draining -Requester Maintenance
  • İletileri ikinci sunucuma yönlendiriyorum, sunucu ismini FQDN olarak girmeyi unutmayın.
Redirect-Message -Server cp2 -Target cp1.domain.com
  • Cluster modunu duraklatıyorum.
Suspend-ClusterNode cp2
  • Sunucu üzerindeki aktif veritabanlarının diğer sunucu üzerinde mount edilmesini sağlıyoruz ayrıca sunucu üzerinde veritabanı mount işlemini disable ediyoruz.
Set-MailboxServer cp2 -DatabaseCopyActivationDisabledAndMoveNow $true
  • Sunucu üzerindeki database aktivasyon politikasına bakıyoruz. Bu ayarı biryere not edelim daha sonra tekrar kullanacağız. Bu değer, mailbox databaselerinin sunucu üzerinde aktif mi yoksa sadece pasif mi olacağını belirler.
Get-MailboxServer cp2 | Select DatabaseCopyAutoActivationPolicy
  • Database aktivasyon politikasını blocked mode olarak ayarlıyoruz. Bu sunucu üzerinde herhangi bir veritabanının aktif olmasını önleyecektir.
Set-MailboxServer cp2 -DatabaseCopyAutoActivationPolicy Blocked
  • Bu işlemin ardından aşağıdaki komut ile sunucu üzerindeki tüm aktif veritabanlarının taşındığını doğruluyoruz. Bu komutun çıktısı boş gelmeli, eğer db’ler listeleniyorsa hala mount durumda db var demektedir. Liste boş gelene kadar bekleyin.
Get-MailboxDatabaseCopyStatus -Server cp2 | Where{$_.Status -eq “Mounted”}
  • Bu işlemlerin arıdan kuyrukta bekleyen posta var mı kontrol ediyoruz.
Get-Queue
  • Son olarak Exchange Sunucuyu bakım modula alıyoruz.
Set-ServerComponentState cp2 -Component ServerWideOffline -State Inactive -Requester Maintenance

Son kontroller

Bu işlemlerin sonunda sunucu artık CU update için hazır hale geliyor. Yalnız CU update öncesi son olarak aşağıdaki adımları kontrol edin ve doğrulayın.

  • Mail trafiği devam ediyor mu ?
  • Aktif sunucu üzerinde tüm DB’ler mount durumda mı ?

Exchange Sunucu bakım moduna girmiş mi ?

Bu komutu girdiğinde görmeniz gereken çıktı aşağıdaki gibi olmalıdır.

Get-ServerComponentState cp2 | Format-Table Component, State

Ever artık hazırız. CU12 ISO’muz mount durumda ve cmd komut istemini admin modda açıyoruz ve CU12 ISO’un mount olmuş sürücü harfine giriyorum.

Aşağıdaki komut ile update işlemini başlatıyorum.

Setup.exe /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF /Mode:Upgrade

İşlem başarı bir şekilde tamamlandı ve sunucuyu reboot ediyoruz.

Exchange Server CU12 update işlemi başarı ile tamamlandı,şimdi istemi yeniden devreye alacağız.

Yeniden Exchange konsolumuz admin modda açarak aşağıdaki komutları sırayla giriyoruz.

  • Sunucumuzu bakım modundan çıkarıyoruz
Set-ServerComponentState cp2 -Component ServerWideOffline -State Active -Requester Maintenance
  • Cluster modunu aktif hale getiriyoruz. DAG içinde sunucu aktif oluyor
Resume-ClusterNode -Name cp2
  • Database aktivasyon modumuzu eksi haline getiriyoruz. İlk başta not almıştık.
Set-MailboxServer cp2 -DatabaseCopyAutoActivationPolicy Unrestricted
  • Aşağıdaki komut ile sunucu üzerine yeniden aktif db’ler olabilecek.
Set-MailboxServer cp2 -DatabaseCopyActivationDisabledAndMoveNow $false
  • Sunucunun yeniden mail kabul etmesini sağlıyoruz.
Set-ServerComponentState cp2 -Component HubTransport -State Active -Requester Maintenance

Bu işlemlerden sonra Exchange Sunucumuz tekrar aktif hale geldi. Şimdi bunun kontrollerini sağlamamız gerekiyor.

  • İlk olarak tüm componentların aktif olduğunu doğrulayın. İki tanesinin inactive olması normal.
Get-ServerComponentState cp2 | Format-Table Component, State
  • Cluster durumunu kontrol edin.
Get-ClusterNode cp2
  • Servisleri kontrol edin
Test-ServiceHealth cp2
  • MAPI test
Test-MAPIConnectivity -Server cp2
  • Replikasyon test
Test-ReplicationHealth -Server cp2
  • DAG database kopya durumu
Get-MailboxDatabaseCopyStatus -Server cp2 | Sort Name | Select Name, Status, Contentindexstate
  • Sürüm kontrolü

Görmeniz gerek çıktı “Version 15.2 (Build 1118.7)”

Get-ExchangeServer | ft  AdminDisplayVersion

Microsoft tarafından sağlanan script’i kullanarak DAG içerisindeki sunucular arasında mailbox database dağılımını sağlayın. Bı işlem mailbox database’lerinin sunucular arasında dağıtılmasını sağlayacaktır.

cd $exscripts

.\RedistributeActiveDatabases.ps1 -DagName DAG İSMİ -BalanceDbsByActivationPreference

Son olarak;

  • Load Balancer ayarlarını kontrol edip sunucunun aktif olduğunu doğrulayın yada DNS ayarlarını eski haline getirin.
    Mail alışverisini doğrulayın.
  • Admin panel’e sunucu ip’i ile giriş yapıp çalıştığını doğrulayın.

Tüm işlemleri diğer sunucu içinde yapın ve güncelleme işlemini tamamlayın.

Kullanılan komutların toplu listesi

  • Exchange Sunucuyu bakım moduna almak
Set-ServerComponentState -identity cp2 -Component HubTransport -State Draining -Requester Maintenance

Redirect-Message -Server cp2 -Target cp1.domain.com

Suspend-ClusterNode cp2

Set-MailboxServer cp2 -DatabaseCopyActivationDisabledAndMoveNow $true

Get-MailboxServer cp2 | Select DatabaseCopyAutoActivationPolicy

Set-MailboxServer cp2 -DatabaseCopyAutoActivationPolicy Blocked

Get-MailboxDatabaseCopyStatus -Server cp2 | Where{$_.Status -eq “Mounted”}

Get-Queue

Set-ServerComponentState cp2 -Component ServerWideOffline -State Inactive -Requester Maintenance

  • Exchange Sunucuyu bakı modundan çıkarmak
Set-ServerComponentState cp2 -Component ServerWideOffline -State Active -Requester Maintenance

Resume-ClusterNode -Name cp2

Set-MailboxServer cp2 -DatabaseCopyAutoActivationPolicy Unrestricted

Set-MailboxServer cp2 -DatabaseCopyActivationDisabledAndMoveNow $false

Set-ServerComponentState cp2 -Component HubTransport -State Active -Requester Maintenance

Son sözler ve dikkat edilecek noktalar.

  • Komut satırını kesinlikle administrator yetkileri ile başlatın ve yüklemeleri bu modda yapın.
  • Load Balancer ayarlarını kontrol edin.
  • DB’lerin taşındığından ve kuyruğun boş olduğundan emin olun.
  • İşletim sisteminin güncellemelerinin tam olduğundan emin olun.
  • Güncelleme sonrası mail trafiğinin düzgün çalıştığından emin olun.
  • Güncellemeden önce Microsoft’un yayınladığı yönergeleri dikkatlice okuyun.

Makaleyi burada bitirirken faydalı olmasını dilerim. Keyifli okumalar

İlgili Makaleler

6 Yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Başa dön tuşu

Reklam Engelleyici Algılandı

ÇözümPark Bilişim Portalı gönüllü bir organizasyon olup tek gelir kaynağı reklamlardır. Bu nedenle siteyi gezerken lütfen reklam engelleme eklentinizi kapatın veya Çözümpark web sitesi için izin tanımı yapın. Anlayışınız için teşekkürler.