了解公用資料夾複寫

 

適用版本: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上次修改主題的時間: 2008-07-14

公用資料夾複寫是公用資料夾內容與公用資料夾階層針對效能與容錯等目的而在多部伺服器之間進行複寫的程序。當位於不同伺服器上的多個公用資料夾資料庫支援單一公用資料夾樹狀目錄時,Microsoft Exchange 會使用公用資料夾複寫維持資料的同步。公用資料夾內容僅存在於依設定具有特定資料夾之複本的 Exchange 儲存區中。內容與階層資訊會個別進行複寫。每個公用資料夾資料庫都會保存一份階層複本,其中包含一份清單,列出保有每個資料夾之內容複本的其他公用資料夾資料庫。內容複本僅存在於您所指定的公用資料夾資料庫上。如需如何設定公用資料夾複寫的相關資訊,請參閱如何設定公用資料夾複寫

公用資料夾資料庫會複寫兩種類型的公用資料夾資訊:

  • 階層   當資料夾內容與資料夾的相關組織資訊有所修改時,即會進行階層複寫。所有公用資料夾資料庫皆有階層資訊的複本。修改下列公用資料夾資訊後,會進行階層複寫:

    • 資料夾名稱
    • 複本清單
    • 資料夾在公用資料夾樹狀目錄中的位置 (包括任何父系資料夾與子系資料夾)
    • 權限
      note附註:
      對擁有郵件功能的公用資料夾變更電子郵件地址時,並不會進行階層複寫。電子郵件地址儲存在 Active Directory 目錄服務中的目錄物件上。只有在變更公用儲存區資料庫內的內容時,才會進行階層複寫。
  • 內容   內容複寫會在郵件傳送至公用資料夾或資料新增時執行。例如,將電子郵件傳送至擁有郵件功能的公用資料夾或新增組織表單至公用資料夾時,即會進行內容複寫。若要複寫內容,則必須設定資料夾,將它的內容複寫至特定公用資料夾資料庫或資料庫清單。只有您指定的資料庫才會擁有內容複本。含有內容的資料夾複本稱為內容複本

公用資料夾複寫的運作方式

當您修改公用資料夾或其內容時,已變更之公用資料夾複本所在的公用資料夾資料庫,即會傳送說明性的電子郵件至包含公用資料夾複本的其他公用資料夾資料庫。為降低您的網路流量,Exchange 會將多項變更的相關資訊納入同一則郵件中。這些郵件所含的資訊量取決於您為複寫郵件所設定的大小限制。只要郵件超出指定的大小限制,即會以個別複寫郵件的形式傳送。Exchange 會以路由傳送其他電子郵件的相同方式,來路由傳送這些複寫郵件。如需公用資料夾路由的相關資訊,請參閱將郵件路由傳送至公用資料夾

若您對公用資料夾階層所做的變更會影響到數個資料夾,複寫程序即可能需要非常大的網路頻寬。例如,若要在不同的伺服器之間移動公用資料夾,您必須先在要移入公用資料夾的伺服器上建立新的複本,然後等待階層變更複寫至原始伺服器,再等待內容複寫至新的複本。在複本同步後,您必須移除舊有伺服器上的複本。即使是移除舊有伺服器上的複本也會產生網路流量,因為移除複本時必須像階層變更一般進行複寫。若想深入了解公用資料夾階層的這些變更對系統可能有哪些影響,請參閱此主題稍後說明的「狀態要求與狀態訊息」。

基本階層與內容複寫程序

下列圖表與解說文字說明公用資料夾階層與公用資料夾內容據以進行複寫的基本程序。

基本程序公用資料夾複寫

處理程序的詳細資料如下:

  1. 使用者修改公用資料夾。
  2. 本機公用資料夾資料庫記錄變更。
  3. 在下一個排定的複寫週期中 (由您為公用資料夾資料庫設定的複寫間隔所決定),公用資料夾資料庫會查看資料夾內容,以判定另有哪些伺服器包含該資料夾的複本。若有其他複本存在,資料庫將會決定必須對其複寫的資訊。這項資訊會成為複本的更新。
    公用資料夾複寫以物件為基礎。若物件的某項內容有所修改,即必須複寫整個物件。複寫變更的資料庫不能假設所接收的複本皆是最新的,因此必須複寫整個物件。不同複寫類型的因果關係說明如下:
    • 階層複寫   當建立或刪除公用資料夾,或是變更公用資料夾的內容時 (例如變更複本清單、用戶端權限、描述、管理注意事項或儲存限制),即會進行新階層變更的複寫。
    • 內容複寫   若張貼新郵件或修改現有郵件,其更新範圍將遍及整則郵件及其內容。
  4. 公用資料夾資料庫會指派更新的變更數目。
    資料夾將更新複寫至其他伺服器時,會將變更數目附加在更新中。接著,接收伺服器會根據變更數目判斷更新是否屬於新變更,以及伺服器是否遺失任何資料。
  5. 公用資料夾資料庫會將更新封裝到複寫郵件中。郵件中所有更新的變更數目,稱為變更數目集 (CNSet*)*。
    除了更新以外,公用資料夾資料庫也會封裝複寫狀態表格中各個資料夾項目的資訊,包括先前套用至複本的 CNSet。如需複寫狀態表格的相關資訊,請參閱此主題稍後的「複寫狀態表格」。
  6. 為減少郵件流量,公用資料夾資料庫會將多項階層更新封裝到單一複寫郵件中。同樣地,資料庫也會將相同資料夾的多項內容更新封裝到單一複寫郵件中。但資料庫無法將階層更新封裝到與內容更新相同的複寫郵件中,且每則內容複寫郵件只能包含單一資料夾的更新。
  7. 公用資料夾資料庫會將複寫郵件傳送至其他包含已更新資料夾之複本的公用資料夾資料庫。此資料庫會傳送該郵件,以及前次複寫週期後所封裝的任何其他郵件。
    傳遞複寫郵件時,公用資料夾資料庫必須依賴 Exchange 中的內部路由元件。資料庫不會嘗試根據拓撲詳細資料分割複寫郵件。假設資料夾的內容有所修改,且該資料夾另有五個複本,則資料庫會產生單一複寫郵件,並將其傳送至這些複本所在的這五個資料庫。路由元件會決定如何路由傳送及傳遞郵件。
  8. 公用資料夾資料庫會接收複寫郵件。
  9. 接收端公用資料夾資料庫會解壓縮複寫郵件中的更新與狀態資訊。
  10. 資料庫會比較最新更新的變更數目與它現有的變更數目清單,然後識別它未曾接收的更新。
  11. 資料庫會將最新更新套用至適當的資料夾複本。
  12. 對於每份更新的複本,資料庫都會以複寫郵件中目前更新的變更數目與資料夾狀態資訊,來更新複寫狀態表格。
    若複寫狀態表格中的資訊指出已有其他 CNSet 套用至資料夾的其他複本,而非此資料庫上的複本,資料庫即會在名為回填陣列的位置中記錄缺少的 CNSet,然後準備傳送回填要求。如需回填要求的相關資訊,請參閱此主題稍後的「回填要求與回填訊息」。

複寫郵件

複寫程序會使用公用資料夾資料庫的 Active Directory 屬性,而非個別公用資料夾的 Active Directory 屬性。個別公用資料夾的 Active Directory 屬性僅適用於將一般電子郵件傳入或傳出資料夾。公用資料夾資料庫物件會自動進行設定與維護,並存放於 Active Directory 的 [組態] 容器中。

複寫郵件與其他電子郵件的不同之處在於,Exchange 會將複寫郵件視為系統郵件。這表示,複寫郵件不受制於套用至使用者電子郵件的限制 (例如大小與傳遞的限制)。

下表列出 Exchange 所使用的不同複寫郵件類型。

note附註:
下表列示於括弧中的值是郵件類型的十六進位表示法。這些表示法用於事件與記錄中。您可以使用十六進位的值進行複寫問題的疑難排解。

公用資料夾複寫郵件的類型及其使用時機

郵件類型* 使用時機

階層 (0x2)

複寫階層從本機公用資料夾資料庫變更為支援相同階層的所有其他公用資料夾資料庫。雖然 Exchange 會在內容複本的變更之外獨立處理階層變更,但它仍會將階層視為其他資料夾一般。在某些事件訊息與其他操作中,Exchange 會將階層視為資料夾 1-1。

內容 (0x4)

複寫內容從某個複本變更為該資料夾的所有其他內容複本。內容郵件僅包含套用至單一資料夾的資訊。

回填要求 (0x8)

從其他資料庫要求 CNSet 中的遺失資料。這包含階層及內容變更數目。

回填回應 (0x80000002 或 0x80000004)

將 CNSet 中的遺失資料傳送至要求遺失更新的資料庫。

狀態 (0x10)

將資料夾目前的 CNSet 傳送至該資料夾的一或多個複本。這包含階層及內容變更數目。

狀態要求 (0x20)

要求複寫 CNSet 或傳回狀態訊息。這包含階層及內容變更數目。

複寫狀態表格

每個公用資料夾資料庫皆會維護一個複寫狀態表格,以追蹤資料庫中每個複本的狀態。複寫狀態表格會儲存下列資訊:

  • 建構各複本之更新的必要基本資訊。
  • 源自本機資料庫之每個複本前次更新的相關資訊,包括更新的變更數目。
  • 已套用至資料夾之所有其他已知複本的更新群組。變更數目可識別每個群組中的更新。群組中所有更新的變更數目集稱為 CNSet。更新資訊會在複寫程序中從某個資料庫傳送至其他資料庫。

下表提供複寫狀態表格的運作方式範例。在此範例中,伺服器 A 與 B 上的公用資料夾資料庫皆具有資料夾 Projects 的複本。在每部伺服器上,複寫狀態表格不但會追蹤該伺服器上的複本狀態,也會追蹤其他伺服器的複本狀態。使用這項資訊時,伺服器 A 將可判斷其 Projects 資料夾的複本是否與伺服器 B 上的 Projects 資料夾的複本同步。伺服器 B 也可依相同方式追蹤它與伺服器 A 的相對狀態。

伺服器 A 之複寫狀態表格中的資料範例

複本 資料

伺服器 A 上的 Projects 資料夾

(本機複本)

已傳送的前次更新:A-100

伺服器 B 上的 Projects 資料夾

已接收的 A-100

已接收的 B-50

伺服器 B 之複寫狀態表格中的資料範例

複本 資料

伺服器 A 上的 Projects 資料夾

已接收的 A-100

已接收的 B-50

伺服器 B 上的 Projects 資料夾

(本機複本)

已傳送的前次更新:B-50

藉由將含有內容複本的公用資料夾資料庫清單合併至複寫狀態表格中,每個公用資料夾資料庫將可判斷它與其他支援公用資料夾樹狀目錄的公用資料夾資料庫比較時的新舊程度為何。

回填要求與回填訊息

回填會在公用資料夾資料庫判斷它並未接收到已複寫的資料夾 (或階層) 的所有更新,因而必須從其他公用資料夾資料庫擷取遺失的更新時執行。

為簡化回填程序,Exchange 2007 會將遺失更新的相關資訊儲存在回填陣列中。

下列事件可警示公用資料夾資料庫必須回填的遺失更新:

  • 內送複寫郵件中的狀態資訊指出,公用資料夾資料庫上傳送郵件的複本中含有接收端資料庫上遺失的更新。接收端資料庫會識別遺失的變更數目,並將其儲存在回填陣列中。
  • 公用資料夾資料庫首次啟動。新資料庫會傳送狀態要求,以取得階層中其他資料庫的相關資訊。在對應的狀態訊息抵達後,資料庫即會填入其複寫狀態表格,並視需要填入回填陣列。回填陣列可同時包含資料庫必須儲存的階層與任何內容複本的項目。
  • 內送階層郵件指出新的內容複本將存放在公用資料夾資料庫中。新資料庫會傳送狀態要求,以取得階層中其他資料庫內的這項複本可用的內容相關資訊。在對應的狀態訊息抵達後,資料庫即會填入複寫狀態表格,並視需要填入回填陣列。

回填陣列會在指定的時間長度內儲存這項資訊 (稱為回填逾時)。遺失的更新若於此時段內隨後續的複寫郵件抵達,將會從回填陣列中移除。下表列出預設的回填逾時值,這些值取決於遺失的更新位於何處以及先前是否曾被要求。

用於回填要求的預設逾時

要求類型 本機 Active Directory 站台中的資料庫所儲存的內容 遠端 Active Directory 站台中的資料庫所儲存的內容

初始回填

6 小時

12 小時

第一次回填重試

12 小時

24 小時

後續的回填重試

24 小時

48 小時

若已超過回填逾時,但仍缺少更新,Exchange 即會建立一或多個回填要求,並決定要作為回填來源的伺服器。

為選取要作為回填來源的伺服器,Exchange 首先必須建立所有具有資料夾複本之伺服器的清單,然後根據下列條件順序排序清單:

  1. 根據伺服器狀態進行排序。將故障或無法使用的伺服器排到清單尾端。
  2. 根據慣用的回填伺服器 (若有的話) 進行排序。Exchange 會查看 Active Directory 中的公用資料夾資料庫物件,以尋找慣用的回填伺服器。此設定鮮少使用。在大部分的情況下,回填程序在 Exchange 自動選取回填伺服器時的運作效能最佳。Exchange 大部分的部署皆不需慣用的回填伺服器。Microsoft 產品支援服務可在您的部署需要時提供可設定慣用回填伺服器的指令碼。
  3. 根據傳輸成本進行排序 (最低至最高)。相同路由群組中的伺服器優先於遠端 Active Directory 站台中的伺服器。
  4. 根據 Exchange 版本進行排序 (最新到最舊)。
  5. 根據伺服器上可進行的必要變更數目進行排序 (最大到最小)。沒有任何遺失變更的伺服器會排除於清單之外。

若某部伺服器未具備所有必要的變更,Exchange 即會選取排序清單中的下一部伺服器,同時將回填要求傳送至該伺服器。此程序會不斷重複,直到所有變更皆受到要求為止。

若選取的伺服器無法回應回填要求,資料庫會將該伺服器標示為無法使用的伺服器,然後重複選取程序。將標示為無法使用的伺服器排到清單尾端。

狀態要求與狀態訊息

除了每個複寫郵件中的狀態資訊以外,Exchange 也會使用狀態要求與狀態訊息來判斷公用資料夾是否必須發出回填要求。

公用資料夾資料庫會在下列情況下傳送狀態要求:

  • 資料庫接到通知,指出含有資料夾複本的資料庫清單有所變更。例如,若您在清單中新增或移除資料庫,Exchange 即會使用階層更新郵件複寫這項變更。此時,資料庫會傳送狀態要求,以要求每個含有資料夾複本的資料庫進行回應。
  • 新的資料庫首次啟動。在此情況下,資料庫會要求公用資料夾階層的狀態。資料庫會傳送狀態要求,以要求每個支援公用資料夾樹狀目錄的資料庫進行回應。
  • 使用 Microsoft Windows 備份工具進行還原的資料庫,在還原完成後首次啟動。在此情況下,資料庫會要求公用資料夾階層的狀態,以及資料庫含有內容複本之所有資料夾的狀態。此狀態要求會列出二或三個資料庫作為必要的回應。必要回應是指支援此階層的資料庫,若根據內部選取程序,則為資料夾內容的可靠來源。

為指出傳送端資料庫上某特定資料夾的目前狀態,公用資料夾資料庫會在下列情況下傳送狀態訊息至其他資料庫:

  • 回應其他資料庫所傳送的狀態要求時。狀態訊息只會傳送至要求端資料庫,且只會在下列條件成立時傳送:
    • 接收狀態要求的資料庫位於必要回應的要求清單中。
    • 複寫狀態表格指出接收狀態要求的資料庫含有傳送要求之資料庫所缺少的更新。
  • 收到資料夾最近更新的 24 小時後,且沒有後續更新時。每當資料庫接收特定資料夾的更新時,計時器即會重設為 24 小時。此狀態訊息會傳送至其他含有已更新資料夾之複本的公用資料夾資料庫。

若公用資料夾資料庫收到狀態訊息,指出傳送端資料庫含有關於資料夾的更新資訊,接收端資料庫即會建立回填要求。若顯示的變更號碼相等 (或接收伺服器的變更號碼較新),則不會執行任何動作。例如,新的公用資料夾資料庫首次啟動時,會傳送狀態要求訊息至每個支援公用資料夾階層的資料庫。各個資料庫會以階層狀態的相關資訊加以回應 (如該資料庫所追蹤)。新的資料庫會使用這項資訊識別它應具備的複本 (若有的話)。接著,新的資料庫可視需要傳送回填要求,以填入複本內容。

複寫週期範例

下圖為簡化的雙伺服器案例,其中顯示您在新增內容複本至公用資料夾資料庫時所觸發的事件順序。此動作會將公用資料夾資料庫新增至資料夾的複本清單中。請注意,步驟的順序取決於多項因素,例如應用程式間隔的時間設定與路由拓撲。

新增公用資料夾複本到階層中

處理程序的詳細資料如下:

  1. 系統管理員在使用 ExServ01 時,將 ExServ01 新增至資料夾的複本清單中。
  2. ExServ01 會傳送一封階層郵件。
  3. ExServ02 將 ExServ01 新增至資料夾複本清單的本機複本中。
  4. ExServ01 傳送狀態要求至 ExServ02。
  5. ExServ02 傳送狀態訊息至包含資料夾之完整 CNSet 的 ExServ01。
  6. ExServ01 判定所有資料夾內容皆遺失,並在回填陣列中記錄適當的項目。
  7. 若在超過回填逾時後仍缺少內容,ExServ01 將會建立回填要求,並將其傳送至 ExServ02。
  8. ExServ02 編譯內容郵件,並將其傳送至 ExServ01。
  9. ExServ01 使用內送內容郵件更新資料夾內容與相關追蹤資訊。
  10. 若仍缺少變更號碼,ExServ01 會等待 24 小時,然後傳送更新的回填要求。若有 ExServ02 以外的伺服器可使用,則 ExServ01 可傳送要求至該伺服器。

下圖為簡化的雙伺服器案例,其中顯示您在移除公用資料夾資料庫中的複本時所觸發的事件順序。(此動作會從資料夾的複本清單中移除公用資料夾資料庫。)請注意,步驟的順序取決於多項因素,例如拓撲中的伺服器數目。

刪除公用資料夾資料庫中的複本

處理程序的詳細資料如下:

  1. 系統管理員在使用 ExServ01 時,從資料夾的複本清單中移除 ExServ01。
  2. ExServ01 將其複本 (ExServ01 上的資料夾複本) 標示為刪除擱置。
    用戶端無法再使用此資料庫存取資料夾。
  3. ExServ01 會傳送一封階層郵件。
  4. ExServ02 更新其資料夾複本清單的複本,指出該資料夾在 ExServ01 上處於刪除擱置狀態。
    ExServ02 不會再將尋找此資料夾的用戶端導向 ExServ01。
  5. ExServ01 傳送狀態要求至 ExServ02。
  6. ExServ02 傳送狀態訊息至 ExServ01。若 ExServ02 上的複本不是最新的,ExServ02 會在回填陣列中存放適當的項目。ExServ02 會在五分鐘內傳送對應的回填要求至 ExServ01。
  7. ExServ01 會檢查 ExServ02 上的資料夾複本是否包含刪除擱置複本所執行的所有資訊。若未包含,ExServ01 將會傳送適當的內容更新,並回到步驟 5。否則,ExServ01 會繼續進行步驟 8。
    此程序可確保只要有其他複本存在,即不會因為刪除單一複本而遺失內容。
  8. ExServ01 將其複本標示為「立即刪除」。下一個維護週期將會移除 ExServ01 中的複本。
  9. ExServ01 會傳送一封階層郵件。
  10. ExServ02 從它在資料夾複本清單的複本中移除 ExServ01。

執行複寫的最佳作法

Exchange 中的公用資料夾複寫有時是十分耗費資源的作業。進行複寫時必須使用網路、CPU 與磁碟資源。若能執行適當的解決方案而提高公用資料夾複寫的效能 (尤其在重度公用資料夾使用量的組織中),將可讓您大幅改善 Exchange 組織中的網路、CPU 與磁碟負載。

一般而言,儘可能減少組織中的複寫作業,是最理想的作法。降低複寫需求,即可減少在網路間傳輸的資料量。此外,儘可能減少複寫作業,將有助於您確定多名使用者較不致於存取多個複本上不同版本的資料。但請注意,在減少複寫作業後,公用資料夾資料的可用性也會因此降低,因為用戶端在公用資料夾資料庫失效後所能使用的資料夾複本也減少了。若特定公用資料夾中的資料必須保有大規模的可用性,您即可能必須進行較多複寫作業。

公用資料夾複寫與連續複寫

連續複寫與公用資料夾複寫是 Exchange 中內建的兩種非常不同的複寫形式。受限於連續複寫與公用資料夾複寫之間的交互操作性限制,因此有供公用資料夾複寫與連續複寫合併之用的特定準則。若要檢閱此準則,請參閱規劃叢集連續複寫規劃本機連續複寫待命連續複寫

相關資訊

如要深入了解公用資料夾,請參閱了解公用資料夾

如需如何管理公用資料夾的相關資訊,請參閱管理公用資料夾

如需如何管理公用資料夾資料庫的相關資訊,請參閱管理公用資料夾資料庫

若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.