1. 程式人生 > >Exchange的“資料庫可移植性”功能測試心得

Exchange的“資料庫可移植性”功能測試心得

                資料庫可移植性功能是Exchange2007 和 Exchange2010中特有的功能,它不支援Exchange2003,此功能僅對郵件資料庫有效,對公共資料夾資料庫無效。通過使用此功能可以減少Exchange災難恢復的時間,但是我在測試中也發現有些問題,也許是我測試方法不對。

                我的測試場景是:有兩臺郵箱伺服器(沒有設定DAG),兩臺伺服器中各有一個數據庫,假設其中一臺已經損壞了,無法繼續使用。但是資料庫檔案有備份 。 通常的恢復方法是:在找一臺新伺服器中進行Exchange災難恢復安裝,然後恢復備份資料庫。但這種方法顯然需要花費較長時間,因此可以移用資料庫可移植功能,大概方法如下:

 1,在另一臺正常使用的郵箱伺服器新建一個數據庫,在此資料庫的屬性中“維護”標籤裡,要選中“還原時可以覆蓋此資料庫”,此資料庫暫時不要載入

  2. 把損壞的伺服器的資料庫備份 檔案直接恢復到這一臺郵箱服務中新建的資料庫目錄裡,並修改名字(即覆蓋原先新建的資料庫)。然後在CMD中執行esecutiil /mh命令檢查恢復後的資料庫狀態。如果狀態是“dirty shutdown”,則要執行 eseutil /p 命令進行硬修復。使其狀態為“clear shutdown”。  然後在EMC中載入資料庫

 3. 接著在Exchange PS 中執行命令: get-mailbox -database test | where {$_.objectclass -Notmatch '<systemattendantmailbox | exoledbsystemmailbox) ' }  |  set-mailbox        -database  test_backup    (test 是已損壞的資料庫, test_backup 是新建的資料庫)。  此命令是把損壞的伺服器中的資料庫裡使用者郵箱重新指向到新建的資料庫中去 

    但是問題來了, 在微軟幫助檔案中明確說明完成此步驟後,使用者已經可以訪問自己的郵箱了,網上有些網友的恢復文件中也說明了在這種情況下使用者可以訪問郵箱了。可是我自己在測試時,發現此時使用者還是不能訪問自己的郵箱,通過OWA訪問時提示出錯 : “ 您的帳戶已禁用”   可是檢查使用者狀態,發現使用者並沒有禁用。對於此問題,始終沒有找到解決方法。看來這個恢復方法是行不通的嗎?

   後來與同事交流後,發現問題的關鍵是在於新建的資料庫。上面的做法是把損壞的郵箱服務中的資料庫備份檔案恢復到新資料庫並載入,雖然載入成功,但資料庫原有的使用者始終無法訪問,AD裡的使用者並沒有與 資料庫裡的同名郵箱進行有效連結。所以使用者無法訪問。(經過測試重新遷移一個使用者郵箱到此郵箱資料庫,此使用者又能正常訪問,但資料庫原使用者仍無法訪問)但是此時如果不用資料庫備份檔案,而是直接用一個新的資料庫,然後執行上面的命令修改使用者的郵箱指向,此時使用者才能正常訪問自己的郵箱。

    是不是恢復到此結束了? 不行,還沒有。  此時使用者連線的是一個新郵箱裡面沒有任何郵件。接下來還是要通過備份檔案及利用恢復資料庫把郵件還原到使用者新郵箱裡。

   通過此次測試,發現其實此功能並不是想象中那麼完美,最重要的還是要做好備份。當然也許是我測試方法有問題因而導致測試結果不如意。

關於資料庫可移植功能詳細資訊可以參考微軟文件:http://technet.microsoft.com/zh-cn/library/dd876926.aspx