Exchange Server 2010數據庫崩潰還原過程

客戶公司Exchange Server 2010 郵箱數據庫數據損壞,所幸以前使用DPM進行過數據庫備份,臨時創建一個空庫以滿足大家發往郵件的需要。兩天後,原DPM中的數據庫恢復成功,那麼新建的數據庫就需要和還原的數據庫進行合併,操作步驟如下:

1.DPM中還原數據庫到一個文件夾中,這個操作很簡單,大致如下圖所示:

image

根據提示將數據庫還原到指定文件夾,然後複製到Exchange的MBX服務器上,例如,複製到e:\olddb下。

2. EMS上新建一個數據庫,名稱可以自擬,然後卸載此數據庫,再對數據庫屬性--維護--“還原時可以覆蓋此數據庫(T)"勾上。

3. 使用eseutil /mh命令進行驗證DPM還原過來的數據庫文件的狀態,如下所示:

c:\program file\exchsrvr\bin>eseutil /mh "E:\olddb\userdb-01.edb

必須確保,狀態是cleanshutdown。如果不是,則需要對此數據庫文件進行修復,如下所示:

c:\program file\exchsrvr\bin>eseutil /p "E:\olddb\userdb-01.edb"

此時,可能會彈出,強制關閉數據庫的提示,點擊,是即可。

然後,再次查看數據庫文件的狀態。應該就是cleanshutdown。

4. 將DPM還原過來的數據庫文件名改爲剛新建的數據庫文件的名稱,然後mount。如果不成功,則再修復,必須保證是cleanshutdown狀態。

導出所有用戶郵箱至pst文件:

image

具體命令如下:

$i=ForEach-Object{Get-Mailbox -Database uec-users01}
$Path=New-Item -Path "\\ex-bj-cashub-02\D$\testpst\" -Name $i.alias -ItemType directory -Force
$i | ForEach-Object {New-MailboxExportRequest -Mailbox $_ -FilePath "$Path\$($_.Alias).pst"}

 

如果是導出單個用戶就很簡單:New-MailboxExportRequest  -Mailbox  -filepath image

 

查看導出請求: Get-MailboxExportRequest

如下圖所示:

image

 

PST文件導入到用戶郵箱:

本示例導入共享文件夾上的所有 .pst 文件。在相應用戶的別名後命名每個 .pst 文件名。命令爲所有 .pst 文件創建導入請求並將數據導入到匹配的郵箱。

[PS] C:\>Dir \\ex-bj-cashub-02\d$\testpst\*.pst | %{ New-MailboxImportRequest -Mailbox $_.BaseName -FilePath $_.FullName }

image

查看導入狀態:  [PS] C:\>Get-MailboxImportRequest

 

刪除導入請求:Get-MailboxImportRequest -Status Completed | Remove-MailboxImportRequest

刪除導出請求:Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest

image

 

注意:

1. 對現有郵箱進行備份

2.  所有郵件恢復成功之後,只在存在收件箱裏,下次再恢復的時侯,不會再恢復,避免重複。 而且是合併,不是覆蓋。

 

利用PST文件的導出、導入是可以的,但是效率不高,可以直接創建一個恢復數據庫,然後直接合並,如下面所述:

1. 創建一個恢復數據庫:

New-MailboxDatabase -Recovery -Name "RDBUSERDB01" -Server mail -EdbFilePath "d:\DBOLD\userdb-01.edb" –LogFolderPath "d:\DBOLD\USEDB01log"

2.  必須確保,狀態是cleanshutdown。如果不是,則需要對此數據庫文件進行修復, /p  直接略過日誌文件如下所示:

c:\program file\exchsrvr\bin>eseutil /p "d:\olddb\userdb-01.edb"

image

image

如果報錯,可以多嘗試兩次,這個250GB的文件,大約1個半小時左右。

也可以使用 /r進行軟修復   將日誌文件提交到數據文件

eseutil /r e02 /l d:\olddb\userdb-01log /d d:\olddb\userdb-01。這條命令是將viplong中的日誌commit到vipdb中的數據庫文件。

打開恢復數據庫日誌文件夾,可以看到日誌文件都以E02開頭,如果不是以E02開頭的,則需要做相應改動。

3.  使用mount-database rdbvip掛載恢復數據庫,也可以在EMC控制檯中對rdbvip進行掛載。

4. 掛載恢復數據庫之後,在Exchange服務器的EMS中運行restore-mailbox –Identity user1 –RecoveryDatabase rdpuserdb01。這條命令的作用是將恢復數據庫中的user1郵箱內容和當前的user1郵箱進行合併。

如果是合併所有用戶的郵件,則使用命令:

Get-Mailbox -Database userdb-01 | Restore-Mailbox -RecoveryDatabase rdbuserdb-01


 
最後,卸載並刪除恢復數據庫:
dismount-database –identity RDB  或手工卸載
remove-mailboxdatabase –identity RDB 或手工操作
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章