運維案例 | Exchange2010數據庫損壞的緊急修復思路

​​關注嘉爲科技,獲取運維新知數據庫

 

Exchange後端數據庫故障,通常都會是比較嚴重的緊急故障,由於這會直接影響到大面積用戶的正常使用,並且涉及到用戶數據。一旦遇到這種級別的故障,管理員每每都是在很是緊張、壓力很是大的狀態下進行恢復操做,須要在高壓狀態下迅速作出決策,下一步應該如何作。本文將總結數據庫緊急故障下的恢復思路,但願對遇到這種緊急狀況的郵件系統管理員有所幫助。後端

注:如下案例僅針對Exchange 2010版本。運維

 

通常郵件數據庫的緊急故障,首先判斷數據庫狀態是否正常,是否能夠掛載使用;數據庫沒法掛載使用則能夠經過命令判斷是否須要進行數據庫修復;使用以下圖的命令,若是數據庫狀態並不是Clean Shutdown則須要進行修復操做。ui

 

若是數據庫須要進行修復,則管理員須要判斷,是等待數據庫徹底修復好以後再進行恢復郵件服務?仍是優先恢復用戶郵箱使用,郵箱數據則等待數據庫修復以後再進行恢復?spa

 

由於有的時候數據庫修復時間較長,用戶沒法等待這麼久的時間。筆者就曾遇到過修復600GB數據庫的案例,首先軟修復耗費3個多小時,硬修復耗費1個多小時的狀況。3d

 

如須要緊急優先恢復用戶郵箱使用,後續再恢復數據的場景,則可使用如下兩種方案。兩種方案基本大同小異,你們能夠參考使用。rest

 

 

方案一,在原先的數據庫掛上空庫使用,後續合併數據

一、剪切目錄中全部原始數據庫的文件至其餘磁盤,並額外備份一份,以防修復過程當中出現意外。server

 

二、 掛上空庫:blog

  • a) 加載數據庫DB;get

 

  • b) 點擊"全是"建立一個空數據庫;

 

  • c) 如今數據庫上的用戶應該能夠訪問郵箱並收發郵件了,只是原始的數據會找不到。

 

三、用命令exeutil /p修復原始數據庫文件(*.edb),以下圖示例:

 

四、確認數據庫狀態爲"Clean Shutdown";

 

五、建立恢復數據庫RDB;

New-MailboxDatabase -Recovery -Name name -Server servername -EdbFilePath "path" -LogFolderPath "path"

 

六、將修好的EDB文件複製到上面建立的RDB的路徑下,並重命名爲RDB指定的edb文件名稱;

 

七、加載RDB;

 

八、用如下命令合併DB與RDB的數據;

Get-Mailbox -Database 原DB名 | Restore-Mailbox -RecoveryDatabase RDB

注:也能夠在第6步dismount原有的數據庫,將空庫的文件剪切到RDB的路徑下,將修復的數據庫掛到原始數據庫路徑下,在從新mount原始數據庫的RDB以前,修改數據庫屬性,勾上「This database can be overwritten by a restore」。

 

 

 

方案二,將用戶郵箱設定到新數據庫,後續合併數據

一、建立新的數據庫,使用下面的命令將原始數據庫中的郵箱所有設置到新的數據庫上;

Get-Mailbox -Database 舊數據庫名 | Set-Mailbox -Database 新數據庫名

 

二、同第一種方法對故障數據庫進行修復,待數據庫修復完畢,咱們能夠:

新建RDB,將修復好的數據庫拷入合併數據到新建的數據庫,具體步驟能夠參照第一部分。

或者將郵箱從臨時數據庫切回當前數據庫。

Get-Mailbox -Database 新數據庫名|Set-Mailbox -Database 舊數據庫名

 

運行命令,將數據進行合併。

$mailboxes = Get-Mailbox -Database 舊數據庫名

$mailboxes | %{New-MailboxRestoreRequest –SourceStoreMailbox $_.ExchangeGuid –SourceDatabase 新數據庫名 –TargetMailbox $_}

注意區分舊數據庫名和新數據庫名。

 

 

以上就是針對郵箱數據庫的緊急故障的恢復思路。

總的來講,出現重大緊急故障,不要慌不要亂,保持清晰的思路,作出最佳的判斷。可是不論怎樣,作好平常運維的管理,防範故障於未然纔是最好的辦法。

相關文章
相關標籤/搜索