Exchange 2010 Database Repair İşlemi (Unable to mount database)

Merhabalar;

Bugün Exchange 2010 desteği verdiğim firmalardan bir tanesi şirkette yaşanan elektrik problemi sebebiyle sunucunun sabah kapandığını; tekrar açıldığında ise bazı kişilerin maillerini alamadığını bazılarının ise sorunsuzca mail alıp gönderdiklerini belirtti.

Böyle bir durumda sorunun kullanıcı tarafında da olabileceği ve muhtemelende basit bir şey olduğunu tahmin ediyordum. OWA dan maillerine erişmelerini istediğimde bu kullanıcıların OWA danda maillerine erişim yapamadıklarını gözlemledik.

Durum karşısında öncelikli olarak maillerine erişen kullanıcılar ile erişemiyen kullanıcıların departmanlarında farklıklar olduğunu gözlemledim. Mailbox Databaselerimin bazıları Departmanlara göre oluşturulmuştu, maillerine erişim yapamayan kişiler Muhasebe departmanında ve farklı bir Mailbox Databasei kullanıyorlardı. Gerekli kontroller yapıldıktan sonra bu Departmana ait Database’in yapısının bozulduğunu tespit ettim. Bu makalede de böyle bir durum karşısında yapılacak işlemleri anlatıyor olacağız.

Sorun : Bazı Exchange kullanıcılarının Mailboxlarına Erişememeleri ve Unmounted Olan Database’in Tekrardan Mount Edilememesi

Sorunun kullanıcılara ait Mailbox Database lerine erişimle ilgili olduğu tespit edilmiştir. Bu sebepten dolayı öncelikle Exchange Management Shell den şu komutu verip database durumlarını kontrol ediyoruz.

[php]Get-MailboxDatabase -Status | select Name, server, storagegroup, mounted[/php]

Sorunlu olan Database Mounted kısmında durumu False olarak gözükecektir.

İlk işlem olarak Database’i normal bir şekilde Mount etmeyi denemekte fayda var. İlk işlem olarak Database’i Mount etmeyi dniyoruz.

[php]Mount-Database -Identity ‘Mounted Edilecek Exchange Database Adı'[/php]

Database yapımız bozuk olduğu için işlem sırasında hata alacağız. Eğer hata almaz iseniz şanslısınızdır ve makalenin geri kalanıyla bir işiniz yok demektir.

Aynı işlemi Exchange Management Console üzerinden de yapabiliriz. İlgili işlem için

Organization Configuration – Mailbox alnına geliyor ve Database Management kısmından Dismounted olan Databasee geliyor sağ tıklıyoruz ve Mounted Database diyoruz. İşlem hata ile sonuçlanacak ve altta görüldüğü gibi bir hata verecektir.

DatabaseMount

Hata Mesajı :

--------------------------------------------------------
Microsoft Exchange Error
--------------------------------------------------------
Failed to mount database ' Mailbox Database 11012013'.

Mailbox Database 11012013
Failed
Error:
Couldn't mount the database that you specified. Specified database: Mailbox Database 11012013; Error code: An Active Manager operation failed. Error The database action failed. Error: Operation failed with message: MapiExceptionJetErrorPageNotInitialized: Unable to mount database. (hr=0x80004005, ec=-1019)
. [Database: Mailbox Database 11012013, Server: INTEXCHSRV.domain.intra].

An Active Manager operation failed. Error The database action failed. Error: Operation failed with message: MapiExceptionJetErrorPageNotInitialized: Unable to mount database. (hr=0x80004005, ec=-1019)
. [Database: Mailbox Database 11012013, Server: INTEXCHSRV.domain.intra]

An Active Manager operation failed. Error Operation failed with message: MapiExceptionJetErrorPageNotInitialized: Unable to mount database. (hr=0x80004005, ec=-1019)
. [Server: INTEXCHSRV.domain.intra]

MapiExceptionJetErrorPageNotInitialized: Unable to mount database. (hr=0x80004005, ec=-1019)

--------------------------------------------------------
OK
--------------------------------------------------------

Bu hata genelde Exchange sunucunun kontrolsüz kapanmalarından kaynaklanan Exchange Mailbox Databaselerinin bozulması sebebiyle alınan bir hatadır.

Sorunun giderilmesi için Exchange Mailbox Dataselerini Repair edeceğiz. İşlemleri Exchange Management Shell üzerinden yapıyor olacağız.

Mevcut sorunumuzdan emin olmak adına öncelikle Dismounted olan Database’i bir check edelim.

[php]eseutil /mh “C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Mailbox Database 0869940268\Mailbox Database 0869940268.edb”[/php]

Komutun çıktısında State: Dirty Shutdown ibaresine denk gelmiş isek Database’in yapısının bozlduğunu ve Repair edilmesi gerektiğini anlamamız gerekmektedir.

Şimdi adım adım Database Repair işlemini başlatalım.

Tüm işlemleri Exchange Management Shell Üzerinden yapıyor olacağım. Bu işlemleri Exchange Management Console üzerinden istesekte yapamamaktayız.

Önemli Hatırlatma : Bu ve benzeri tüm işlemlerde gerekli aksiyonları uygulamaya almadan önce mutlaka bir yedek alınız. Bunu alışkanlık haline getirmeye özen gösteriniz. İşlem öncesinden Hyper-V 3.0 üzerinde yer alan sunucum için Snapshoot aldım ben.

1. Adım) Hasarlı Veritabanı İçin Repair İşlemi Başlatma

Exchange Management Shell i başlatıyoruz ve Repair edilecek Database için şu komutu veriyoruz.

[php]eseutil /r “E00” /l ‘C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Mailbox Database 0869940268’ /d ‘C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Mailbox Database 0869940268/Mailbox Database 0869940268.edb'[/php]

exchdbrepair

Not 1 : Kullanılan komut eseutil /r /l /d komutudur. Komutun parametlerini Repair edilecek Database, Database veri yolu ve Veriyolunda bulunan log dosyalarınızın ön ekine göre düzenlemeniz gerekmektedir. Benim dizinimdeki log dosyalarının adı E00 ile başlamaktadır.

Not 2 : Database için Hard Repair işlemi yapmanız gereken bir durum olur ise aşağıdaki komutu kullanmanız gerekmektedir. Bu daha hızlı bir recovery işlemi gerçekleştirecektir.

[php]eseutil /p “C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Mailbox Database 0869940268\Mailbox Database 0869940268.edb”[/php]

Uyarı : Hard Repair işleminde mail kaybetme riskiniz bulunmaktadır. Mecbur kalmadıkça Hard Repair işlemi gerçekleştirmeyiniz.

İşlem sonrasında tekrardan Exchange Mailbox Databselerini check edelim.

[php]eseutil /mh “C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Mailbox Database 0869940268\Mailbox Database 0869940268.edb”[/php]

State: Dirty Shutdown durumunun artık State: Clean Shutdown olarak değişmiş olması gerkiyor. İşlemden sonra Database’i tekrar Mount etmeyi deniyoruz. İşlem öncesinde gerekirse sunucuyu kontrollü bir şekilde Reboot etmeniz gerekiyor olabilir.

2. Adım) Repair Edilen Database’i Sisteme Tekrardan Mount Etme

Mount etme işlemini Exchange Managemend Shell üzerinden yapıyoruz. İstenilirse Exchange Management Console üzerinden de bu işlem yapılabilir.

İlgili Database’i Mount etmek için konsola şu komutu veriyoruz.

[code]>Mount-Database -Identity ‘Mailbox Database 0869940268′[/code]

İşlem sonrasında artık Database’i Exchange e mount etmiş olmamız gerekiyor. Artık bu Database’i kullanan kullanıcıların mailleri erişiminde bir sorun kalmaması gerekiyor.

Database imi ben Hard Recovery ile Repair ettim. Makalede ise Lab ortamındaki sunucumuzu kullandım. Hard Repair etmek zorunda kaldığım Database’de sadece bir kullanıcıda yaklaşık 8 tane mail kaybı yaşandı. O mailleri Outlook üzerinden tekardan Exchange Databaseine dahil ettim. Dolaysıyla bir veri kaybımız olmadı.

Repair işlemi gören bu Databasedeki posta kutularını ise yeni oluşturduğum bir Database’e aktardım. İşlemlerden sonra mutlaka Windows Backup ile Exchange için full backup almanızı öneririz. Ve zaten eğer elinizde var ise en güncel yedeğe geri dönmek daha mantıklı bir işlem olabilir.

Böyle bir durumla karşılaşmamanız dileğiyle.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.