監視資料庫可用性群組

適用於:Exchange Server 2013

您可以使用本主題中的詳細資料,監視資料庫可用性群組 (DAG) 的信箱資料庫複本健康情況和狀態、收集診斷資訊,以及設定低磁碟空間監視閾值。

Get-MailboxDatabaseCopyStatus Cmdlet

您可以使用 Get-MailboxDatabaseCopyStatus 指令程式來檢視信箱資料庫副本的狀態資訊。 此指令程式可讓您檢視特定資料庫的所有副本資訊、特定伺服器的特定副本資訊,或伺服器的所有資料庫副本資訊。 下表說明信箱資料庫可能的副本狀態值。

資料庫複製狀態

資料庫複製狀態 描述
失敗 信箱資料庫複本處於失敗狀態,因為它未暫停,而且無法複製或重新執行記錄檔。 處於失敗狀態且未暫停時,系統會定期檢查造成複製狀態變更為 [失敗] 的問題是否已解決。 當系統偵測到問題已解決,而且沒有其他問題時,複製狀態會自動變更為 [狀況良好]。
播種 信箱資料庫複本正在植入、信箱資料庫複本的內容索引正在植入,或兩者皆已植入。 成功完成植入後,複製狀態應該會變更為 [初始化]。
SeedingSource 信箱資料庫複本正作為資料庫複製植入作業的來源。
暫止 信箱資料庫複本處於暫停狀態,因為系統管理員執行 Suspend-MailboxDatabaseCopy Cmdlet,手動暫停資料庫複本。
健康 信箱資料庫複本已成功複製和重新執行記錄檔,或已成功複製並重新執行所有可用的記錄檔。
ServiceDown Microsoft Exchange 複寫服務無法在裝載信箱資料庫複本的伺服器上使用或執行。
初始 化 建立資料庫複本、Microsoft Exchange 複寫服務啟動或剛啟動,以及從 Suspended、ServiceDown、Failed、Seeding 或 SinglePageRestore 轉換到另一個狀態時,信箱資料庫複本處於初始化狀態。 處於此狀態時,系統正在確認資料庫和記錄資料流程處於一致的狀態。 在大部分情況下,複製狀態會維持在初始化狀態約 15 秒,但在所有情況下,通常不會處於此狀態超過 30 秒。
重新同步處理 信箱資料庫複本及其記錄檔正在與資料庫的作用中複本進行比較,以檢查兩個複本之間是否有任何差異。 複製狀態會維持在此狀態,直到偵測到並解決任何差異為止。
安裝 使用中的複本已上線並接受用戶端連線。 只有信箱資料庫複本的作用中複本可以有 [已掛接] 的複製狀態。
卸 除 使用中的複本已離線,且不接受用戶端連線。 只有信箱資料庫複本的作用中複本的複製狀態可以是 [卸載]。
安裝 使用中的複本即將上線,但尚未接受用戶端連線。 只有信箱資料庫複本的作用中複本可以有 [掛接] 的複製狀態。
拆卸 使用中的複本會離線並終止用戶端連線。 只有信箱資料庫複本的作用中複本的複製狀態可以是 [卸載]。
DisconnectedAndHealthy 信箱資料庫複本已不再連線到使用中資料庫複本,而且在連線中斷時處於狀況良好狀態。 此狀態代表與其源資料庫複本連線的資料庫複本。 可能會在來源複本與目標資料庫複本之間的 DAG 網路失敗期間回報。
DisconnectedAndResynchronizing 信箱資料庫複本已不再連線到使用中資料庫複本,而且在連線中斷時處於重新同步處理狀態。 此狀態代表與其源資料庫複本連線的資料庫複本。 可能會在來源複本與目標資料庫複本之間的 DAG 網路失敗期間回報。
FailedAndSuspended 系統已同時設定 Failed 和 Suspended 狀態,因為偵測到失敗,而且因為解決失敗明確需要系統管理員介入。 例如,如果系統偵測到作用中信箱資料庫與資料庫複本之間無法復原的差異。 不同于失敗狀態,系統不會定期檢查問題是否已解決,並自動復原。 相反地,系統管理員必須介入以解決失敗的根本原因,資料庫複製才能轉換成狀況良好的狀態。
SinglePageRestore 此狀態表示信箱資料庫複本上正在進行單一分頁還原作業。

Get-MailboxDatabaseCopyStatus Cmdlet 也會傳回使用中複寫網路的詳細資料,包括針對被動資料庫複本傳回的 IncomingLogCopyingNetwork,以及針對具有多個複本的作用中資料庫傳回的OutgoingConnections,以及做為資料庫植入作業來源的任何資料庫複本。 只有對於處於檔案模式複寫的資料庫副本,才會提供外寄連線資訊。 對於處於封鎖模式複寫的資料庫副本,並不會提供外寄連線資訊。

Get-MailboxDatabaseCopyStatus 範例

下列範例使用 Get-MailboxDatabaseCopyStatus 指令程式。 每一個範例都會將結果以管線傳送至 Format-List 指令程式,以便以清單格式顯示輸出。

本範例傳回 DB2 資料庫所有複本的狀態資訊。

Get-MailboxDatabaseCopyStatus -Identity DB2 | Format-List

本範例傳回信箱伺服器 MBX2 上所有資料庫複本的狀態。

Get-MailboxDatabaseCopyStatus -Server MBX2 | Format-List

此範例傳回本機 Mailbox Server 上所有資料庫副本的狀態。

Get-MailboxDatabaseCopyStatus -Local | Format-List

如需使用 Get-MailboxDatabaseCopyStatus 指令程式的相關資訊,請參閱 Get-MailboxDatabaseCopyStatus

Test-ReplicationHealth Cmdlet

您可以使用 Test-ReplicationHealth 指令程式來檢視信箱資料庫副本的連續複寫狀態資訊。 此指令程式可用來檢查複寫和重新顯示的各個部分,以提供 DAG 中特定 Mailbox Server 的完整概觀。

Test-ReplicationHealth 指令程式旨在用來主動監視連續複寫和連續複寫管線、Active Manager 的可用性,以及基礎叢集服務、仲裁及網路元件的健全狀況和狀態。 可在本機或在遠端針對 DAG 中任何的信箱伺服器執行。 Test-ReplicationHealth 指令程式會執行下表所列出的測試。

Test-ReplicationHealth Cmdlet 測試

測試名稱 描述
ClusterService 確認叢集服務正在本機伺服器上執行且可在指定的 DAG 成員上連線,或者如果未指定 DAG 成員,則為 。
ReplayService 確認 Microsoft Exchange 複寫服務正在本機伺服器上執行且可在指定的 DAG 成員上連線,或者如果未指定 DAG 成員,則為 。
ActiveManager 確認在指定 DAG 成員上執行的 Active Manager 實例,或如果未指定 DAG 成員,本機伺服器在主要、次要或獨立) (有效角色。
TasksRpcListener 確認工作遠端程序呼叫 (RPC) 伺服器正在本機伺服器上執行且可連線到指定的 DAG 成員,或者如果未指定 DAG 成員。
TcpListener 確認 TCP 記錄複製接聽程式正在本機伺服器上執行且可在指定的 DAG 成員上連線,或者如果未指定 DAG 成員,則為 。
ServerLocatorService 在 DAG 成員和在 Active Directory 和 Active Manager 中執行查閱的用戶端存取伺服器上,驗證 Active Manager 用戶端/伺服器進程,以判斷使用者信箱資料庫的作用中位置。
DagMembersUp 確認所有 DAG 成員皆可供使用、執行中且可連線。
ClusterNetwork 確認指定 DAG 成員上的所有叢集受控網路,或如果未指定 DAG 成員,則可使用本機伺服器。
QuorumGroup 確認仲裁群組 (預設叢集群組) 處於狀況良好且線上狀態。
FileShareQuorum 確認可連線到為 DAG 設定的見證伺服器和見證目錄和共用。
DatabaseRedundancy 確認在本機伺服器上,指定的 DAG 成員上至少有一個資料庫的健康情況良好複本可用,或者如果未指定 DAG 成員,則為 。
DatabaseAvailability 確認資料庫在本機伺服器上具有指定 DAG 成員的足夠可用性,或者如果未指定 DAG 成員,則為 。
DBCopySuspended 檢查本機伺服器上是否有任何信箱資料庫複本在指定的 DAG 成員上處於 Suspended 狀態,或是否未指定 DAG 成員。
DBCopyFailed 檢查本機伺服器上是否有任何信箱資料庫複本在指定的 DAG 成員上處於失敗狀態,或是否未指定 DAG 成員。
DBInitializing 檢查本機伺服器上是否有任何信箱資料庫複本處於初始化指定 DAG 成員的狀態,或是否未指定 DAG 成員。
DBDisconnected 檢查本機伺服器上是否有任何信箱資料庫複本在指定的 DAG 成員上處於已中斷連線的狀態,或是否未指定 DAG 成員。
DBLogCopyKeepingUp 確認在指定的 DAG 成員上,由資料庫的被動複本進行記錄複製和檢查,或在本機伺服器上未指定 DAG 成員時,能夠跟上使用中複本上的記錄產生活動。
DBLogReplayKeepingUp 確認指定 DAG 成員上資料庫被動複本的重新執行活動,或如果未指定 DAG 成員,則在本機伺服器上能夠跟上記錄複製和檢查活動。

Test-ReplicationHealth 範例

這個範例使用 Test-ReplicationHealth 指令程式來測試 Mailbox Server MBX1 的複寫狀況。

Test-ReplicationHealth -Identity MBX1

Crimson 通道事件記錄

Windows 包含兩個類別的事件記錄:Windows 記錄與「應用程式及服務」記錄。 Windows 記錄類別包含可於舊版 Windows 使用的事件記錄:應用程式、 安全性和系統事件記錄。 也包含兩個新記錄:「安裝」記錄與 ForwardedEvents 記錄。 Windows 記錄的目的是從舊版應用程式和套用到整個系統的事件儲存事件。

「應用程式及服務」記錄是新的事件記錄類別。 這些記錄儲存單一應用程式或元件中的事件,而非可能影響整個系統的事件。 事件記錄的這個新類別稱為應用程式的Crimson 通道。

「應用程式及服務」記錄類別包含四個子類型:「系統管理」、「操作」、「分析」和「偵錯」記錄。 如果您使用事件記錄來疑難排解問題,則「系統管理」記錄中的事件特別有用。 「系統管理」記錄中的事件應提供您如何回應事件的指引。 「操作」記錄中的事件也相當有用,但可能需要更多解譯。 「系統管理」與「偵錯」記錄難以使用。 「分析」記錄 (預設為隱藏並停用) 儲存用於追蹤問題的事件,經常記錄著大量事件。 「偵錯」記錄供開發人員於偵錯應用程式時使用。

Exchange 2013 將事件記錄到「應用程式及服務」記錄區的Crimson 通道內。 您可以執行下列步驟來檢視這些通道:

  1. 開啟 [事件檢視器]。

  2. 在主控台樹中,流覽至應用程式和服務記錄>Microsoft>Exchange

  3. [Exchange] 底下,選取深層通道,例如 HighAvailabilityMailboxDatabaseFailureItems ,以查看 DAG 和資料庫複製相關事件,或選取 ActiveLakeoringManagedAvailability ,以查看與受控可用性相關的事件。

HighAvailability 通道包含與啟動和關閉 Microsoft Exchange 複寫服務相關的事件,以及 Microsoft Exchange 複寫服務內執行的元件,例如,Active Manager、第三方同步處理複寫 API、工作 RPC 伺服器、TCP 接聽程式和磁碟區陰影複製服務 (VSS) 編寫器。 Active Manager 也會使用 HighAvailability 通道來記錄與 Active Manager 角色監視相關的事件和資料庫動作事件,例如,資料庫裝載操作和記錄檔截斷,以及記錄與 DAG 基礎叢集相關的事件。

MailboxDatabaseFailureItems 通道可用來記錄影響複寫信箱資料庫失敗的所有相關事件。

ActiveMonitoring 通道包含 Managed 可用性探查、監視器和回應程式的定義和結果事件。

ManagedAvailability 通道包含復原動作記錄檔、結果和相關事件。

低磁碟空間監視器

Exchange 2013 受控可用性會每分鐘監視數百個系統計量和元件,包括信箱伺服器角色所使用磁片區上的可用磁碟空間量。 在 Exchange 2013 Service Pack 1 (SP1) 之前,Exchange 會監視所有本機磁片區上的可用空間,包括不包含任何資料庫或記錄檔的磁片區。 在 SP1 和更新版本中,只會監視包含 Exchange 資料庫和記錄檔的磁片區。 在 SP1 中,低磁片區空間監視器的預設閾值為 200 GB。 在 Exchange 2013 累積更新 6 和更新版本中,預設閾值為 180 GB。 在 SP1 和更新版本中,您可以在想要自訂的每部信箱伺服器上,將下列 DWORD 登錄值 (MB) 來設定閾值:

路徑: HKEY_LOCAL_MACHINE\Software\Microsoft\ExchangeServer\v15\Replay\Parameters

值: SpaceMonitorLowSpaceThresholdInMB

例如,若要將閾值設定為 100 GB,您可以設定下列登錄值:

REG_DWORD 186a0 (100000)

設定或修改上述登錄值之後,您必須重新開機 Microsoft Exchange DAG 管理服務,變更才會生效。

CollectOverMetrics.ps1 指令碼

Exchange 2013 包含稱為 CollectOverMetrics.ps1 的指令碼,您可以在 Scripts 資料夾內找到這個指令碼。 CollectOverMetrics.ps1 會讀取 DAG 成員事件日誌,以收集一段特定時間內的資料庫作業相關資訊 (例如資料庫裝載、移動和轉換)。 此指令碼會記錄每一項作業的下列資訊:

  • 資料庫的識別碼

  • 作業開始和結束的時間

  • 作業開始和完成時用來裝載資料庫的伺服器

  • 執行作業的原因

  • 作業是否執行成功,若是作業失敗時則顯示錯誤詳細資料

此指令碼會以每列一項作業的方式將這些資訊寫入 .csv 檔案中。 它會為每個 DAG 寫入一個個別的 .csv 檔案。

指令碼支援可讓您自訂指令碼行為和輸出的參數。 例如,可以使用 DatabaseReportFilter 參數,將結果限制為指定的子集。 摘要 HTML 報告中只會包含符合這些篩選器的作業。 下表列出可用的參數。

CollectOverMetrics.ps1腳本參數

參數 描述
DatabaseAvailabilityGroup 指定您要從中收集計量的 DAG 名稱。 如果省略此參數,將會使用本機伺服器為其成員的 DAG。 萬用字元可用來收集來自多個 DAG 的資訊,以及報告多個 DAG。
資料庫 提供需要產生報表的資料庫清單。 支援萬用字元,例如 或 -Database "DB1","DB2"-Database "DB*"
StartTime 指定要報告的期間持續時間。 腳本只會收集這段期間記錄的事件。 因此,腳本可能會擷取部分作業記錄 (例如,只擷取期間開始時的作業結束,反之亦然) 。 如果未指定 StartTimeEndTime ,則腳本預設為過去 24 小時。 如果只指定一個參數,則期間會是 24 小時,從指定的時間開始或結束。
EndTime 指定要報告的期間持續時間。 腳本只會收集這段期間記錄的事件。 因此,腳本可能會擷取部分作業記錄 (例如,只擷取期間開始時的作業結束,反之亦然) 。 如果未指定 StartTimeEndTime ,則腳本預設為過去 24 小時。如果只指定一個參數,則期間會是 24 小時,從指定的時間開始或結束。
ReportPath 指定用來儲存事件處理結果的資料夾。 如果省略此參數,將會使用 Scripts 資料夾。 指定時,腳本會取得腳本所產生的.csv檔案清單,並使用這些檔案作為來源資料來產生摘要 HTML 報告。 此報表與使用 -GenerateHtmlReport 選項產生的報表相同。 檔案可以在許多不同的時間產生于多個 DAG,甚至是重迭時間,而且腳本會將其所有資料合併在一起。
GenerateHtmlReport 指定腳本收集其所記錄的所有資訊、依作業類型將資料分組,然後產生包含每個這些群組統計資料的 HTML 檔案。 此報表包含每個群組中的作業總數、失敗的作業數目,以及每個群組內所花費時間的統計資料。 報表也包含導致作業失敗之錯誤類型的明細。
ShowHtmlReport 指定在產生 HTML 產生的報表之後,應該顯示在網頁瀏覽器中。
SummariseCsvFiles 指定腳本從腳本先前產生的現有.csv檔案讀取資料。 然後,此資料會用來產生摘要報表,類似于 GenerateHtmlReport 參數所產生的報表。
ActionType 指定腳本應該收集的作業動作類型。 這個參數的值為 MoveMountDismountRemount 。 值 Move 是指資料庫變更其使用中伺服器的任何時間,不論是透過受控制的移動或容錯移轉。 MountDismountRemount 值是指資料庫變更其掛接狀態,而不移至另一部電腦的時間。
ActionTrigger 指定腳本應該收集哪些系統管理作業。 此參數的值為 AdminAutomatic 。 自動動作是由系統自動執行 (例如,伺服器離線時的容錯移轉) 。 管理員動作是系統管理員使用 Exchange 管理命令介面或 Exchange 系統管理中心所執行的任何動作。
RawOutput 指定腳本將已寫入.csv檔案的結果直接寫入輸出資料流程,就像寫入輸出一樣。 此資訊接著可以透過管道傳送至其他命令。
IncludedExtendedEvents 指定腳本會收集事件,以提供花費在掛接資料庫的時間診斷詳細資料。 如果伺服器上的 Application 事件記錄檔很大,這可能是一個耗時的階段。
MergeCSVFiles 指定腳本會擷取包含每個作業相關資料的所有.csv檔案,並將它們合併成單一.csv檔案。
ReportFilter 指定篩選準則應該套用至作業,當這些欄位出現在.csv檔案中時。 此參數使用與作業相同的格式 Where ,且每個專案都設定為 $_ ,並傳回布林值。 例如: {$_DatabaseName -notlike "Mailbox Database"} 可用來從報表中排除預設資料庫。

CollectOverMetrics.ps1 範例

下列範例會收集符合 DB* (的所有資料庫計量,其中包含 DAG DAG1 中) 萬用字元。 收集度量資訊之後,會產生並顯示 HTML 報告。

CollectOverMetrics.ps1 -DatabaseAvailabilityGroup DAG1 -Database "DB*" -GenerateHTMLReport -ShowHTMLReport

下列範例示範如何篩選摘要 HTML 報表。 第一個會使用 Database 參數,以取得資料庫名稱的清單。 摘要報表接著只會包含這些資料庫的相關資料。 接下來的兩個範例會使用 ReportFilter 選項。 最後一個範例會篩選掉所有預設資料庫。

CollectOverMetrics.ps1 -SummariseCsvFiles (dir *.csv) -Database MailboxDatabase123,MailboxDatabase456
CollectOverMetrics.ps1 -SummariseCsvFiles (dir *.csv) -ReportFilter {$_.DatabaseName -notlike "Mailbox Database*"}
CollectOverMetrics.ps1 -SummariseCsvFiles (dir *.csv) -ReportFilter {($_.ActiveOnStart -like "ServerXYZ*") -and ($_.ActiveOnEnd -notlike "ServerXYZ*")}

CollectReplicationMetrics.ps1 指令碼

另一個包含在 Exchange 2013 內的狀況度量指令碼是 CollectReplicationMetrics.ps1。 這個指令碼在執行時即時收集度量資訊,所以提供了一種主動形式的監視。 CollectReplicationMetrics.ps1 會從與資料庫複寫相關的效能計數器收集資料。 此指令碼會收集多個信箱伺服器的計數器資料、將每部伺服器的資料寫入 .csv 檔案,然後報告所有資料的各種統計資料 (例如每個副本失敗或擱置的時間長度、平均的複製佇列長度或重新顯示佇列長度,或是副本不符合容錯移轉準則的時間長度)。

您可以個別指定伺服器,或是指定整個 DAG。 您可執行指令碼讓它先收集資料再產生報告,也可以讓它只收集資料,或是只報告已經收集的資料。 您可以指定資料的取樣頻繁,以及收集資料的總時間長度。

The data collected from each server is written to a file named CounterData.<ServerName>.<TimeStamp>.csv. 摘要報表將會寫入名為HaReplPerfReport 的檔案。 <DAGName > 。 <TimeStamp >.csvHaReplPerfReport。 <如果未使用 DagName 參數執行腳本,則 TimeStamp >.csv

指令碼會啟動 Windows PowerShell 工作來收集每部伺服器的資料。 這些工作會在整段資料收集期間執行。 如果您指定的伺服器數目很多,這個程序可能會使用大量的記憶體。 在這個程序的最後一個階段,也就是將資料處理成摘要報告時,也可能會因為大量的資料而耗費相當多的時間。 您可以在某部電腦上執行收集階段,然後將資料複製到其他電腦來進行處理作業。

CollectReplicationMetrics.ps1 指令碼支援可讓您自訂指令碼行為和輸出的參數。 下表列出可用的參數。

CollectReplicationMetrics.ps1腳本參數

參數 描述
DagName 指定您要從中收集計量的 DAG 名稱。 如果省略此參數,將會使用本機伺服器為其成員的 DAG。
DatabaseNames 提供需要產生報表的資料庫清單。 支援使用萬用字元,例如 或 -DatabaseNames "DB1","DB2"-DatabaseNames "DB*"
ReportPath 指定用來儲存事件處理結果的資料夾。 如果省略此參數,將會使用 Scripts 資料夾。
Duration 指定收集程式應該執行的時間量。 一般值會是一到三個小時。 較長的持續時間應該只用于每個範例之間的長間隔,或排程工作所執行的一系列較短作業。
Frequency 指定收集資料計量的頻率。 一般值為 30 秒、1 分鐘或 5 分鐘。 在正常情況下,比這些時間短的間隔不會顯示每個範例之間的重大變更。
伺服器 指定要從中收集統計資料之伺服器的身分識別。 您可以指定任何值,包括萬用字元或 GUID。
SummariseFiles 指定要產生摘要報告的.csv檔案清單。 這些檔案是名為 CounterData 的檔案。 <CounterData > * 和 是由CollectReplicationMetrics.ps1腳本產生。
Mode 指定腳本執行的處理階段。 您可以使用下列值:
  • CollectAndReport:這是預設值。 此值表示腳本應該從伺服器收集資料,然後處理它們以產生摘要報告。
  • CollectOnly:這個值表示腳本應該只收集資料,而不是產生報表。
  • ProcessOnly:這個值表示腳本應該從一組.csv檔案匯入資料,並加以處理以產生摘要報告。 SummariseFiles參數可用來為腳本提供要處理的檔案清單。
MoveFilestoArchive 指定腳本在處理之後,應該將檔案移至壓縮資料夾。
LoadExchangeSnapin 指定腳本應載入 Shell 命令。 當腳本需要從殼層外部執行時,例如在排程工作中,這個參數會很有用。

CollectReplicationMetrics.ps1 範例

下列範例會從 DAG DAG1 中的所有伺服器收集一個小時的資料量,每隔一分鐘取樣一次,然後再產生摘要報告。 此外,也會使用 ReportPath 參數,這會導致腳本將所有檔案放在目前的目錄中。

CollectReplicationMetrics.ps1 -DagName DAG1 -Duration "01:00:00" -Frequency "00:01:00" -ReportPath

下列範例會從所有符合 CounterData* 的檔案讀取資料,然後產生摘要報表。

CollectReplicationMetrics.ps1 -SummariseFiles (dir CounterData*) -Mode ProcessOnly -ReportPath