Exchange Server 資料庫架構和資料庫引擎的概觀

文章翻譯 文章翻譯
文章編號: 271987 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文提供 Microsoft Exchange 伺服器的一般概觀資料庫架構和資料庫引擎。討論區包括資料庫元件的相關資訊、 維護資料庫的一致性、 可能的資料庫失敗] 及 [資料庫公用程式類型。

其他相關資訊

Exchange 伺服器使用容錯、 交易基礎資料庫來儲存郵件和目錄資訊,套用至資料庫之前。對於 Exchange Server 5.5 標準版,每個資料庫可成長到最大為 16 GB。Exchange Server 5.5 企業版的大小只受硬體限於。

如果電源中斷或其他不正常的系統失敗發生 Exchange Server 會使用交易記錄檔來重建已接受由伺服器但尚未寫入資料庫的資料。

資料庫元件

Exchange Server 的設計是以標準資料庫技術為基礎。系統會依賴內嵌的資料庫引擎,Exchange 伺服器會配置在磁碟結構,並管理記憶體。資料庫引擎技術是也使用在幕後其他 Windows 應用程式,例如 Windows 網際網路名稱服務 (WINS)] 和 [動態主機設定通訊協定 (DHCP)。

資訊儲存庫

資訊儲存庫是關鍵元件的 Exchange 伺服器 」 中的資料庫管理,實際上的兩個不同資料庫中取得。私用將資訊儲存庫資料庫 Priv.edb,管理使用者信箱中的資料。公用資訊儲存庫 Pub.edb,管理公用資料夾中的資料。

資訊儲存庫會使用 [訊息應用程式發展介面 (MAPI) 與資料庫引擎,以確保所有的使用者動作會記錄在伺服器的硬碟上。例如當使用者在 Microsoft Outlook 中儲存訊息,MAPI 會先呼叫資訊儲存庫呼叫資料庫引擎會再將變更寫入至磁碟。

JET 資料庫引擎

Exchange Server 資料庫是以哪一種使用記錄檔來追蹤和維護資訊所 JET 格式為基礎。Microsoft JET 是結合了速度及效能與的其他進階功能來增強交易處理能力的進階的 32 位元多執行緒的資料庫引擎。

資料庫引擎會藉由交換 4 千位元組 (KB)] 分頁中和記憶體用完資料快取磁碟中的記憶體。它會更新記憶體中的分頁,並將新或更新頁面回寫入磁碟。這使系統更有效率因為當要求來自,資料庫引擎緩衝區資料,而非經常前往磁碟的記憶體中。

在版本早於 Exchange Server 5.5 緩衝區快取是] 固定的大小。如果需要更多的記憶體系統管理員必須手動變更緩衝區大小。

在 [Exchange Server 5.5,動態緩衝區配置允許緩衝區快取成長或壓縮根據多少記憶體以及資源都在 Microsoft Windows NT Server 電腦執行其他服務所使用。如果其他服務不使用記憶體,Exchange Server 資料庫引擎會佔用它需要的記憶體一樣大。如果其他服務需要記憶體,資料庫引擎提供出一些記憶體藉由將頁面傳送到硬碟並壓縮緩衝區的大小。

當使用者要求,資料庫引擎載入記憶體中的要求,並將標記為 Dirty 」 頁面 (「 Dirty 」 分頁則是網頁已寫入的資料,仍被保留在記憶體中其中)。這些 Dirty 分頁稍後在磁碟上寫入資訊儲存庫資料庫中。

維護資料庫的一致性

雖然在記憶體中快取是最有效率的方式處理資料,一個效果會是磁碟上的資訊永遠不會是完全最新狀態。在記憶體中的 Dirty 分頁會導致資料庫被標示為不一致,即使 Exchange Server 正常執行。資料庫是真的在僅在所有 Dirty 分頁均成功時一致的狀態傳輸在沒有錯誤發生的關機期間的磁碟。

如果您失去記憶體的內容嗎?比方說如果伺服器當機之前資料寫入磁碟,並會保留與不一致的資料庫嗎?Exchange 會使用從這種情況下復原交易記錄檔。

交易記錄檔

交易記錄檔保留在記憶體中的 Volatile 資料的安全副本。如果系統當機,假設資料庫未損毀,記錄檔讓您復原資料,最多可達當機之前最後一次認可交易。(請注意建議您儲存記錄檔在專用硬碟上的,使記錄檔不會受到可能會損毀資料庫可能磁碟失敗)。

Exchange 是一個 「 交易基礎 」 郵件系統,而資訊儲存庫是交易式資料庫。交易是一組如插入、 刪除及系統遵循四個 ACID"恆定性的更新資料庫的變更:
  • Atomic: 可能所有作業都發生或它們都不會都發生。
  • 一致: 資料庫會轉換從一個正確的狀態到另一個。
  • 隔離: 變更不會顯示直到已認可。
  • durable: 認可的交易都會保留在資料庫中即使系統當機。
遵循這些恆定性表示資料庫引擎只有它可以保證資料是永久性或永續性,防止系統當機或其他失敗時認可交易。只有在該資料已經從記憶體傳輸交易記錄檔,在硬碟上時,才,資料庫引擎會認可資料。

比方說若要將郵件從 [收件匣] 資料夾移至 [重要] 資料夾,Exchange 伺服器會執行作業有三種:
  1. 從 [收件匣] 資料夾中刪除郵件
  2. 插入 [重要] 資料夾中的訊息
  3. 更新以反映項目和未讀取的項目數目的每個資料夾的相關資訊
在一次交易中完成這些作業。作業的順序並不會有任何影響。因為刪除是認可訊息安全地插入 [重要] 資料夾時,只有 Exchange 伺服器安全地可以從 [收件匣] 資料夾刪除郵件。即使系統當機,Exchange Server 永遠不會移動它時失去一則訊息,而永遠不會結束與兩個訊息的複本。

邏輯上,與移動從記憶體至記錄檔,然後再對資料庫磁碟上, 資料的您可能會認為,但實際上會發生的情況是會將該資料從記憶體移動到資料庫磁碟上。記錄檔會最佳化以便進行高速寫入以便在正常作業期間資料庫引擎永遠不會實際讀取記錄檔。僅當資訊儲存庫服務異常停止,或當機,且資料庫引擎必須復原由重新顯示記錄檔才,它會從記錄檔讀取。

檢查點檔案

資料庫引擎會維護呼叫每個記錄檔順序的 Edb.chk 來追蹤的資料已不尚未寫入資料庫檔案在磁碟上的檢查點檔案。檢查點檔案是指示位置記錄檔中檔案資訊儲存庫需要啟動失敗的情況下復原記錄檔序列中的指標。檢查點檔案是不可或缺的有效率的復原。沒有它,資訊儲存庫會從磁碟上最舊的記錄檔的開頭開始,並檢查每個記錄檔,以判定 [是否它必須已經被寫入資料庫--一個耗時的程序] (特別是如果您只想是讓一致的資料庫中的每一頁。

檢查點檔案位於系統磁碟上。如果必須復原您的系統磁碟這個檔案是可能遺失或只是無效的版本。但在大部分的情況下檢查點檔案負責的本身。

標準記錄

下列步驟說明 「 一般記錄 」 資料位置寫入交易記錄檔的程序:
  1. 使用者可傳送郵件。
  2. MAPI 呼叫告訴它將訊息傳送使用者資訊儲存庫。
  3. 資訊儲存庫資料庫引擎中啟動交易,和對資料進行相對應的變更。
  4. 資料庫引擎 dirtying 在記憶體中的新頁面,在記憶體中記錄交易。
  5. 同時,資料庫引擎可以保護交易記錄檔中的交易,並建立記錄檔資料錄。當資料庫引擎到達交易記錄檔結尾時, 它會變換,並在序列中建立新的記錄檔。
  6. 資料庫引擎會將 Dirty 分頁寫入資料庫檔案在硬碟上。
  7. 更新檢查點檔案。
循環記錄

Exchange Server 支援稱為實作每次當系統管理員已更關心比資料修復相關的伺服器磁碟空間的循環記錄功能。

循環記錄運作中大部分之相同方式一般記錄只不過是不可或缺的追蹤資訊所傳輸的檢查點檔案到磁碟。 在作為檢查點檔案前移至下一個的記錄檔的循環記錄時重複使用舊的檔案。發生這種情況時您不能使用在一起的磁碟上的記錄檔備份媒體還原到最近的認可交易。

根據預設,循環記錄會開啟在 Exchange Server 5.5 以維持固定的大小為記錄檔,以避免累積。當記錄檔達到其 5 MB 的限制時,資料庫引擎將其刪除,並在序列中建立新的記錄檔。如此一來 Exchange 伺服器會保留足夠資料讓資料庫一致如果損毀發生在硬碟上。

建議您關閉您的 Exchange Server 電腦上的循環記錄。循環記錄可能會減少磁碟空間的需求,但它也會消除您最多為失敗之前最後一次認可交易復原的能力。您無法重新顯示記錄檔,只能復原資料,最多可達上次完整備份。即使只有一個記錄檔就會覆寫,沒有方法來復原其他 99%的記錄檔資料。

作用中循環記錄可以取消交易基礎系統的優點。 離開循環記錄已開啟對來說是很合理,只有您不需要您的資料,或是您有其他的資料修復的方法。如果您擔心記錄檔耗用的磁碟資源最好藉由執行定期的線上備份將它們清除。不再需要時,備份會自動移除交易記錄檔。

資料保護

看來邏輯認為資料庫檔案是最重要的資料修復層面。但在 Exchange Server,交易記錄檔更重要的是因為它們包含不在資料庫檔案中的資訊。(這是為什麼應該穩定的伺服器上找到它們,並將它們放置在專用、 高效能磁碟即使這表示將資料庫儲存在較慢的磁碟上)。

交易記錄檔副本安全的 Volatile 資料在記憶體中,讓系統可以修復失敗的磁碟上。如果系統當機,但只要您有記錄檔,資料庫就未損毀,您可以還原資料,最多可達失敗前最後認可的交易。

交易記錄檔也將寫入資料更有效率,因為它是快循序比要將頁面插入資料庫的記錄檔中更新的網頁。當在資料庫中發生了變更時資料庫引擎更新記憶體中的資料。 它以同步方式將交易的資料錄寫入記錄檔告訴它如何取消復原交易,如果系統失敗。然後資料庫引擎將資料寫入資料庫磁碟上。最小化磁碟輸入/輸出,資料庫引擎將傳輸磁碟在批次中的頁面。

序列中的每個記錄檔可以包含 5 MB 的資料。如果記錄檔已滿,重新命名為先前的記錄檔,並使用 Edb.log 檔名稱建立一個新。Exchange 伺服器會將每個記錄檔與十六進位的層代編號產生關聯。因為記錄檔可以有相同名稱的資料庫引擎戳記標頭具有唯一的簽名碼在序列中的每個檔案中因此它可以區別不同的層代的記錄檔。

資料庫損壞

Exchange 可能會遇到失敗例如硬體故障,需要系統在嘗試返回到一致的狀態。因為有不同類型的資料庫損毀具有不同的徵狀,不同的工具和技術需要診斷並修正問題。

有損毀的兩種類型:
  • 實體損毀
    在最低層級資料可以實際損壞磁碟上。這通常是硬體相關的問題,永遠要求您從備份還原。
  • 邏輯損毀
    在資料庫層級發生典型的邏輯損毀。比方說資料庫引擎失敗會指向遺失的值的索引項目。在應用程式層的信箱、 郵件、 資料夾和附件中,也會發生邏輯損毀。比方說應用程式層級毀損可能會造成不正確的參考計數不正確的存取控制等級沒有訊息主體的訊息標頭等等。

實體損壞

實體損毀是嚴重的因為它可以破壞資料,的唯一可以進行的是從備份還原 Exchange。請務必您偵測早期實體損毀,並快速地解決問題。

偵測實體損壞

資訊儲存庫中的實體損毀會在事件檢視器] 的應用程式記錄檔中產生下列錯誤:
  • -1018 (JET_errReadVerifyFailure) 從磁碟讀取的資料會不相同寫入資料到磁碟。
  • -1022 (JET_errDiskIO) 的硬體、 裝置驅動程式或作業系統正在傳回錯誤。
  • -磁碟空間不足的 510 JET_errLogWriteFail 的記錄檔都或沒有記錄檔磁碟使用的硬體失敗。
雖然 Exchange 通常會顯示-1018年或-1022年錯誤訊息,當沒有實體損毀時,您也可以偵測實體損毀藉由執行是 Microsoft 的建議的方法備份資料的線上備份。線上備份也會是最佳的方式偵測資料庫檔案中的損毀,因為它是唯一有系統地會檢查每個資料庫中的單一頁面的程序。

您在執行線上備份時 Windows NT 備份軟體會讀取資料庫檔案中的每個 4 KB 分頁、 將其傳遞至資料庫] 引擎和再將其寫入到磁帶。資料庫引擎會驗證在每一頁總和檢查碼為正確。 如果在頁面上的加總檢查碼不符合資料庫引擎會計算總和檢查碼,則硬碟與 NT 備份記錄檔上的實體資料庫損毀-1018年錯誤。

防止實體損壞

若要防止實體損毀最好是 outfit 品質硬體元件具有伺服器和正確設定系統。請確定您不執行檔案層級公用程式如防毒軟體針對執行 Exchange Server 電腦上的資料庫及記錄檔。

如果您可靠的硬體可能會永遠不會看到實體損毀的指示。如果您持續地執行遭遇到-1018年錯誤,您可能有硬體問題,可能是不正確的磁碟或磁碟控制器。

關於 [回寫式快取: 有些回寫式快取陣列控制器不正確地報酬成功的認可交易之前實際上保護資料到磁碟。最安全的課程是關閉回寫式快取,除非處理程序有電池備份。如果您使用了寫回快取,並確定資料完整保護,而且您有程序,確保快取的資料為正確的磁碟轉送之後當機避免損毀的資料庫。

從實體損壞復原

從實體資料庫損毀復原唯一的方法是從上次的正確備份還原 (如果未發生錯誤,執行備份,它是很好) 和記錄檔向前滾動若要將系統帶到一致且未損毀的狀態。重複的失敗可能表示資料庫所在的磁碟發生問題。

真的沒有安全方法來修復到資料庫的實體損毀。您可以執行 [Eseutil.exe 公用程式中取得資料庫一次,運作的修復模式,但這不建議您因為 Eseutil 只是刪除錯誤網頁。

注意:如果是在所有可能避免在修復模式中使用 Eseutil (Eseutil/p)。附 Exchange 伺服器的 Eseutil 是最後的手段,對於所有其他失敗時修復資料庫損毀。在修復模式下,它會取得中斷的資料庫,再執行一次只要刪除損毀的頁面。Eseutil 絕不應該用來復原資料。如果您執行一項執行 Eseutil/p 命令,您也必須執行離線磁碟重組 (Eseutil/d),然後您必須再執行 Isinteg-測試 alltests-修正 命令來將資料庫還原到一致的狀態。

邏輯損壞

邏輯損毀很更難診斷和修正比實體損毀,因為邏輯損毀是無法預測,通常由軟體錯誤所造成。通常它會要求以警示您邏輯損毀問題。(邏輯損毀是極為罕見在 Exchange Server 5.5)

防止邏輯損壞

因為邏輯損毀因此無法預測所以沒有任何萬無一失的方法,以防止它。但是,有降低風險的方法:
  • 安裝最新的 Service Pack 的 Microsoft Exchange Server 5.5 版儘速。Service Pack 修正 Exchange Server 5.5 中的一些已知的問題。

    如需有關 Service Pack 以及如何取得它們的額外資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件:
    241740Bug 清單固定在 Exchange Server 5.5 Service Pack 3
    254682XADM: Exchange Server 5.5 張貼 SP3 資料庫引擎可以修正
    191014如何取得最新的 Exchange Server 5.5 Service Pack
  • 請確定您的 Exchange Server 電腦安全,而且不會變更您的組態。
如果您發現問題持續發生之後請遵循這些預防措施上您可能會發現新的 Bug。如果是這種情況,請儘速通知 Microsoft。
正在修復邏輯損壞

在資訊儲存庫或資料庫引擎中,可能會發生邏輯損毀。因為邏輯損毀可能會導致嚴重資料損毀,做不略過報告的錯誤。

您可以使用 [Isinteg 公用程式來簽入問題的資訊儲存庫或 Eseutil 公用程式來簽入在資料庫引擎中的問題。請注意您應該使用這些公用程式只能作為最後手段之後您嘗試要從備份還原系統。

Isinteg 公用程式

資訊儲存區完整性檢查程式 (Isinteg) 尋找並排除公用與私人資訊儲存庫資料庫的錯誤。 這些錯誤可能會導致無法啟動資訊儲存庫,或防止使用者登入,並接收、 開啟,或刪除電子郵件。

Isinteg 不為了使用標準的資訊儲存區維護的一部份 ; 它為了協助在嚴重損壞修復的情況下而提供。比方說,您可以執行 Isinteg 當他們取得系統當機後同步修正在記憶體中的資訊儲存區計數器。

因為 Isinteg 公用程式的運作邏輯結構描述層級,它可以復原 Eseutil 公用程式將無法復原的資料。 這是因為邏輯結構描述層級,有效的實體結構描述層級 Eseutil 公用程式的資料可以是語意上無效。Isinteg,讓您可以追蹤復原的進度會在應用程式記錄檔,在 [事件檢視器中記錄資訊。

Isinteg 公用程式會執行兩個主要工作:
  • 它將資訊儲存庫修補程式之後從離線備份還原時。
  • 它會測試,並選擇性地在資訊儲存庫會修正錯誤。
如需有關疑難排解資訊儲存庫和 Isinteg 公用程式的詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
182081ISINTEG 公用程式 XADM: 描述

或在 Support\Utils 目錄中,Exchange Server 5.5 光碟片上看到 Isinteg.rtf 文件。

Eseutil 公用程式

Eseutil 公用程式會檢查資料庫資料表和資料錄的結構和重組、 修復,並檢查資訊儲存庫及目錄的完整性。因為執行 Eseutil 在修復模式會只是刪除損毀的頁面,只有在您嘗試要從備份還原之後,請使用這個公用程式。

如需有關 Eseutil 公用程式的詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
192185XADM: 如何重組 ESEUTIL 公用程式 (Eseutil.exe)
或請參閱壓縮 Support\Utils 目錄中的光碟上 Exchange 5.5 Eseutil.rtf 件。

資料備份

由於 Exchange 伺服器是以交易為基礎,避免執行檔案層級或離線備份資料庫檔案在磁碟上。最好的方法,確定您在包括還尚未的交易系統中保留的所有資料清除至磁碟,是執行定期的線上備份。

線上備份

線上備份可讓您備份 Exchange Server 資料庫到備份媒體而不關閉伺服器。當 Exchange 伺服器正在執行的線上備份包括的資訊] 存放區的所有服務繼續正常執行。頁面繼續更新記憶體中而轉移到磁碟上的資料庫檔案、 交易都會記錄在記錄檔] 檔案,並檢查點檔案仍會繼續沿著移動。

Exchange 使用.pat (補充程式) 檔案,其中會持續追蹤的已更新的網頁執行備份軟體,以確保在備份期間修改的網頁也備份最多時。有兩個.pat 檔案,私人資訊儲存庫的 Priv.pat 和 Pub.pat 用於公用資訊儲存庫。

當您執行線上備份時,定期檢查應用程式記錄檔,在 [事件檢視器,以確定備份已順利完成。

線上備份的程序

備份程式,例如 Windows NT 備份 (Ntbackup.exe) 會執行完整備份或複本備份期間下列事項:
  1. 讓資料庫的複本,會到磁帶。
  2. 將頁面的子集.pat 的檔案後複製到磁帶變更的頁面。
  3. 重新命名 Edb x.log,其中 x 是以十六進位格式的記錄檔產生號碼,而會建立新的記錄產生目前 Edb.log 檔。
  4. 在完整備份備份.pat 檔案以及所有記錄檔 (除了新 Edb.log) 到磁帶上,檢查點之後。在複製備份會備份所有的記錄檔之前和之後檢查點。
  5. 完整備份中刪除比檢查點還舊的交易記錄檔。複製備份中不會刪除任何交易記錄檔。
備份程式會執行增量備份或差異式備份期間下列事項:
  1. 在一個增量備份,提出一份記錄檔,並會到磁帶。差異式備份中會將資料庫複製到磁帶。
  2. 將頁面的子集.pat 的檔案後複製到磁帶變更的頁面。
  3. 目前的 Edb.log 存檔重新命名 Edb x.log,並建立新的記錄產生。
  4. 備份.pat 檔案和所有記錄檔檢查點包括到磁帶的新 Edb.log 前後。
  5. 增量備份中刪除比檢查點還舊的交易記錄檔。差異式備份中不會刪除任何記錄檔。

離線備份

請試著避免執行離線備份。在線上備份備份程式為您,管理檔案,但是離線備份是手動、 耗費人力的程序,容易發生人為錯誤。此外,離線備份中無法驗證資料庫的每一頁總和檢查碼。 線上備份是單一最有價值的工具,來偵測損毀,並執行資料復原。

取得更多資訊有關備份按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件:
191357XADM: 從完整線上備份還原單一資料庫
179308XADM: 如何確認 Exchange 線上備份

屬性

文章編號: 271987 - 上次校閱: 2006年10月28日 - 版次: 5.1
這篇文章中的資訊適用於:
  • Microsoft Exchange Server 4.0 Standard Edition
  • Microsoft Exchange Server 5.0 Standard Edition
  • Microsoft Exchange Server 5.5 Standard Edition
關鍵字:?
kbmt kbinfo KB271987 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:271987
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com