Exchange Server 軟恢復和硬恢復介紹

2021-04-19 00:39:06 字數 4832 閱讀 9872

當使用microsoft exchange server 2003的時候,必須注意recovery (恢復)和restore (還原)之間的區別。還原是指將資料庫和日誌檔案還原到伺服器上的動作,恢復是指重放事務日誌到恢復過的資料庫中的動作。

有兩種形式的恢復:

軟恢復

exchange 伺服器將它們寫到資料庫中,完成那些日誌檔案中發現的還沒有被寫到資料庫中的事務。exchange 伺服器從來不會將事務寫進資料庫檔案中直到所有的操作組成的整體被安全放置到日誌檔案中。您不需要在資料庫中物理地撤消或收回乙個事務,當重放開始的時候如果所有的未提交的事務日誌還在這時意外中止出現。

重要資訊:軟恢復過程的乙個基本的假設是,由於故障或在故障之後,沒有資料庫或日誌檔案被管理員移動、刪除或損壞。

如果您從重播序列中刪除任何需要的事務日誌,exchange 伺服器軟恢復將立即失敗。如果需要的日誌丟失的話,您必須要麼從舊的日誌執行恢復,從資料庫的備份(乙個不需要那些日誌副本)中還原,要麼您必須使用exchange 伺服器資料庫工具(eseutil.exe)來修復這個資料庫。

事務日誌檔案重播的一些基礎規則

事務日誌檔案重播的一些基礎規則有下面一些:

1. 您不能將日誌檔案從乙個資料庫重播到另乙個資料庫中。日誌檔案內部的操作是低階別的。您無法看到日誌檔案裡面的東西像「傳遞郵件a到郵箱b」。日誌檔案操作的乙個好的例子是「在資料庫頁面7890上寫123位元組的流到偏移量456位元組」。

想像您要編輯乙個文件給出一些指令,您的指令是「在第五頁第四段的第三個句子中的第二個單詞後插入 '將是或將不是'」。如果這些指令被應用到文件而不是您打算的地方,結果是將隨機地損壞該文件。同樣地,如果錯誤的日誌檔案被重播到乙個exchange 伺服器資料庫中,類似的結果將發生。exchange 伺服器因此必須有多個安全機制來阻止這樣的損壞發生。如果您修復或整理exchange 伺服器資料庫,以前和該資料庫關聯的事務日誌不能在被重播到它裡面。

如果您嘗試重播日誌在完全整理或修復之後,exchange 伺服器跳過這些不正確的事務日誌。再一次考慮類似文件編輯。如果乙個段被移動、編輯或刪除由於指令被建立,應用過期的指令將具有毀壞性因為將它們變成了乙個完全不同的文件。

2. 您不能重播日誌檔案除非所有未提交的日誌檔案從資料庫上次執行的時候是可用的。您必須讓所有的日誌檔案從檢查點開始並且在那個時間資料庫被備份。接著您才能從該點重播日誌檔案只要它們不存在中斷的序列。如果中間或序列的開始有單個檔案丟失的話,重播將停在那裡。

3. 您不能重播日誌檔案如果資料庫檔案已經被移動到不同的檔案路徑(在exchange 2000 server sp2之前)。該限制不會應用如果您正在使用exchange 2000 server sp2 或後續版本,因為eseutil.exe 處理重播即使路徑已經發生更改。下面的部分將具體描述重播過程是如何工作的。

5. 您不能重播日誌檔案如果儲存組的任何資料庫檔案已經被刪除。所有的以前正在執行的突然出現意外出現終止的資料庫必須存在,這樣才能保證軟恢復成功。該限制能夠被克服通過使用eseutil.exe 來執行軟恢復。

如果乙個儲存組中的其他資料庫正在執行軟恢復這時乙個資料庫丟失了,以後的日誌重播將變的比較複雜。通過軟恢復失敗,exchange 伺服器給管理員乙個機會來分析情況並決定是否不通過資料庫來處理。

高階軟恢復場景

在大多數情況中,執行軟恢復的最好的方法是在乙個儲存組中載入任何乙個資料庫。因為乙個儲存組中的所有資料庫共享同乙個日誌檔案流,軟恢**生在整個儲存組級別而不是單個資料庫級別。

在一些特定的環境中,使用eseutil.exe執行軟恢復有好處。下面的場景是最通用的例項。

1. 您想恢復乙個丟失資料庫的儲存組。

2. 您想恢復乙個「超出空間」的單獨資料庫而不影響其他的資料庫或儲存組的日誌檔案。

eseutil.exe 軟恢復功能的完整語法,列出了所有可能的開關如下:

eseutil /r enn /l[path to log files] /s[path to checkpoint file] /d[path to database file] /i

例如,在命令列中,輸入下面的命令:

eseutil /r e01 /lf:/mdbdata /sc:/exchsrvr/mdbdata /dg:/mdbdata /i

注意:eseutil.exe 命令列引數不是大小寫敏感的,它們被混合在一起在上面的例子中為了避免混淆"l" 和 "i" 字元。

該例子說明了儲存組資料庫恢復,日誌檔案的字首是e01,日誌檔案位於f:/mdbdata,檢查點檔案位於c:/exchsrvr/mdbdata,資料庫和流檔案位於g:/mdbdata,丟失的資料庫被忽略(因為末尾的/i開關)。

執行軟恢復的最小eseutil.exe 命令列是:

eseutil /r enn

如果從提示中設定事務日誌目錄該命令才能生效。您應該知道下面這些當使用eseutil.exe來執行軟恢復:

1. 如果您不指定任何檔案路徑在命令中,eseutil.exe 使用您當前的命令列目錄作為日誌檔案和檢查點檔案的預設的目錄。

2. 資料庫檔案不一定必須在日誌檔案路徑中。日誌檔案記錄資料庫路徑,因此eseutil.exe 發現所有的資料庫路徑通過閱讀日誌檔案。使用/d開關來覆蓋儲存在日誌檔案中的路徑只有當您確定日誌檔案的路徑是不正確的。

3. 如果檢查點檔案不與事務日誌檔案在相同的路徑,所有被掃瞄的日誌檔案都要重播,而不是從檢查點開始重播。您能夠臨時拷貝乙個已經存在的檢查點檔案到日誌檔案路徑。在軟恢復完成之後,exchange 不在使用檢查點的副本在正常的資料庫操作中。如果檢查點檔案中的資訊是不正確的,軟恢復將失敗但是不會損害資料庫。您能夠嘗試在恢復在刪除檢查點檔案或找到正確的檢查點檔案。檢查點檔案對成功執行恢復來說不是最根本的,但它能夠節省大量的時間如果您有大量的日誌檔案。

如果您想開始恢復當乙個資料庫從儲存組丟失,您能夠使用下面的命令:

eseutil /r enn /i

/i 開關意味著忽略丟失的資料庫。如果您使用該開關然後載入丟失的資料庫,exchange 伺服器提示您建立乙個新的資料庫。如果您打算恢復舊資料庫在一些點,您將不能重播新的資料到它裡面。您現在有同乙個邏輯資料庫的兩個單獨的版本。

這種情況,儲存組中乙個資料庫已經被乙個空的資料庫替換,是恢復儲存組能夠幫助的那種。您能夠載入額外的資料庫在恢復儲存組中,並使用郵箱合併嚮導(exmerge.exe)來增加乙個資料庫的內容到其他的資料庫。

如果您想開始恢復「超出空間」來恢復乙個資料庫而不影響儲存組中的其他資料庫,您應該建立乙個新的空資料夾並移動您想恢復的資料庫檔案,您想重播的事務日誌,和檢查點檔案(如果需要)到該路徑。該路徑一定不能包含其他的資料庫檔案。

在您將資料庫和日誌一起隔離到乙個資料夾,執行下面的命令從那個資料夾:

eseutil /r enn /i /d

通過使用/d 開關而不指定路徑,您能夠覆蓋日誌檔案中的資料庫路徑。此外,由於該資料夾沒有其他的資料庫可用,您隱藏了伺服器上其他資料庫從這個特定的恢復過程。

如果您沒有正確使用/d引數,恢復過程能夠影響伺服器上其他的資料庫。即使在最壞的情況下,恢復過程將不會損壞其他資料庫。然而,恢復可能失敗在您正在工作的資料庫上。該恢復操作甚至可能影響其他資料庫以後的日誌重播能力。

注意:增加錯誤的可能性因為命令列變的更加複雜。作為乙個總體的原則,當使用eseutil.exe 的時候在命令中最小化指定的路徑資訊。在這種情況下,切換到日誌檔案所在的目錄並在您的系統路徑中包含/exchsrvr/bin 目錄。

要執行軟恢復,重播序列中最後日誌檔案必須命名為enn.log 。如果最後的日誌檔案已經被關閉並計數,您必須重新命名它在軟恢復成功之前。這個要求並不意味著當前的enn.log 檔案已經被損壞,您能夠忽略它,並重命名以前的日誌在enn.log 序列中。在exchange 2000 伺服器中,資料庫頭中的logs required 列出了恢復必須的最小數量的日誌,從檢查點日誌開始並連續到當前的日誌。在早期版本的exchange 伺服器中,儘管沒有logs required 值存在來強制要求的日誌存在,恢復仍會失敗如果需要的最後乙個日誌沒有找到。exchange 2000 伺服器和後續版本之間的唯一區別是恢復將在日誌重播結束的時候失敗而不是在開始的時候。

硬恢復

1. patch資訊必須應用到資料庫在日誌檔案重播期間。

2. 檢查點檔案被忽略。使用restore.env 而不是檢查點來決定恢復應該從哪個日誌檔案開始。

exchange 伺服器5.5 管理員可能比較熟悉過程登錄檔中的還原。restore.env 替換了exchange 2000 伺服器中那個鍵的功能。您能夠檢視restore.env 檔案的內容通過執行eseutil /cm 命令。

1. 如果資料庫已經被還原到乙個和以前備份時不同的路徑,日誌檔案重播成功,忽略列在日誌檔案中的資料庫路徑。

2. 還原的事務日誌檔案在正常的事務日誌資料夾restore. log檔案也有可能被重播之前先從管理員指定的臨時資料夾重播。

3. 硬恢復不會失敗如果儲存組中的其他資料庫丟失的話。

硬恢復中的restore.env 的功能類似於軟恢復中的檢查點檔案。restore.env 定義應該出現在臨時資料夾中用於硬恢復的事務日誌檔案的範圍。如果您放置了額外的日誌在臨時資料夾-它們超出了restore.env 中列出的範圍-它們不會被重播並且恢復程序可能會自動刪除它們。

注意:如果您還原到備用的伺服器,或您已經刪除並重新建立了原來的資料庫,只有臨時資料夾中的事務日誌被重播。正常資料庫資料夾中的事務日誌不會被重播。該特徵是避免事務日誌重播引起衝突萬一exchange 伺服器知道還原的資料庫與備份的不同。在這種情況下還原的資料庫稱為「刪除的」資料庫。

如果日誌檔案9找到的話,重播繼續只要序列中的下乙個日誌是可用的。如果日誌檔案9不存在的話,恢復過程建立乙個名稱為e00.log的新日誌檔案在臨時資料夾中。該日誌檔案只用於記錄資料庫中需要以一致狀態關閉它的更改。在這點上,資料庫被完全恢復。它自動重啟,並將儲存組中最新的日誌檔案附上。恢復過程接著刪除臨時目錄中的所有檔案。

exchange server版本查詢

注 可通過網頁 檢視目標郵件伺服器的小版本號,並對應到相應的exchange版本。本章彙總exchange server每個服務包 sp 的內部版本號 累積更新 cu 或特定 exchange 版本的更新彙總 ru 包括 exchange 2016 exchange 2013 exchange 20...

Exchange Server災難復原問題集整理

一 如何在 exchange 中配置 smtp 聯結器以鏈結到 internet 域 二 如何啟用或禁用郵件篩選簡單郵件傳輸協議虛擬伺服器上 三 如何從 active directory 中完全刪除 exchange 2000 或 exchange 2003 四 如何手動刪除 exchange 20...

Exchange Server災難復原問題集整理

一 如何在 exchange 中配置 smtp 聯結器以鏈結到 internet 域 二 如何啟用或禁用郵件篩選簡單郵件傳輸協議虛擬伺服器上 三 如何從 active directory 中完全刪除 exchange 2000 或 exchange 2003 四 如何手動刪除 exchange 20...