客戶公司Exchange Server 2010 郵箱數據庫數據損壞,所幸以前使用DPM進行過數據庫備份,臨時創建一個空庫以滿足大家發往郵件的需要。兩天後,原DPM中的數據庫恢復成功,那麼新建的數據庫就需要和還原的數據庫進行合併,操作步驟如下:
1.DPM中還原數據庫到一個文件夾中,這個操作很簡單,大致如下圖所示:
根據提示將數據庫還原到指定文件夾,然後複製到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文件:
具體命令如下:
$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
查看導出請求: Get-MailboxExportRequest
如下圖所示:
PST文件導入到用戶郵箱:
本示例導入共享文件夾上的所有 .pst 文件。在相應用戶的別名後命名每個 .pst 文件名。命令爲所有 .pst 文件創建導入請求並將數據導入到匹配的郵箱。
[PS] C:\>Dir \\ex-bj-cashub-02\d$\testpst\*.pst | %{ New-MailboxImportRequest -Mailbox $_.BaseName -FilePath $_.FullName }
查看導入狀態: [PS] C:\>Get-MailboxImportRequest
刪除導入請求:Get-MailboxImportRequest -Status Completed | Remove-MailboxImportRequest
刪除導出請求:Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest
注意:
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"
如果報錯,可以多嘗試兩次,這個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 或手工操作