Exchange Veritabanı Günlükleri Nasıl Temizlenir (Circular logging) konu başlığı ile hazırlamış olduğumuz video çalışmamız da Exchange Server üzerinde bulunan ve son iki gün içinde oluşan büyük işlem olay günlüklerinin nasıl temizleneceğini sizlere aktarmıştık.

Vlog sayfamız da hazırlamış olduğumuz çalışmalar da kısa ve öz olmasına özen gösteriyoruz. Fakat, Exchange Server Database üzerinde oluşan işlem olay günlüklerinin temizlenmesi kritik bir konu ve hemen-hemen her Exchange Server yöneticisinin düzenli aralıklarla ihtiyaç duymuş olduğu ve yapmış olduğu bir işlem. Bu sebepten ötürü, kısa hazırlamış olduğumuz videoyu bu teknik çalışma ile taçlandırmak ve video içinde kullanmış olduğumuz powershell araçlarını bu makale ile sizlere paylaşmak istedik.

Exchange Server Database Circular log Size

Exchange Server Database Circular log Size

Bu makalemiz de temizleme işlemini yapacak olduğumuz Exchange server veri tabanı Database 40 ve bu veri tabanı ortalama 218,657 Adet Circular log yani 218 GB boyutunda bir işlem olay günlüğüne sahip durumda.

Exchange Server Database Log Folder Path

Exchange Server Database Log Folder Path

Exchange Server üzerinde barınan Exchange Server Database (edb File) ve işlem olay günlükleri (circular loggin) barınmış olduğu dizinleri öğrenmek için aşağıda ki komutu kullanabilirz. Bu komut Exchange organizasyonu içinde bulunan bütün veri tabanlarının EDB file path dizini ve onların işlem olay günlük (circular loggin) dizinlerini sizlere gösterecektir.

Get-MailboxDatabase -Status | select edbfilepath,logfolderpath,admindisplayname | Format-list

Exchange Server Database Limit ve Default Database Önemi konu başlığı ile paylaşmış olduğumuz makalede Exchange Server Kurulumu ile birlikte oluşan veri tabanlarının nasıl yer değiştirileceğini sizlere paylaşmıştık. Bu makaleyi inceleyerek Exchange Server veri tabanı dizinlerini (Exchange Edb File ve circular loggin) yer değiştirebilirsiniz.

Get-MailboxDatabase -Status

Get-MailboxDatabase -Status

Exchange Server Database üzerinde düzenli yedekleme işlemleri yapılmakta ve oluşan Circular log verileri yedekleme görevinden sonra düzenli olarak silinmekte. Fakat, Paylaşmış olduğum resimde ve bu makalede anlatmış olduğumuz Exchange Server Database ve Circular logging Temizleme işleminin el ile yapılma nedeni özel bir durum.

Exchange Online Migration projesi kapsamında yüksek boyuta sahip posta kutuları için Mailbox Move Request işlemini başlattığımız için yedekleme görevlerini askıya aldık.

Bu sebepten ötürü son iki gün içinde Exchange Database üzerinde oluşan Circular log boyutu çok fazla. Exchange Server Database üzerinde son alınan sağlıklı yedek zamanını görebilmek için de aşağıda ki komutu kullanabilirsiniz.

Get-MailboxDatabase -Status | ft name,last* -auto

Exchange Server Circular Logging Disabled

Exchange Server Circular Logging Disabled

Exchange server veri tabanları üzerinde Circular Logging özelliğini aktif duruma getirdiğim veri tabanlarını TRUE olarak görebilmektesiniz. Bu makalede anlatmış olduğum ve Circular Logging günlüklerini temizleyecek olduğum Exchange Veri tabanı Database40

Get-MailboxDatabase | select name, circularloggingenabled | sort circularloggingenabled -desc | ft -AutoSize

Circular logging Enable

Circular logging Enable

Exchange Server veri tabanı Database 40 üzerinde işlem yapacağız. Exchange Control Panel üzerinde Server \ Database \ işlem yapacak olduğumuz veri tabanını seçiyoruz. Veri tabanı üzerinde Maintaince bölümüne gelip Enable Circular Logging kutusunu işaretliyoruz.

Bu özellik varsayılan değerde kapalıdır ve şimdi açmış olduğumuz gibi açılması önerilmez. Exchange Online Migration (Office 365 ‘den Exchange Server Onpreimise) projesi yapılıyorsa yada Exchange server Upgrade Projesi (Exchange Server 2013 / 2016 ‘dan Exchange Server 2019) yapılmaktaysa yada büyümekte olan bir veri tabanı içinde ki bir yada daha fazla kullanıcıyı bir Exchange server Database ‘sinden bir diğerine taşıma yapıyorsanız, önerecek olduğumuz geçici bir çözümdür.

Circular logging Enable Powershell

Circular logging Enable Powershell

Exchange Server veri tabanı üzerinde Circular Logging Enabled etme işlemini Exchange Control Panel üzerinden yapabildiğimiz gibi aşağıda paylaşmış olduğum Exchange Management Shell aracıyla da aynı işlemi yapabilirsiniz.

Set-MailboxDatabase Database40 -CircularLoggingEnabled $True

$false parametresi Circular Logging özelliğini kapatmakta $True parametresi ise açmaktadır.

Exchange Server Circular Logging Enabled

Exchange Server Circular Logging Enabled

Exchange Server Organizasyonu içinde Circular Logging özelliğinin kullanılması önerilmez ve mevcut yapıda da  Exchange Server veri tabanları üzerinde Circular Logging özelliği kapalı durumdaydı.

Exchange server organizasyonu için de Circular Logging özelliğinin açık yada kapalı olduğunu aşağıda paylaşmış olduğum komut ile öğrenebilirsiniz. Yukarıda paylaşmış olduğum ekranda görüldüğü gibi mevcut Exchange organizasyonu içinde Circular Logging özelliği Exchange server veri tabanları üzerinde kapalı durumda.

Get-MailboxDatabase | where {$_.CircularLoggingEnabled -eq $true}

Exchange Server Database disMount

Exchange Server Database disMount

Exchange Server Database 40 üzerinde işlem olay günlüklerinin temizlenmesi için Exchange Veri tabanını geçici olarak dismount etmemiz gerekmektedir.

Bu komut Database 40 veri tabanı içinde bulunan bütün posta kutularının erişimini kesecektir. İşlemleri biraz hızlı yapmamız yada uygun bir zaman diliminde yapılması gerekmektedir.

Dismount-Database “Database27 Dismount-Database “Database40

Exchange Server organizasyonunda bir veri tabanını dismount duruma getirmek için yukarıda ki komutu kullanabilirsiniz.

Microsoft Exchange Services

Microsoft Exchange Services

işlem olay günlüklerini (Circular Logging) temizleyecek olduğumuz veri tabanı dismount durumdayken veri tabanının bulunmuş olduğu Exchange Server üzerinde Microsoft Exchange Information Store servisini durdurup sonrasında tekrar çalıştırmamız gerekmektedir.

Bu işlem Exchange server üzerinde bulunan bütün posta kutularının erişimini kesecektir ve Servisi hızlı bir şekilde başlatmalıyız. Yeniden başlatma işlemini önermiyorum ki hatalara gebe bir işlemdir ve bunun için stop ve start komutlarını kullanmanızı öneriyorum.

Get-Service | Where {$_.DisplayName -Like “*Exchange*”} | Where {$_.DisplayName -NotLike “*Hyper-V*”} | Format-Table DisplayName, Name, Status

net stop MSExchangeIS

net start MSExchangeIS

Exchange Server veri tabanının barınmış olduğu exchange server üzerinde çalıştıracak olduğunuz komutlar yukarıda paylaşılmıştır.

Exchange Information Store Services tekrardan çalıştıktan sonra dismount duruma getirmiş olduğumuz Exchange Server Database 40 isimli veri tabanını tekrar mount duruma getirmeliyiz. Veri tabanını tekrar mount ettikten sonra içinde bulunan posta kutuları tekrardan erişilebilir duruma gelecektir.

Mount-Database “Database27 Dismount-Database “Database40

Yukarıda ki komut ile dismount duruma getirmiş olduğunuz Exchange Server veri tabanı nı tekrardan mount edebilirsiniz.

Exchange Server Database Circular Log

Exchange Server Database Circular Log

Exchange server veri tabanı tekrar mount olduktan sonra Exchange Veri tabanı ‘nın sahip olduğu işlem olay günlükleri yani circular loggin verileri hızlı bir şekilde temizlenecektir. Exchange Veri tabanı üzerinde işlem olay günlüklerini temizledikten sonra Circular Logging özelliğini tekrar kapatmayı unutmayalım.

Set-MailboxDatabase Database40 -CircularLoggingEnabled $True

Circular Logging özelliği tekrar kapatıldıktan sonra Exchange Server Organizasyonu nun bu değişikliği öğrenebilmesi için veri tabanının tekrardan dismount edilmesi Microsoft Exchange Information Store servisinin tekrar başlatılması ve sonrasında veri tabanının tekrardan mount edilmesi gibi geri bir süreç bizleri beklemektedir.