Kullanmakta olduğumuz Exchange Server her zaman sorunsuz bir şekilde çalışmaya  devam etmeyebilir. Olası kötü durumlara karşı kendimizi hazırlamamız gerekmektedir. İyi bir sistemci olarak her zaman düzenli yedeklerimizi alsak ta bazı sorunlar yedek ile çözümlenemez. Servisin yavaşlaması ,gönderilen maillerin kuyrukta beklemesi , mail alma ve gönderme işleminin çok geç gerçekleşmesi , istemci mail alma programlarında ki tutarsızlık , servislerin çok fazla kaynak tüketmesi gibi durumlar bize Exchange Server’ın sorun çıkarmak üzere olduğunu ve bunun için yedekten fazlasını yapmamız gerektiğini göstermektedir . Bu tarz bir durumda Eseutil ile müdehale etmemiz gerekebilir. ESEUTIL komut seti, Exchange Server yüklemesi ile beraber gelmektedir. Bu komut setini iyi derecede kullanabilmek için öncelikle Exchange Server ın veri dosyalarını nerede ve ne şekilde sakladığını bilmek gerekmektedir. Şayet siz Exchange Database Path’ ini değiştirmediyseniz, Exchange Server 2013 standart olarak veri dosyalarını aşağıdaki dizine kurulmaktadır.

“C:\Program Files\Microsoft\Exchange Server\V15\Mailbox”



Dizin içerisinde aşağıda ki dosyalar mevcuttur.



EDB: Exchange Server 2013 üzerinde bir depolama birimine ait veri tabanı dosyalarıdır. Bu depolama birimi üzerindeki mailler ve bunlara ait olan ekler bu iki veri tabanı dosyasında tutulmaktadır. MAPI client eğer Exchange Server üzerinden bir mail almak isterse bu bilgi ona “edb” veri tabanından verilirken, internet tabanlı bir protokol ile Exchange Server dan mail alan istemci “ stm ( Streaming) “ dosyasından bilgi almaktadır. “Edb” dosyasında maillere ait başlıklar, maillerin metinleri ve ekleri bulunmaktadır.

E01: Bu dosyalar Exchange Server ın “Transaction Log” dosyalarıdır. Her depolama grubu için oluşturulan bu log dosyaları yeni açılan her depolama biriminde numarası bir artarak oluşturulur; A0, A1, A2 vb. Bu dosyaların kullanım amacı ise Exchange Server ın hızlı çalışmasını sağlamaktır. Exchange üzerinde yapılan mail gönderimi ve mail düzenleme gibi işlemler direk olarak veritabanına yazılmaz, bu değişiklikler bilgisayarınızın fiziksel RAM i ile log dosyalarında tutulur. Bu durum Exchange server’ in performanslı çalışmasını sağlar.

E01.chk: Chk dosyası kontrol dosyası olarak görev yapmaktadır . Bildiğimiz üzere işlemler öncelikle RAM ve log dosyaları üzerine yazılmaktadır . Kontrol dosyası da verilerin veri tabanı üzerine kayıt edilmesini kontrol etmektir.

ESEUTIL komut satırı parametreleri :

PowerShell üzerinde Esentutl.exe /? veya eseutil.exe  /? Komutu ile parametre kodlarını görebilirsiniz.
Detay:
http://support.microsoft.com/kb/182903/tr



Eseutil parametrelerinin bazılarının açıklamaları:

Defragmentation /D : Exchange Database’ i offline olarak Defragment eder. Indexler oluşturup, boş kısımları siler. Database boyutunu ufaltır.

Repair /P                   : Corrupt dosyaları es geçerek, çevrim dışı Database’ i onarır. Onarılmış Database ve Public Folderları Isinteg.exe tool’u ile kontrol eder ve onarır.

Integrrity /G              : Database güvenilirliğini doğrular. Uygulama katmanında bu işlemi yapmaz. Isinteg.exe aracı ile bu işlemi yapabilirsiniz.

Detay: http://technet.microsoft.com/en-us/library/aa998249%28EXCHG.80%29.aspx

Büyük yapılarda oldukça yoğun çalışan  Exchange Server ın zamanla veritabanı şişecek ve çok fazla yer kaplamaya başlayacaktır. Bu durum Exchange server’ in Database boyutunu yükseltip, Backup dosyalarının da boyutunu yükseltecektir. Exchange Server üzerinde Günlük bakım işlemleri ile beraber online bir defrag yapılmaktadır. Fakat, bu işlem yeterli olmamaktadır . ESEUTIL ile yapacağımız defrag ise offline Database’ in yapısını inceler ve Database tabanı üzerinde ; tarama , okuma , onarım ve birleştirme yapar. Bu işlem Online defrag’ tan çok daha etkilidir.

Exchange 2013 üzerinde databese properties’ e girdikten sonra, Maintenance kısmında online defrag checkbox’ ı (Enable background database maintenance (24x7) Ese scanning) işaretli olmalıdır.


Bilgilendirme :

Offline defrag yapmak için diskinizin veritabanını barındıran bölümünde veritabanı boyutunun %110 u kadar bir boş alan olmak zorundadır .

Defrag İşlemleri:

Aşağıda ki komut yardımıyla database’ lerin boyutlarını görebiliriz.

Get-MailboxDatabase -Status | Sort-Object DatabaseSize -Descending | Format-Table Name, DatabaseSize, AvailableNewMailboxSpace



Database’ i dismount etmemiz gerekiyor. (ECP Konsole üzerinden de yapabilirsiniz)

PowerShell komutumuz: Dismount-Database DAG2-MBX2 (Y yazıp enter’a basıyoruz).







eseutil.exe /d <database name> komutu ile işlemi başlatıyoruz.

eseutil.exe /d  “C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\DAG2-MBX2\DAG2-MBX2.edb”

Defrag işlemimiz başladı.


İşlem başarılı bir şekilde tamamlandı.


Defrag işlemi sırasında veya sonrası olası sorunlara karşılık Database bir kopyasını almak için aşağıda ki komutu kullanabiliriz. 

eseutil.exe /d  “C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\DAG2-MBX2\DAG2-MBX2.edb”/b c:\MsExchangeTR_DB



Database kopyası başarılı bir şekilde alındı.


Eğer Database’ in bulunduğu dizinde yer yoksa, aşağıda ki komutla farklı bir path’ e DB yedeğini alabilirsiniz. Usb disk, farklı bir partation, veya network map olabilir. Parametremiz (/t)

eseutil /d “C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\DAG2-MBX2\DAG2-MBX2.edb”/t d:\MsExchangeTR.edb

İşlemler sonrası Database’ i mount ediyoruz. (Ecp konsol üzerinden yapabilirsiniz).

Mount-Database DAG2-MBX2



Yukarıda ki işlemler sonunda Exchange Database’ i offline defrag yaptık. Peki, olası bir sorun sonrası, restore ettiğimiz database çalışmıyor. Bu durumda ne yapmalıyız?

Restore ettiğimiz database’ i Mount etmeden önce, durumunu “Clean Shutdown” a getirmeniz gerekmektedir. Bu duruma soft recovery diyoruz. Soft Recovery: Yedekten döndüğünüz database in “dirty shutdown” durumda olup, olmadığını kontrol etmemiz için eseutil /mh komutunu kullanabiliriz.

Komutumuz:

Eseutil.exe /mh “C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\DAG2-MBX2\DAG2-MBX2.edb”

Komut sonrası Database Dirty Shutdown ise aşağıda ki komutu kullanarak Clean Shotdown’ a getirebiliriz. Exchange 2013’ de log dosyası E01’ dir.

Eseutil /r “E01” /l “C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\DAG2-MBX2\DAG2-MBX2.edb” /d “C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\DAG2-MBX2\DAG2-MBX2.edb”



Tekrar aşağıda ki komutu çalıştırıyoruz.

Eseutil.exe /mh “C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\DAG2-MBX2\DAG2-MBX2.edb”



Yukarıda ki işlemden sonra database sorunsuz bir şekilde Mount edebiliriz. Ancak, Windows Backup veya 3 party bir programla Exchange Database’ in backup’ ını restore ettik veya Database ciddi zarara uğramış şekilde! Bu durumda yukarıda belirttiğim adımlardan sonra halen mount olmuyarsa son çare olarak “Hard Repair” (eseutil.exe /p) adımlarını kullanmamız gerekebilir.

Hard Repair Adımları:

PowerShell komutumuz:

eseutil.exe /p  “C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\DAG2-MBX2\DAG2-MBX2.edb”

Eğer diskte yer yoksa, Usb disk, farklı bir partation, veya network map olabilir.

eseutil /p “C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\DAG2-MBX2\DAG2-MBX2.edb”/t d:\MsExchangeTR.edb

Database üzerindeki bilgilerin kaybolabileceğinden dolayı bize bu işlemi gerçekleştirip isteyip, istemediğinize dair bir uyarı getiriyor. “Ok” diyerek işlemi başlatıyoruz.



Hard Repair işlemi başladı.




Hard Repair işlemi bitti.


İşlem süresi Database’in boyutuna, bozuk dataların düzeltilmesine bağlı olarak değişkenlik gösterecektir. Repair adımının tamamlanması sonrası tekrar eseutil /mh komutu ile Database in shut down  durumu kontrol etmemizde yarar var.

Eseutil.exe /mh “C:\Program Files\Microsoft\Exchange Server\V15\Mailbox\DAG2-MBX2\DAG2-MBX2.edb”


Clean Shutdown olarak görüyoruz. Sorunsuz olarak Database’ mizi mount edebiliriz.

Mount-Database DAG2-MBX2


Exchange Server’ ın çökmesi oldukça sıkıntılı bir süreçtir. Önerim, DAG yapısı ile birlikte, 3 party yazılımlar ile hem database hemde document level bazında yedekliliktir.

http://technet.microsoft.com/en-us/library/aa998074%28v=exchg.65%29.aspx