You are here: Home » Exchange 2010 » Exchange 2010 Mailbox Kurtarma

Exchange 2010 Mailbox Kurtarma

08 Şubat 2012 | Leave a comment(1) Go to comments

Ortamınızda Exchange 2010 varsa ve mailbox databaselerinin yedeğini alıyorsanız eninde sonunda bir gün mailboxların eski hallerine dönmek zorunda kalacaksınızdır. Örneğin Contacts’larını kaybetmiş ya da yanlışlıkla silmiş üst düzey bir yönetici için bu silinen contacts’ların değeri şirket için son derece değerli ve kritik olabilir. Exchange 2010 Single mailbox backup alan bir çözümünz yoksa tek seçenek yedeğini aldığınız mailbox database’yi restore ederek sisteminize Restore Mailbox olarak mount etmek ve mailboxı yedeği aldığınız tarihe geri döndürmek olacaktır. Bu işlemi canlı sistemde yapmak riskli olacağından test otamında yapmak en mantıklı ve doğru seçim olacaktır.

Kısaca yapacağımız işlemler, yedeği alınmış bir mailbox veritabanını yedekten dönerek Exchange ve AD kurduğumuz bir test ortamında sisteme mount ederek ilgili kişinin mailboxunu yeni oluşturulan test sisteminde oluşturulan yeni kullanıcının mailboxuna restore edilmesi ve bu restore edilmiş mailboxun pst dosyasına aktarılması olarak özetlenebilir.

 

Bu durumda,  aşağıdaki maddelere dikkat etmeniz durumunda restore işlemini test ortamınızda sorunsuz şekilde tamamlayabilirsiniz.

 

1 – Windows 2008 64 Bit R2 İşletim Sistemi kurulmuş bir sunucu

(Ben HyperV üzerinde bir sanal makinayı tercih ettim. )

2 – Active Directory rolü yapılandırması(Eğer bu makina aynı network ortamında olacaksa kesinlikle domain adını ortamınızdakinden farklı seçmelisiniz.)

3 – “Exchange 2010 with SP1” kurulumu tamamlanmış bir sunucu. (Standart kurulum – Mailbox,Hub Transport,Client Access Rolleri)

(AD ile aynı sunucuyu kullanabilirsiniz fakat bunun için kurulum esnasında Apply Active Directory Split Permissions Security Model kutucugunu işaretlememelisiniz. Aynı zamanda şu hotfixlere ihtiyacınız olacak : Windows6.1-KB979744-v2-x64, Windows6.1-KB982867-v2-x64, Windows6.1-KB983440-x64.  Daha fazla bilgiyi kurulum esnasında alabilirsiniz)

Bu aşamada Exchange ilk kurulduğunda sanal makina kullanıyorsanız snapshot almanız faydalı olacaktır.

4 – Yedeğini aldığınız mailbox veritabanını restore ederek bu sanal makina üzerine kopyalamalısınız. Bu aşamada dikkat etmeniz gereken konu, sanal makina üzerinde storage alanı olarak kullandığınız hdd’nin üzerindeki boş alanın, mailbox database’nin boyutunun en az 2 katı kadar olması gerektiğidir. Ayrıca yedeğiniz sadece .edb dosyasını değil ilgili veritabanının log dosyalarını da içermelidir.

(Benim kullandığım dizinler Mailbox Dizini: c:\mailbox\rdb.edb,Log Dizini : c:\mailbox\logs  )

5 – Yeni test sunucumuz üzerine kopyaladığımız mailbox veritabanını Restore Db olarak sisteme tanıtalım.

Bunun için aşağıdaki komutu kullanarak veritabanını sisteme restore db olarak tanıtabiliriz.

 New-MailboxDatabase -Recovery -Name RDB
-Server [Exchange sunucunuzun adı : ornek EXCHSRV]
-EdbFilePath "[Mailbox DB Pathi : ornek c:\mailbox\rdb.rdb]"
-LogFolderPath "Mailbox DB'nin loglarının pathi : ornek c:\mailbox\logs"

Hata ile karşılaşmadıysanız Exchange Management Console -> Organization Configuration -> Mailbox altında RDB adında dismount edilmiş şekilde yeni bir mailbox database görüyor olmalısınız. (Görmüyorsanız bu ekranı refresh yapmak işe yarayacaktır.)

 

 

 

 

 

 

6 – Şimdi gelelim bu RDB’nin dismount konumdan mount konuma getirilmesine. Bu durumdayken monut etmek istediğinizde hata ile karşılaşacaksınız. Sebebi DB’nin “Dirty Shutdown” olarak işaretlenmiş olması ve yeni kurduğumuz AD üzerinde LegacyDN değerinin canlı sistemdeki LegacyDN değeri ile aynı olmaması.

Öcelikle RDB’mizi “Clean Shutdown” konumuna getirelim.

RDB’nin clean ya da dirty olup olmadğını şu komut ile kontrol edebilirsiniz

eseutil /mh [Mailbox DB'sinin pathi] - ornek : eseutil.exe c:\mailbox\rdb.edb]

 

 

Dirty Shutddown konumundaki bir DB’yi aşağıdaki komut ile Clean Shutdown konumuna getirebilirsiniz

eseutil.exe /r [log adı on eki]
 /l [log pathi]
 /d [DB pathi]
 ornek : eseutil.exe /r "E00"
/l "C:\2011-12-23-20\G\VIPP"
/d "C:\2011-12-23-20\K\VIP\vip.edb"

 

 

 

 

 

 

 

 

Eğer eseutil /r /l /d komutu işe yaramadıysa daha uzun süren ve repair edemediği yerleri silerek işleme devam edebilen bir parametre olan /p parametresi kullanılabilir.

eseutil.exe /p [Mailbox Database Pathi] – ornek eseutil.exe /p “C:\2011-12-23-20\K\VIP\vip.edb”

Bu durumda yukarıdaki işlem bittiğinde Databasenin durumunu kontrol ettiğinizde “Clean Shutdown” durumuna geldiğini görmelisiniz.

 

 

 

Bu durumdayken de sisteme Db’yi mount etmeye çalıştığımızda hata verecektir. Bu hatayı gidermenin yolu adsi.edit ile Exchange için kullanılan legacydn değerini var olan canlı sistemde kullandığınız değer ile değiştirmekle çözülecektir.

Çalıştır’a “adsi” yazın ve adsi.edit programını bularak çalıştırın. Gelen ekranda Action -> Connect To yolunu izleyerek  Select a well known naming context olarak “Configuration” seçerek OK butonuna basın

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Gelen menude Default Naming Context -> CN=Configuration…. -> CN=Services -> CN=Microsoft Exchange altında “CN=First Organization” değerine sağ tıklayarak properties sayfasına gelin ve legacyexchangedn değerini bularak “Edit” butonuna basın ve buradaki değeri canlı sisteminizdeki aynı alandaki değer ile değiştirin. Değerin başında bulunan /o= değeri de mutlaka aynı şekilde yeni değerde de girilmelidir. Aynı şekilde yine “CN=First Organization” değerine sağ tıklayarak rename seçeneği ile bu değeri canlı sisteminizdeki değer ile güncelleyin.

 

Bu değer haricinde aslında sistemde değiştirmemiz gereken birkaç legacyexchangedn değeri daha var.

 

 

 

 

 

 

 

 

 

 

 

Bu değerler ; Cn=Configuration … -> CN=Services ->CN=Microsoft Exchange -> CN=Administrative Groups altında bulunan

1-CN=Databases->CN=RDB

2-CN=Servers->CN=[Server-Adı]

3-CN=Servers -> CN=[Server-Adı] ->CN=Microsoft MTA

4-CN=Servers->CN=[Server-Adı] -> CN=Microsoft System Attendant

Yukarı belirttiğim değerlerin properties ekranında bulunan legacyexchangedn değişkeni canlı sistemdeki değeri ile aynı olacak şekilde değiştirilmeli.

 

 

Bu değişiklikleri yaptıktan sonra mailbox databaseyi mount etmeyi denemeden önce sunucuyu restart ediyoruz.

 

Tüm bu değişikliklerden sonra artık RDB veritabanını sisteme mount edebiliyor olmalısınız. Exchange ilk kurulduğunda kurulumla  gelen mailbox restart sonrası dismount konumunda gelecektir çünkü legacyexchangedn değişkeninde yaptığımız değişiklik bu veritabanının mount olmamasına sebep oluyor. Bu durumda yeni bir vertabanı oluşturmalıyız ve bu oluşturduğumuz veritabanında yeni bir kullanıcı mailboxu oluşturmalıyız ki RDB üzerindeki verileri yeni oluşturduğumuz bu kullanıcının mailboxuna restore edebilelim.

 

 

 

7 – Exchange Management Console -> Organization Configuration -> Mailbox’a sağ tıklayarak New Mailbox Database seçeneği ile “test” adında yeni bir veritabanı oluşturalım ve oluşturduğumuz bu vertabanı üzerinde yeni bir kullanıcı tanımlayalım. Burada dikkat etmemiz gereken konu oluşturduğumuz kullanıcının yeni oluşturduğumuz “test” veritabanı üzerinde tanımlanıyor olması. Onun için yandaki resimdeki ekranda “Specify the mailbox database rather than using database automatically selected” seçeneğini işaretleyerek “test” veritabanını seçin.

 

 

Buraya kadar herşeyi doğru yaptıysanız sistemde test ve RDB adında 2 adet mount edilmiş mailbox database olmalı ve https://127.0.0.1/owa adresinden OWA2ya giriş yaptığınızda yeni oluşturdğunuz kullanıcının mailboxunu görebiliyor olmalısınız.

Artık RDB veritabanından restore işlemlerine başlayabiliriz.

 

 

 

 

8 – Öncelikle aşağıdaki komut ile RDB veritabanı içerisinde aradığınız kullanıcıların olup olmadığından emin olun.

Get-MailboxStatistics -database RDB

 

9 – Yeni oluşturduğunuz kullanıcının mailboxunu owa ile tekrar açın ve inbox içerisinde herhangi bir yere “YEDEK” adında bir folder oluşturun ve aşağıdaki komut ile RDB’de belirttiğiniz kullanıcının mailboxunu yeni kullanıcımızın mailboxuna restore edin. Benim örneğimde yeni açtığım kullanıcı “Exchange Yedekci” ve RDB veritabanından restore edeceğim mailbox kullanıcısı da Hakan Çakıroğlu. Burada dikkat etmeniz gereken konu, restore edeceğiniz kullanıcı parametresini, aşağıda vereceğim komutta  “Get-MailboxStatistics -database RDB” komutu ile gelen çıktıda DisplayName alanında görünen şekilde yazmanız gerektiğidir.

Aşağıdaki komut ile “Exchange Yedekci” kullanıcısının mailboxuna RDB veritabannından “Hakan Çakıroğlu” kullanıcısının tüm mailbox verilerini restore edelim. Baditemlimit parametresi kaç adet hata oluursa işlemin iptal edileceğini belirtmek için kullanılır. Eğer bu parametreyi belirtmeseydik oluşabilecek herhangi bir hatada restore işlemi iptal edilecekti.

 

Restore-Mailbox -Identity eyedekci
-RecoveryDatabase RDB -RecoveryMailbox "Hakan Çakıroğlu"
-TargetFolder YEDEK -BadItemLimit 100

10 – Evet artık restore ettiğimiz mailleri OWA’dan görebiliyor olmalısınız.

11 – Son olarak yeni açtığımız kullanıcı olan Exchange Yedekci kullanıcısının tüm mailbox içeriğini (inbox,sent items,contacts,calendar vs.) istediğiniz herhangi bir ortamda Outlook ile kullanabileceğiniz pst formatında export edelim.

Aşağıdaki komut ile Active Directory üzerindeki “Administrator”  kullanıcısına Mailbox Import Export yetkisi verelim.

New-ManagementRoleAssignment
 -Role "Mailbox Import Export"
-User DC\Administrator

 

 

Yukarıdaki komutu verdikten sonra Management Shell arabirimini kapatıp açmamız gerekiyor. Eğer kapayıp açmassak aşağıdaki komutu shell tanımayacaktır.

 

 

Aşağıdaki komut ile export request oluşturalım ve pst dosyasının oluşturulacağı yeri belirtelim. Burada dikkat etmeniz gereken konu pst’nin kaydedileceği yerin NTFS dosya sisteminde paylaşılmış bir dizin olması gerektiği ve “Exchange Trusted Subsystem” kullanıcısına bu sharing için Read-Write izinlerininverilmesi gerektiğidir.

New-MailboxExportRequest
-Mailbox eyedekci
-FilePath "\\192.168.1.100\Exports\hakan.pst"

Pst export işlemi mailbox boyutuna göre değişecektir. Devam eden işlemin durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz

Get-MailboxExportRequest | Get-MailboxExportRequestStatistics

 

 

 

 

Evet, herşey sorunsuz tamamlandıysa artık restore edilmiş mailboxunuz share ettiğiniz folderin içerisinde olmalı 🙂

Sonunda istediğiniz veriye ulaşabilmenin verdiği haz ile günün kahramanı olabilirsiniz 🙂

 

Umarım faydalı bir paylaşım olmuştur, yeni bir yazıda yeniden görüşmek dileğiyle…

 

Kaynaklar :

http://technet.microsoft.com/en-us/library/bb124612.aspx

http://www.stevieg.org/2010/07/using-the-exchange-2010-sp1-mailbox-export-features-for-mass-exports-to-pst/

http://technet.microsoft.com/en-us/library/bb125218.aspx 

http://social.technet.microsoft.com/Forums/tr-TR/exchangetr/thread/966c5b0d-c22d-4567-b584-4b0dba72a61c/

Filed under

Exchange 2010

| Tags:

  1. kadir öztürk

    mrb edb nin loglarını sildik sonra mount etme hatası yaşadık. eseutil /p yaptık clean shutdown fakat mount edemiyoruz ne yapmamız gerekli ?

Reply to kadir öztürk ¬
Cancel reply


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

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