如果公司的郵箱服務器掛了,我們又沒有做高可用,這個時候我們需要儘快地恢復郵箱數據庫,並且保證郵箱正常收發郵件。現在我們需要用到郵箱數據庫的備份了,一般情況下,我們會把數據庫備份在共享存儲中,或者至少是備份在另一臺服務器上。我們採用的方法是將存儲裏面的數據庫文件複製出來,在新的服務器上部署Exchange並創建新的數據庫,然後將源數據庫文件覆蓋到新數據庫文件中,最後把源數據庫中的所有用戶移植至新的數據庫。
1、源服務器的數據庫如下,我們用“DataBase01”數據庫來做實驗:
2、在“DataBase01”中,有兩個用戶:“張三”、“李四”,如下圖:
3、下面查看源數據庫中的“張三”和“李四”的郵箱情況,如下圖:
4、我們需要把源服務器的數據庫文件連目錄一併複製出來,如下圖:
5、安裝新的Exchange服務器:
當源服務器崩潰後,我們需要在同一域的網絡環境下安裝一臺新的Exchange服務器,在進行安裝步驟前需要注意:重命名新服務器,名稱不能與源服務器名稱相同,否則無法安裝;並且需要加入域。
在新服務器上安裝角色。
按順序安裝組件。
安裝Exchange,安裝好後,重啓服務器。
6、驗證源數據庫文件夾複製到新服務器上,如下圖:
驗證源數據庫是否處乾淨關閉狀態:
打開EMS,輸入以下命令:
Eseutil /mh"c:\DataBase01\DataBase01.edb"
查看命令執行結果,驗證“State”的值是否爲“Clean Shutdown”,如下圖:
若不是,請執行郵件數據庫修復:
Ø 修復分爲兩種,a、軟修復 ,b、硬修復。
一般情況下,通過軟修復和整理數據庫,但大部分情況都需要通過硬修復才能解決。
使用Eseutil 將該數據庫置於乾淨關閉狀態。在示例中,EXX 是數據庫的日誌生成前綴(例如,E00、E01、E02等)。
Eseutil /R EXX /l <RDBLogFilePath> /d <RDBEdbFolder>
以下示例說明了 E00日誌生成前綴、恢復數據庫和日誌文件路徑E:\Databases\RDB1:
Eseutil /R E00 /l E:\Databases\RDB1 /d E:\Databases\RDB1
使用以下命令進行將還原的數據庫進行處理乾淨
Eseutil.exe /R e00 /A /l " c:\database01" /d " c:\database01"
軟修復後,如狀態仍爲dirtyshutdown,請使用如下命令硬修復:
Eseutil /P "c:\DataBase01\DataBase01.edb"
7、在新服務器上創建新數據庫“DataBase02”:
打開ECP管理界面——“服務器”——“數據庫”,點擊“+”添加按鈕,如下圖:
輸入新數據庫名,並選擇所在服務器,如下圖:
8、卸除剛創建好的新數據庫database02,如下圖:
9、設置新數據庫爲“還原時可被覆蓋”,選中“DataBase02”,點擊“編輯”按鈕,如下圖:
打開編輯對話框,選擇“維護”選項卡,然後勾選“還原時可以覆蓋此數據庫”,如下圖:
10、把源數據庫文件名“DataBase01.edb”改爲“DataBase02.edb”,如下圖:
11、把改過名的源數據庫文件複製過來(複製到database02目錄下),覆蓋到新數據庫文件“DataBase02.edb”,如下圖:
12、重新裝入“DataBase02”,如下圖:
13、最後一步,把源(舊的被破壞了的數據庫名)數據庫“DataBase01”中的所有用戶(此操作僅爲用戶關聯)遷移到新數據庫“DataBase02”下:
打開EMS執行如下命令:
Get-Mailbox -Database DataBase01 |where {$_.ObjectClass –NotMatch '(SystemAttendantMailbox|xOleDbStemMailbox)'}|Set-Mailbox -Database DataBase02
執行結果如下:
驗證用戶遷移是否遷移到“DataBase02”中,執行如下命令,結果如下圖:
14、驗證新郵箱服務器數據及運行情況:
驗證用戶郵箱數據是否恢復,分別登陸“張三”和“李四”的郵箱,查看郵箱情況,發現郵箱數據均已恢復。
到此,郵箱故障恢復已經完成,後面還需要重新申請Exchange證書,纔可供用戶正常使用。