在 Exchange Server 中管理資料庫可用性群組

DAG) (資料庫可用性群組是一組最多 16 部 Exchange 信箱伺服器,可從資料庫/伺服器/網路失敗中自動復原資料庫層級。 DAG 使用連續複寫與 Windows 容錯移轉叢集技術子集,提供高可用性與站台回覆性。 DAG 中的信箱伺服器可以監視彼此是否出現失敗情況。 當信箱伺服器新增至 DAG 時,該伺服器會與 DAG 中的其他伺服器搭配使用,以提供資料庫失敗時的自動資料庫層級復原。

DAG 在建立時一開始是空的。 當您新增第一個伺服器到 DAG 時,就會自動為 DAG 建立容錯移轉叢集。 此外,還會初始化監視伺服器的網路或伺服器失敗的基礎結構。 然後,容錯移轉叢集活動訊號機制和叢集資料庫會用來追蹤和管理可能快速變更的 DAG 相關資訊,例如資料庫掛接狀態、複寫狀態和最後掛接的位置。

建立 DAG

您可以使用 Exchange 系統管理中心的 [新增資料庫可用性群組精靈] (EAC) ,或在 Exchange 管理命令介面中執行 New-DatabaseAvailabilityGroup Cmdlet 來建立 DAG。 當您建立 DAG 時,您會提供 DAG 的名稱,以及選擇性的見證伺服器和見證目錄設定。 此外,還會使用靜態 IP 地址,或允許 DAG 使用動態主機設定通訊協定 (DHCP) 自動指派所需的 IP 位址 (DHCP),將一或多個 IP 位址指派給 DAG。 您可以使用 DatabaseAvailabilityGroupIpAddresses 參數,手動將 IP 位址指派給 DAG。 如果您省略此參數,則 DAG 會嘗試使用網路上的 DHCP 伺服器來取得 IP 地址。

如果您要建立包含執行 Windows Server 2012 R2 之信箱伺服器的 DAG,您也可以選擇在沒有叢集系統管理存取點的情況下建立 DAG。 在此情況下,叢集在 Active Directory 中不會有叢集名稱物件 (CNO) ,而且叢集核心資源群組不會包含網路名稱資源或 IP 位址資源。

如需如何建立 DAG 的詳細步驟,請參閱 建立資料庫可用性群組

當您建立 DAG 時,會在 Active Directory 中建立空的物件,代表具有您指定名稱的 DAG,以及 msExchMDBAvailabilityGroup 的物件類別。

DAG 會使用 Windows Server 2008 R2 或更新版本中的 Windows 容錯移轉叢集技術子集,例如叢集活動訊號、叢集網路和叢集資料庫 (,以儲存變更或可快速變更的資料,例如資料庫狀態從主動變更為被動或反向,或從掛接到卸載或反向) 。 因此,您只能在安裝在支援 Windows 版本的 Exchange 信箱伺服器上建立 DAG,其中包含 Windows 容錯移轉叢集。

注意事項

由 DAG 建立及使用的容錯移轉叢集必須供 DAG 專用。 該叢集不可供任何其他高可用性解決方案或任何其他目的使用。 例如,容錯移轉叢集不可用來叢集其他應用程式或服務。 不支援針對非 DAG 目的使用 DAG 的基礎容錯移轉叢集。

DAG 見證伺服器與見證目錄

當您建立 DAG 時,您必須為 DAG 指定一個在 Active Directory 樹系中唯一不超過 15 個字元的名稱。 此外,每個 DAG 都會設定見證伺服器和見證目錄。 只有在 DAG 中有偶數的成員數目,而且僅供仲裁之用時,才會使用見證伺服器及其目錄。 您不需要事先建立見證目錄。 Exchange 會自動在見證伺服器上為您建立和保護目錄。 見證目錄不應該用於 DAG 見證伺服器以外的任何用途。

注意事項

在資料庫鏡像拓撲中,您可以擁有名為「見證」的第三部伺服器。 見證伺服器可讓您從主體自動容錯移轉至鏡像伺服器,反之亦然。 不同于主體和鏡像伺服器,見證伺服器不會提供資料庫。 見證的角色是確認指定的夥伴伺服器是否已啟動並正常運作。 支援自動容錯移轉是見證伺服器的唯一功能,它會識別哪些伺服器保存主體複本,以及哪一部伺服器保存資料庫的鏡像複本。

見證伺服器的需求如下:

  • 見證伺服器不得為 DAG 的成員。

  • 見證伺服器必須與 DAG 位於相同的 Active Directory 樹系中。

  • 見證伺服器必須執行 Windows Server 2008 或更新版本。

  • 一個伺服器可以作為多個 DAG 的見證。 不過,每個 DAG 需要它自己的見證目錄。

無論哪部伺服器作為見證伺服器使用,如果在預定的見證伺服器上啟用 Windows 防火牆,您都必須啟用檔案和印表機共用的 Windows 防火牆例外狀況。 見證伺服器使用 SMB 埠 445。

重要事項

如果您指定的見證伺服器不是 Exchange 2010 或更新版本的伺服器,您必須在建立 DAG 之前,先將 Exchange 信任子系統通用安全性群組 (USG) 新增至見證伺服器上的本機 Administrators 群組。 為確保 Exchange 可依需求在見證伺服器上建立目錄與共用,這些安全性權限是不可或缺的。

見證伺服器和見證目錄都不需要具備容錯能力,或使用任何形式的備援或具備高可用性。 不需要為見證伺服器使用叢集檔案伺服器,或為見證伺服器使用任何其他形式的恢復功能。 這樣做有幾個原因。 在需要見證伺服器之前,必須使用幾個較大的 DAG (例如,六個或更多成員) 來處理失敗。 因爲六個成員的 DAG 最多可以容忍兩個 Voter 失敗而不遺失仲裁,因此在需要使用見證伺服器來維護仲裁之前,它最多可處理三個 Voter 的失敗。 而且,如果發生影響到目前見證伺服器的失敗 (例如,由於硬體失敗而遺失見證伺服器),則可以使用 Set-DatabaseAvailabilityGroup Cmdlet 來設定新的見證伺服器和見證目錄 (只要您有仲裁)。

注意事項

如果見證伺服器遺失其儲存裝置,或者如果某人變更了見證目錄或共用權限,您還可以使用 Set-DatabaseAvailabilityGroup Cmdlet 在原始位置設定見證伺服器和見證目錄。

見證伺服器位置的考量

DAG 見證伺服器的位置取決於您的業務需求及貴組織可用的選項。 Exchange 現在支援不建議或無法在 Exchange 2010 中使用的新 DAG 組態選項。 這些選項包括使用第三個位置,例如第三個資料中心、分公司或 Microsoft Azure 虛擬網路。

下表列出對於不同部署案例的一般見證伺服器位置建議。

部署案例 建議
在單一資料中心內部署單一 DAG 將見證伺服器放在和 DAG 成員一樣的資料中心內
跨兩個資料中心來部署單一 DAG;沒有其他可用位置 在 Microsoft Azure 虛擬網路上找出見證伺服器以啟用自動資料中心容錯移轉,或

將見證伺服器放在主要資料中心內

在單一資料中心內部署多個 DAG 將見證伺服器放在和 DAG 成員一樣的資料中心內。 其他選項包括:
  • 對多個 DAG 使用同一個見證伺服器
  • 使用 DAG 成員作為其他 DAG 的見證伺服器
跨兩個資料中心來部署多個 DAG 在 Microsoft Azure 虛擬網路上找出見證伺服器以啟用自動資料中心容錯移轉,或

將見證伺服器放在對每個 DAG 而言都是主要資料中心的資料中心內。 其他選項包括:

  • 對多個 DAG 使用同一個見證伺服器
  • 使用 DAG 成員作為其他 DAG 的見證伺服器
跨三個以上的資料中心部署單一或多個 DAG 在此組態中,見證伺服器應放在您要讓大多數仲裁投票存在於的資料中心內。

當 DAG 部署到兩個資料中心時,您現在可以使用第三個位置來裝載見證伺服器。 如果您的組織有第三個位置,其網路基礎結構與影響您 DAG 部署所在之兩個資料中心的網路失敗隔離,則您可以將 DAG 的見證伺服器部署到該第三個位置,藉此設定您的 DAG,以便自動將資料庫容錯移轉至另一個資料中心,以回應資料中心層級的失敗事件。 如果您的組織只有兩個實體位置,您可以使用 Microsoft Azure 虛擬網路作為第三個位置來放置見證伺服器。

在 DAG 建立期間指定見證伺服器和見證目錄

當您建立 DAG 時,必須提供 DAG 的名稱。 您也可以選擇性地指定見證伺服器與見證目錄。

當您建立 DAG 時,可以使用下列選項和行為組合:

  • 您只能指定 DAG 的名稱,並將 [見證伺服器 ] 和 [ 見證目錄] 字 段保留空白。 在此案例中,精靈會在本機 Active Directory 網站中搜尋未安裝信箱伺服器的用戶端存取伺服器,並自動建立預設目錄 (%SystemDrive:\DAGFileShareWitnesses\ <DAGFQDN>) ,並在該伺服器上使用該用戶端存取伺服器作為見證伺服器並使用該用戶端存取伺服器的預設共用 <) (DAGFQDN> 。 例如,請考慮作業系統已安裝到磁片磁碟機 C 上的見證伺服器 CAS3。contoso.com 網域中名為 DAG1 的 DAG 會使用 C:\DAGFileShareWitnesses\DAG1.contoso.com 的預設見證目錄,其會共用為 \CAS3\DAG1.contoso.com。

  • 您可以指定 DAG 的名稱、您要使用的見證伺服器、以及您要在見證伺服器上建立並共用的目錄。

  • 您可以指定 DAG 的名稱和要使用的見證伺服器,然後將 [見證目錄] 欄位保留空白。 在此情況下,此精靈會在指定的見證伺服器上建立預設目錄。

  • 您可以指定 DAG 的名稱、將 [見證伺服器] 欄位保留空白,並指定您要在見證伺服器上建立及共用的目錄。 在此情況下,此精靈會搜尋未安裝信箱伺服器的用戶端存取伺服器,然後自動在該伺服器上建立指定的 DAG 並加以共用,並以該用戶端存取伺服器作為見證伺服器。

形成 DAG 時,其最初會使用「節點多數」仲裁模型。 當新增第二個 Mailbox Server 到 DAG 時,仲裁會自動變更為「節點和檔案共用多數」仲裁模型。 發生此變更時,DAG 的叢集會開始使用見證伺服器以維護仲裁。 如果見證目錄不存在,Exchange 會自動建立及共用該目錄,並為 DAG 的 CNO 電腦帳戶佈建具有完整控制權限的共用。

注意事項

不支援使用為分散式檔案系統 (DFS) 名稱空間一部分的檔案分享。

如果建立 DAG 之前已在見證伺服器上啟用 Windows 防火牆,可能會封鎖 DAG 的建立。 Exchange 使用 Windows Management Instrumentation (WMI) 在見證伺服器上建立目錄及檔案共用。 如果 Windows 防火牆已在見證伺服器上啟用,且沒有為 WMI 設定任何防火牆例外狀況,則 New-DatabaseAvailabilityGroup Cmdlet 會因錯誤而失敗。 如果您指定見證伺服器,而不是見證目錄,您會收到下列錯誤訊息:

The task was unable to create the default witness directory on server <Server Name>. Please manually specify a witness directory.

如果您指定見證伺服器和見證目錄,您會收到下列警告訊息:

Unable to access file shares on witness server '<ServerName>'. Until this problem is corrected, the database availability group may be more vulnerable to failures. You can use the Set-DatabaseAvailabilityGroup cmdlet to try the operation again. Error: The network path was not found.

如果是在建立 DAG 之後但在新增伺服器之前,於見證伺服器上啟用 Windows 防火牆,則可能會無法新增或移除 DAG 成員。 如果在見證伺服器上啟用 Windows 防火牆,而且沒有針對 WMI 設定防火牆例外狀況, Add-DatabaseAvailabilityGroupServer Cmdlet 會顯示下列警告訊息:

Failed to create file share witness directory 'C:\DAGFileShareWitnesses\DAG_FQDN' on witness server '<ServerName>'. Until this problem is corrected, the database availability group may be more vulnerable to failures. You can use the Set-DatabaseAvailabilityGroup cmdlet to try the operation again. Error: WMI exception occurred on server '<ServerName>': The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)

若要解決上述錯誤和警告,請執行下列其中一個步驟:

  • 在見證伺服器上手動建立見證目錄與共用,並將目錄與共用的 DAG 完全控制指派給 CNO。

  • 在 Windows 防火牆中啟用 WMI 例外狀況。

  • 停用 Windows 防火牆。

DAG 成員資格

建立 DAG 之後,您可以使用 EAC 中的 [管理資料庫可用性群組精靈] 或 Exchange 管理命令介面中的 Add-DatabaseAvailabilityGroupServerRemove-DatabaseAvailabilityGroupServer Cmdlet,在 DAG 中新增或移除伺服器。 如需如何管理 DAG 成員資格的詳細步驟,請 參閱管理資料庫可用性群組成員資格

注意事項

每個屬於 DAG 成員的 Mailbox Server 也都會是 DAG 所使用之基礎叢集中的節點。 因此,信箱伺服器在任何時間點都只能是一個 DAG 的成員。

如果新增到 DAG 的 Mailbox Server 未安裝容錯移轉叢集元件,則會使用新增伺服器 (例如, Add-DatabaseAvailabilityGroupServer 指令程式或「管理資料庫可用性群組」精靈) 的方法來安裝容錯移轉叢集功能。

將第一部信箱伺服器新增至 DAG 時,會發生下列事件:

  • 安裝 Windows 容錯移轉叢集元件 (如果尚未安裝)。

  • 使用 DAG 的名稱建立容錯移轉叢集。 此容錯移轉叢集僅供 DAG 使用,而且該叢集必須供 DAG 專用。 不支援使用該叢集供所有其他目的之用。

  • 在預設的電腦容器中建立 CNO。

  • DAG 名稱和 IP 位址在網域名稱系統 (DNS) 中登錄為主機 (A) 記錄。

  • 將伺服器新增到 Active Directory 中的 DAG 物件。

  • 以新增之伺服器上裝載的資料庫資訊更新叢集資料庫。

在大型或多網站環境中,特別是將 DAG 擴充到多個 Active Directory 站台的環境時,必須等待包含第一個 DAG 成員之 DAG 物件的 Active Directory 複寫完成。 如果未在整個環境中複寫此 Active Directory 物件,則新增第二部伺服器可能會導致新的叢集 (,以及為 DAG 建立新的 CNO) 。 此建立是因為 DAG 物件從所加入的第二個成員的觀點來看是空的,因此即使這些物件已經存在,也會導致 Add-DatabaseAvailabilityGroupServer Cmdlet 建立叢集和 DAG 的 CNO。 若要確認已複寫包含第一個 DAG 伺服器的 DAG 物件,請在正在新增的第二個伺服器上使用 Get-DatabaseAvailabilityGroup Cmdlet,確定您所新增的第一個伺服器已列為 DAG 的成員。

將第二部和後續伺服器新增至 DAG 時,會發生下列事件:

  • 將伺服器加入 DAG 的 Windows 容錯移轉叢集。

  • 自動調整仲裁模型:

    • 在含奇數成員的 DAG 中使用「節點多數」仲裁模型。

    • 在含偶數成員的 DAG 中使用「節點和檔案共用多數」仲裁模型。

  • 在需要時由 Exchange 自動建立見證目錄和共用。

  • 將伺服器新增到 Active Directory 中的 DAG 物件。

  • 使用裝載資料庫的相關資訊更新叢集資料庫。

注意事項

仲裁模型變更應該會自動發生。 不過,如果仲裁模型不會自動變更為適當的模型,您可以只使用Identity參數來執行Set-DatabaseAvailabilityGroup Cmdlet,以便在 DAG 的仲裁設定中更正。

預先接移 DAG 的叢集名稱物件

CNO 是在 Active Directory 中建立,且與叢集之名稱資源關聯的電腦帳戶。 叢集的名稱資源會繫結至 CNO,CNO 是已啟用 Kerberos 功能的物件,用來當作叢集的識別碼並提供叢集的安全性內容。 當新增第一個成員至 DAG 時,會執行 DAG 之基礎叢集和該叢集之 CNO 的形成。 第一個伺服器新增至 DAG 時,遠端 PowerShell 會在新增時聯絡 Mailbox 伺服器上的 Microsoft Exchange 複寫服務。 Microsoft Exchange 複寫服務會安裝容錯移轉叢集功能 (如果尚未安裝),並開始叢集建立程序。 Microsoft Exchange 複寫服務會在 LOCAL SYSTEM 安全性內容下執行,且叢集建立就是在這個內容下執行。

注意

如果您的 DAG 成員正執行 Windows Server 2012,您必須在新增第一個伺服器到 DAG 之前先預先接移 CNO。 如果您的 DAG 成員Windows Server 2012 R2 執行,而且您在沒有叢集系統管理存取點的情況下建立 DAG,則不會建立 CNO,而且您不需要為 DAG 建立 CNO。

在電腦帳戶建立受到限制的環境中,或者電腦帳戶是在預設電腦容器以外的容器中建立時,您可以預先設置並佈建 CNO。 您可以建立並停用 CNO 的電腦帳戶,然後執行下列其中一個步驟:

  • 指派電腦帳戶的完全控制權給您新增至 DAG 的第一個信箱伺服器的電腦帳戶。

  • 將電腦帳戶的完全控制指派給 Exchange 受信任子系統 USG.

將電腦帳戶的完全控制指派給要新增至 DAG 之第一個信箱伺服器的電腦帳戶,可確保 LOCAL SYSTEM 安全性內容能夠管理預先設置的電腦帳戶。 可以改用將電腦帳戶的完全控制指派給 Exchange 受信任子系統 USG,因為 Exchange 受信任子系統 USG 包含網域中所有 Exchange Server 的電腦帳戶。

如需如何為 DAG 預先設置及佈建 CNO 的詳細步驟,請參閱針對資料庫可用性群組預先接移叢集名稱物件

從 DAG 移除伺服器

您可以使用 EAC 中的 [管理資料庫可用性群組精靈] 或 Exchange 管理命令介面中的 Remove-DatabaseAvailabilityGroupServer Cmdlet,從 DAG 移除信箱伺服器。 在將 Mailbox Server 從 DAG 移除之前,必須先從伺服器移除所有複寫的信箱資料庫。 如果您嘗試從 DAG 移除含有複寫信箱資料庫的郵件伺服器,該工作會失敗。

在某些情況下,您必須先從 DAG 移除郵件伺服器,才能執行某些作業。 這些情況包括:

  • 執行伺服器復原作業:如果屬於 DAG 成員的信箱伺服器遺失,或是失敗且無法復原且需要取代,您可以使用 安裝程式 /m:RecoverServer 參數來執行伺服器復原作業。 不過,您必須先使用 Remove-DatabaseAvailabilityGroupServer Cmdlet 搭配 ConfigurationOnly 參數,從 DAG 移除伺服器,才能執行復原作業。

  • 移除資料庫可用性群組:在某些情況下,您可能需要移除 DAG (例如停用協力廠商複寫模式) 。 如果您需要移除 DAG,必須先從 DAG 移除所有伺服器。 如果您嘗試移除包含任何成員的 DAG,工作會失敗。

設定 DAG 內容

將伺服器新增至 DAG 之後,您可以使用 EAC 或 Exchange 管理命令介面來設定 DAG 的屬性,包括 DAG 所使用的見證伺服器和見證目錄,以及指派給 DAG 的 IP 位址。

可設定的內容包括:

  • 見證伺服器:您想要裝載檔案共用見證之檔案共用的伺服器名稱。 我們建議您指定 Client Access 伺服器作為見證伺服器。 此命名可讓系統視需要自動設定、保護及使用共用,並讓訊息管理員知道見證伺服器的可用性。

  • 見證目錄:將用來儲存檔案共用見證資料的目錄名稱。 系統會自動在指定的見證伺服器上建立此目錄。

  • 資料庫可用性群組 IP 位址:必須將一或多個 IP 位址指派給 DAG,除非 DAG 成員Windows Server 2012 R2 執行,而且您正在建立沒有 IP 位址的 DAG。 否則,可以使用手動指派的靜態 IP 位址來設定 DAG 的 IP 位址,或者使用組織中的 DHCP 伺服器自動指派給 DAG。

Exchange 管理命令介面可讓您設定 EAC 中無法使用的 DAG 屬性,例如 DAG IP 位址;網路加密和壓縮設定;網路探索;用於複寫的 TCP 埠;和替代見證伺服器和見證目錄設定;和 以啟用資料中心啟用協調模式。

如需如何設定 DAG 內容的詳細步驟,請參閱設定資料庫可用性群組內容

DAG 網路加密

DAG 利用 Windows Server 作業系統的加密能力來支援使用加密。 DAG 在 Exchange 伺服器之間使用 Kerberos 驗證。 Microsoft Kerberos 安全性支援提供者 (SSP) EncryptMessage 和 DecryptMessage API 會處理 DAG 網路流量的加密作業。 Microsoft Kerberos SSP 支援多種加密演算法。 (如需完整清單,請參閱第 3.1.5.2 節。 Kerberos 通訊協定延伸模組的「加密類型」.) Kerberos 驗證交握會選取清單中支援的最增強式加密通訊協定:通常是進階加密標準 (AES) 256 位,可能使用 SHA 雜湊型訊息驗證代碼 (HMAC) 來維護資料的完整性。 如需詳細資訊,請參閱 HMAC

網路加密是 DAG 的屬性,而不是 DAG 網路的屬性。 您可以使用 Exchange 管理命令介面中的 Set-DatabaseAvailabilityGroup Cmdlet 來設定 DAG 網路加密。 下表顯示 DAG 網路通訊的可能加密設定:

設定 描述
已停用 不使用網路加密。
Enabled 在所有 DAG 網路上使用網路加密進行複寫及植入。
InterSubnetOnly 在不同子網路間進行複寫時,在 DAG 網路上使用網路加密。 此設定為預設設定。
SeedOnly 僅植入時才在所有 DAG 網路上使用網路加密。

DAG 網路壓縮

DAG 支援內建的壓縮。 啟用壓縮時,DAG 網路通訊會使用 XPRESS,這是 LZ77 演算法的 Microsoft 實作。 此壓縮與許多 Microsoft 通訊協定中使用的壓縮類型相同,特別是 Microsoft Outlook 與 Exchange 之間的 MAPI RPC 壓縮。

如同網路加密,網路壓縮也是 DAG 的屬性,而不是 DAG 網路的屬性。 您可以使用 Exchange 管理命令介面中的 Set-DatabaseAvailabilityGroup Cmdlet 來設定 DAG 網路壓縮。 下表顯示 DAG 網路通訊的可能壓縮設定:

設定 描述
已停用 不使用網路壓縮。
Enabled 在所有 DAG 網路上使用網路壓縮進行複寫及植入。
InterSubnetOnly 在不同子網路間進行複寫時,在 DAG 網路上使用網路壓縮。 此設定為預設設定。
SeedOnly 僅植入時才在所有 DAG 網路上使用網路壓縮。

DAG 網路

DAG 網路是用於複寫流量或 MAPI 流量的一或多個子網路的集合。 每個 DAG 皆包含最多一個 MAPI 網路和零個或更多的複寫網路。 在單一網路介面卡組態中,該網路同時供 MAPI 和複寫流量使用。 儘管支援單一網路介面卡和路徑,但我們建議每個 DAG 最少有兩個 DAG 網路。 在雙網路組態中,通常會使用一個網路專門複寫流量,而另一個網路則主要用於 MAPI 流量。 您也可以新增網路介面卡至每個 DAG 成員,並將額外的 DAG 網路設定為複寫網路。

注意事項

使用多個複寫網路時,無法指定網路使用的優先順序。 Exchange 會從複寫網路的群組隨機選取複寫網路,以便用於記錄傳送。

在 Exchange 2010 中,有許多情況必須手動配置 DAG 網路。 根據預設,在更新版本的 Exchange 中,系統會自動設定 DAG 網路。 建立或修改 DAG 網路之前,您必須先執行下列指令啟用手動 DAG 網路控制:

Set-DatabaseAvailabilityGroup <DAGName> -ManualDagNetworkConfiguration $true

啟用手動 DAG 網路設定之後,您可以在 Exchange 管理命令介面中使用 New-DatabaseAvailabilityGroupNetwork Cmdlet 來建立 DAG 網路。 如需如何建立 DAG 網路的詳細步驟,請參閱 建立資料庫可用性群組網路

您可以使用 Exchange 管理命令介面中的 Set-DatabaseAvailabilityGroupNetwork Cmdlet 來設定 DAG 網路屬性。 如需如何設定 DAG 網路內容的詳細步驟,請參閱 設定資料庫可用性群組網路內容。 每個 DAG 網路需要的設定和選擇性的參數為:

  • 網路名稱:最多 128 個字元之 DAG 網路的唯一名稱。

  • 網路描述:最多 256 個字元的 DAG 網路選擇性描述。

  • 網路子網:使用 IPAddress/Bitmask (格式輸入的一或多個子網,例如,192.168.1.0/24 版的網際網路通訊協定第 4 版 (IPv4) 子網;網際網路通訊協定第 6 版的 2001:DB8:0:C000::/64 (IPv6) 子網) 。

  • 啟用複寫:在 EAC 中,選取核取方塊以將 DAG 網路專用於複寫流量,並封鎖 MAPI 流量。 清除核取方塊以防止複寫使用 DAG 網路,並啟用 MAPI 流量。 在 Exchange 管理命令介面中,使用Set-DatabaseAvailabilityGroupNetwork Cmdlet 中的ReplicationEnabled參數來啟用和停用複寫。

注意事項

停用 MAPI 網路上的複寫不能保證系統不會使用該 MAPI 網路進行複寫。 當所有設定的複寫網路為離線、失敗或無法使用,並且只剩下 MAPI 網路 (已設定為停用複寫) 時,系統會使用 MAPI 網路進行複寫。

系統所建立的初始 DAG 網路 (例如,MapiDagNetwork 和 ReplicationDagNetwork01) 是以由叢集服務列舉之子網路為基礎。 每個 DAG 成員必須具備相同數目的網路介面卡,而且每個網路介面卡必須具備唯一子網路上的 IPv4 位址 (或者也可以選擇性地具備 IPv6 位址)。 多個 DAG 成員可以具備相同子網路上的 IPv4 位址,但是特定 DAG 成員中的每個網路介面卡與 IP 網址配對必須是唯一的子網路。 此外,只有 MAPI 網路使用的介面卡應該設定預設閘道。 複寫網路不應該設定預設閘道。

例如,假設有一個 DAG1 是兩個成員的 DAG,其中,每個成員具有兩個網路介面卡 (一個為 MAPI 網路專用,另一個供複寫網路使用)。 範例 IP 位址組態設定如下表所示:

範例網路介面卡設定

伺服器-網路介面卡 IP 位址/子網路遮罩 預設閘道
EX1-MAPI 192.168.1.15/24 192.168.1.1
EX1-Replication 10.0.0.15/24 不適用
EX2-MAPI 192.168.1.16 192.168.1.1
EX2-Replication 10.0.0.16 不適用

在下列組態中,DAG 中設定了兩個子網路:192.168.1.0 和 10.0.0.0。 當 EX1 和 EX2 新增至 DAG 時,將會列舉兩個子網路並建立兩個 DAG 網路:MapiDagNetwork (192.168.1.0) 與 ReplicationDagNetwork01 (10.0.0.0)。 這些網路將會設定,如下表所示:

單一子網路 DAG 的列舉 DAG 網路設定

名稱 子網路 介面 MAPI 存取已啟用 複寫已啟用
MapiDagNetwork 192.168.1.0/24 EX1 (192.168.1.15)
EX2 (192.168.1.16)
True True
ReplicationDagNetwork01 10.0.0.0/24 EX1 (10.0.0.15)
EX2 (10.0.0.16)
False True

若要完成 ReplicationDagNetwork01 作為專用複寫網路的設定,請執行下列命令來停用 MapiDagNetwork 的複寫:

Set-DatabaseAvailabilityGroupNetwork -Identity DAG1\MapiDagNetwork -ReplicationEnabled:$false

停用 MapiDagNetwork 的複寫之後,Microsoft Exchange 複寫服務會使用 ReplicationDagNetwork01 進行連續複寫。 如果 ReplicationDagNetwork01 發生失敗,Microsoft Exchange 複寫服務會恢復使用 MapiDagNetwork 進行連續複寫。 系統會刻意返回 MapiDagNetwork,以維持高可用性。

DAG 網路與多重子網路部署

在先前的範例中,雖然 DAG 使用兩個不同的子網路 (192.168.1.0 和 10.0.0.0),但 DAG 是視為單一子網路的 DAG,因為每個成員都使用相同子網路以形成 MAPI 網路。 當 DAG 成員使用不同子網路作為 MAPI 網路時,該 DAG 稱為多重子網路 DAG。 在多子網路 DAG 中,正確的子網路會自動與每個 DAG 網路相關聯。

例如,假設有一個 DAG2 是兩個成員的 DAG,其中,每個成員具有兩個網路介面卡 (一個為 MAPI 網路專用,另一個供複寫網路使用),而且每個 DAG 成員都位於個別 Active Directory 站台中,其 MAPI 網路在不同子網路上。 範例 IP 位址組態設定如下表所示:

多重子網路 DAG 的範例網路介面卡設定

伺服器-網路介面卡 IP 位址/子網路遮罩 預設閘道
EX1-MAPI 192.168.0.15/24 192.168.0.1
EX1-Replication 10.0.0.15/24 不適用
EX2-MAPI 192.168.1.15 192.168.1.1
EX2-Replication 10.0.1.15 不適用

在下列組態中,DAG 中設定了四個子網路:192.168.0.0、192.168.1.0、10.0.0.0 和 10.0.1.0。 當 EX1 和 EX2 新增至 DAG 時,將會列舉四個子網路,但僅建立兩個 DAG 網路:MapiDagNetwork (192.168.0.0, 192.168.1.0) 與 ReplicationDagNetwork01 (10.0.0.0, 10.0.1.0)。 這些網路將會設定,如下表所示:

多重子網路 DAG 的列舉 DAG 網路設定

名稱 子網路 介面 MAPI 存取已啟用 複寫已啟用
MapiDagNetwork 192.168.0.0/24
192.168.1.0/24
EX1 (192.168.0.15)
EX2 (192.168.1.15)
True True
ReplicationDagNetwork01 10.0.0.0/24
10.0.1.0/24
EX1 (10.0.0.15)
EX2 (10.0.1.15)
False True

DAG 網路和 iSCSI 網路

依預設,DAG 會對所有偵測到和已設定為由基礎叢集使用的網路執行探索。 此探索包括任何網際網路 SCSI (iSCSI) 因應一或多個 DAG 成員使用 iSCSI 儲存體而使用的網路。 最佳作法是,iSCSI 儲存應該使用專用的網路和網路介面卡。 這些網路不應由 DAG 或其叢集管理,或作為 MAPI 或複寫) (DAG 網路。 相反地,DAG 應該手動停用這些網路,使其可以專用於 iSCSI 儲存體流量。 若要停用 iSCSI 網路以防止受偵測並作為 DAG 網路使用,請使用 Set-DatabaseAvailabilityGroupNetwork 指令程式將 DAG 設定為忽略任何目前偵測到的 iSCSI 網路,如以下範例所示:

Set-DatabaseAvailabilityGroupNetwork -Identity DAG2\DAGNetwork02 -ReplicationEnabled:$false -IgnoreNetwork:$true

此指令同時將停用叢集使用網路。 雖然 iSCSI 網路將繼續顯示為 DAG 網路,執行上述指令後,不會為 MAPI 或複寫流量使用網路。

設定 DAG 成員

DAG 成員的信箱伺服器擁有某些專用於高可用性的內容,這些內容應該依下列各節所述來設定:

自動資料庫裝載撥號

AutoDatabaseMountDial 參數會指定資料庫容錯移轉之後的自動資料庫裝載行為。 您可以使用 Set-MailboxServer Cmdlet,使用下列任何值來設定 AutoDatabaseMountDial 參數:

  • BestAvailability:如果您指定此值,如果複製佇列長度小於或等於 12,則資料庫會在容錯移轉後立即自動掛接。 複製佇列長度是需複寫的被動複本所辨識的記錄個數。 如果複製佇列長度超過 12,資料庫將不會自動裝載。 當複製佇列長度小於或等於 12 時,Exchange 會嘗試將剩餘的記錄複寫至被動複本,並掛接資料庫。

  • GoodAvailability:如果您指定此值,如果複製佇列長度小於或等於六,則資料庫會在容錯移轉之後立即自動掛接。 複製佇列長度是需複寫的被動複本所辨識的記錄個數。 如果複製佇列長度超過 6,資料庫將不會自動裝載。 當複製佇列長度小於或等於 6 時,Exchange 會嘗試將剩餘的記錄複寫至被動複本,並裝載資料庫。

  • Lossless:如果您指定此值,在主動式複本上產生的所有記錄都已複製到被動複本之前,資料庫不會自動掛接。 此設定也會使 Active Manager 最佳副本選擇演算法根據資料庫副本的啟動喜好設定值 (而非其副本佇列長度) 來排序啟動的可能候選項目。

預設值為 GoodAvailability。 如果您指定 BestAvailabilityGoodAvailability ,而且無法將使用中複本中的所有記錄複製到要啟用的被動複製,您可能會遺失一些信箱資料。 但是,安全網功能 (已根據預設啟用) 會藉由重新提交位於安全網佇列中的訊息,有助防止資料遺失。

範例:設定自動資料庫裝載撥號

下列範例會使用 的 AutoDatabaseMountDial 設定來設定 GoodAvailability 信箱伺服器。

Set-MailboxServer -Identity EX1 -AutoDatabaseMountDial GoodAvailability

資料庫副本自動啟動原則

DatabaseCopyAutoActivationPolicy 參數會指定所選取的信箱伺服器上信箱資料庫複本可用的自動啟用類型。 您可以使用 Set-MailboxServer Cmdlet,使用下列任何值來設定 DatabaseCopyAutoActivationPolicy 參數:

  • Blocked:如果您指定此值,則無法在選取的信箱伺服器上自動啟用資料庫。

  • IntrasiteOnly:如果您指定此值,則允許在相同 Active Directory 月臺的伺服器上啟用資料庫複本。 此啟用可防止跨網站容錯移轉或啟用。 此屬性用於內送郵件資料庫複本 (例如作為主動複本的被動複本)。 無法在此信箱伺服器上啟動已在另一個 Active Directory 站台上啟動資料庫複本的資料庫。

  • Unrestricted:如果您指定此值,在選取的信箱伺服器上啟用信箱資料庫複本沒有特殊限制。

範例:設定資料庫副本自動啟動原則

下列範例會設定 DatabaseCopyAutoActivationPolicy 設定為 的信 Blocked 箱伺服器。

Set-MailboxServer -Identity EX1 -DatabaseCopyAutoActivationPolicy Blocked

使用中資料庫上限

MaximumActiveDatabases 參數 (也搭配 Set-MailboxServer Cmdlet 使用) 會指定可裝載於信箱伺服器上的資料庫數量。 透過確保個別信箱伺服器不會超載,您可以設定信箱伺服器以符合您的部署需求。

MaximumActiveDatabases參數是以整數數值設定。 到達數目上限時,如果發生容錯移轉或轉換,將不會啟動伺服器上的資料庫複本。 如果已在伺服器上使用複本,該伺服器將不允許裝載資料庫。

範例:設定使用中資料庫上限

下列範例會設定信箱伺服器,以支援最多 20 個作用中資料庫:

Set-MailboxServer -Identity EX1 -MaximumActiveDatabases 20

在 DAG 成員上執行維護

在 DAG 成員上執行任何類型的軟體或硬體維護之前,您應該先將 DAG 成員置於維護模式。 下列腳本會隨附Exchange Server,以協助進行 DAG 維護程式:

  • StartDagServerMaintenance.ps1:協助將所有作用中資料庫移出伺服器。 它也會移動所有重要的 DAG 支援功能,例如主要 Active Manager (PAM) 角色,並防止它們在維護完成之前移回伺服器。

  • StopDagServerMaintenance.ps1:協助將 DAG 成員從維護模式中移除,並使其成為所有資料庫和所有重要 DAG 支援功能的作用中目標。

上述兩個腳本都接受 ServerName 參數 (可以是 DAG 成員) 和 WhatIf 參數的 FQDN) 主機名稱或完整功能變數名稱 (。 這兩個腳本都可以在本機或遠端執行。 執行腳本的伺服器必須安裝 Windows 容錯移轉叢集管理工具 (RSAT-Clustering) 。

注意事項

RedistributeActiveDatabases.ps1腳本也可供使用,可協助在特定 DAG 成員上掛接信箱資料庫,如每個資料庫上的啟用喜好設定編號所示。 不過,在 Exchange 2016 CU2 或更新版本中,名為 PreferenceMoveFrequency 的新 DAG 屬性會自動平衡整個 DAG 的資料庫複本。 因此,如果您已停用此功能,或想要手動平衡資料庫複本,則只需要使用 RedistributeActiveDatabases.ps1 腳本。

StartDagServerMaintenance.ps1腳本會執行下列工作:

  • 將 DAG 成員上的 DatabaseCopyAutoActivationPolicy 參數值設定為 Blocked ,以防止在伺服器上啟動任何資料庫複本。

  • 暫停叢集中的節點,以防止節點成為 PAM。

  • 將目前裝載于 DAG 成員的所有作用中資料庫移至其他 DAG 成員。

  • 如果 DAG 成員目前擁有預設叢集群組,腳本會將預設叢集群組移 (,因此 PAM 角色) 另一個 DAG 成員。

如果上述任何工作失敗,腳本會復原除了成功資料庫移動以外的所有作業。

若要開始 DAG 成員的維護程式,包括排清傳輸佇列和暫停用戶端連線,請執行下列工作:

  1. 若要清空傳輸佇列,請執行下列命令:

    Set-ServerComponentState <ServerName> -Component HubTransport -State Draining -Requester Maintenance
    
  2. 若要起始傳輸佇列的清空作業,請執行下列命令:

    Restart-Service MSExchangeTransport
    
  3. 若要開始在僅限 Exchange 2016) 中清空所有整合通訊呼叫 (的程式,請執行下列命令:

    Set-ServerComponentState <ServerName> -Component UMCallRouter -State Draining -Requester Maintenance
    
  4. 若要存取 DAG 維護腳本,請執行下列命令:

    CD $ExScripts
    
  5. 若要執行 StartDagServerMaintenance.ps1 腳本,請執行下列命令:

    .\StartDagServerMaintenance.ps1 -ServerName <ServerName> -MoveComment Maintenance -PauseClusterNode
    

    針對 MoveComment 參數的值,您可以進行任何想要的標記法。 上述範例使用「維護」。

    注意事項

    此腳本可能需要一些時間才能執行,而且在這段期間,您可能不會在畫面上看到任何活動。

  6. 若要將本機佇列中擱置傳遞的訊息重新導向至 Target 參數所指定的 Exchange 伺服器,請執行下列命令:

    Redirect-Message -Server <ServerName> -Target <Server FQDN>
    
  7. 若要讓伺服器進入維護模式,請執行下列命令:

    Set-ServerComponentState <ServerName> -Component ServerWideOffline -State Inactive -Requester Maintenance
    

為了確認伺服器已準備好供人在其上進行維護,請執行下列工作:

  1. 若要確認伺服器已進入維護模式,請在執行下列命令時確認只有 MonitoringRecoveryActionsEnabled 處於作用中狀態:

    Get-ServerComponentState <ServerName> | Format-Table Component,State -Autosize
    
  2. 若要確認伺服器未裝載任何作用中的資料庫複本,請執行下列命令:

    Get-MailboxServer <ServerName> | Format-List DatabaseCopyAutoActivationPolicy
    
  3. 若要確認叢集節點已暫停,請執行下列命令:

    Get-ClusterNode <ServerName> | Format-List
    
  4. 若要確認所有傳輸佇列都已清空,請執行下列命令:

    Get-Queue
    

在維護完成且 DAG 成員準備好返回服務之後, StopDagServerMaintenance.ps1 腳本有助於讓 DAG 成員離開維護模式,並將其放回生產環境。 StopDagServerMaintenance.ps1腳本會執行下列工作:

  • 繼續叢集中的 節點,以啟用 DAG 成員的完整叢集功能。

  • 將 DAG 成員上的 DatabaseCopyAutoActivationPolicy 參數值設定為 Unrestricted

  • 針對 DAG 成員上裝載的每個資料庫複本,執行 Resume-MailboxDatabaseCopy Cmdlet。

當您準備好將 DAG 成員還原為完整生產狀態,包括繼續傳輸佇列和用戶端連線時,請執行下列工作:

  1. 若要將伺服器設定為處於非維護模式,並準備好接受用戶端連線,請執行下列命令:

    Set-ServerComponentState <ServerName> -Component ServerWideOffline -State Active -Requester Maintenance
    
  2. 若要只在 Exchange 2016) 中允許伺服器接受 (整合通訊呼叫,請執行下列命令:

    Set-ServerComponentState <ServerName> -Component UMCallRouter -State Active -Requester Maintenance
    
  3. 若要存取 DAG 維護腳本,請執行下列命令:

    CD $ExScripts
    
  4. 若要執行 StopDagServerMaintenance.ps1 腳本,請執行下列命令:

    .\StopDagServerMaintenance.ps1 -serverName <ServerName>
    
  5. 若要讓傳輸佇列繼續接受和處理訊息,請執行下列命令:

    Set-ServerComponentState <ServerName> -Component HubTransport -State Active -Requester Maintenance
    
  6. 若要繼續傳輸活動,請執行下列命令:

    Restart-Service MSExchangeTransport
    

若要驗證伺服器已準備好用於實際執行,請執行下列工作:

  1. 若要確認伺服器未處於維護模式,請執行下列命令:

    Get-ServerComponentState <ServerName> | Format-Table Component,State -Autosize
    

如果您要安裝 Exchange 更新,且更新程式失敗,則可能會讓某些伺服器元件處於非作用中狀態,而這會顯示在上述 Get-ServerComponentState Cmdlet 的輸出中。 若要解決此問題,請執行下列命令:

  1. Set-ServerComponentState <ServerName> -Component ServerWideOffline -State Active -Requester Functional

  2. Set-ServerComponentState <ServerName> -Component Monitoring -State Active -Requester Functional

  3. Set-ServerComponentState <ServerName> -Component RecoveryActionsEnabled -State Active -Requester Functional

關閉 DAG 成員

Exchange 高可用性解決方案已與 Windows 關機程式整合。 如果系統管理員或應用程式在具有裝載資料庫 (已複寫到一或多個 DAG 成員) 的 DAG 中初始化 Windows 伺服器的關機程序,系統會先嘗試啟動裝載資料庫的另一個副本,然後再允許完成關機程序。

不過,這個新行為並不保證正在關閉之伺服器上的所有資料庫都會發生 lossless 啟用。 因此,它會執行伺服器轉換之前關閉 DAG 成員伺服器的最佳作法。

在 DAG 成員上安裝更新

在屬於 DAG 成員的伺服器上安裝 Exchange 更新是相當簡單的程式。 當您在 DAG 的成員伺服器上安裝更新時,有幾個服務會在安裝期間停止,包括所有的 Exchange 服務和叢集服務。 對 DAG 成員套用更新的一般程序如下:

  1. 使用前文所述步驟,使 DAG 成員進入維護模式。

  2. 安裝更新。

  3. 使用前文所述步驟,將 DAG 成員移出維護模式,並使其回到生產模式。

  4. 選擇性地使用 RedistributeActiveDatabases.ps1 腳本來重新平衡整個 DAG 的作用中資料庫複本。

如需最新 Exchange 更新的詳細資訊,請參閱Exchange Server組建編號和發行日期

注意事項

您應該一律在相同版本的 Exchange Server 上執行所有 DAG 成員 (包括累積和安全性更新) 。 執行所有 DAG 成員的「輪流更新」,而且不會在一段較長的時間內使用不同 Exchange 版本的成員執行 DAG。