使用命令介面的 Troubleshoot-DatabaseSpace.ps1 指令碼管理資料庫記錄檔成長

 

適用版本: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上次修改主題的時間: 2016-11-28

Troubleshoot-DatabaseSpace.ps1 指令碼由 Microsoft System Center Operations Manager 2007 用於偵測和更正任何過度的記錄檔成長或 Microsoft Exchange 資料庫 (.edb) 檔案成長,如果不對這些成長加以檢查,可能會導致資料庫停機。依預設,System Center Operations Manager 2007 每 15 分鐘執行一次指令碼。但是,您可以使用工作排程器設定並執行此指令碼,以監視資料庫記錄檔和檔案的成長。

注意事項附註:
必須從所在資料夾中執行指令碼。根據預設,與 Exchange 2010 一起安裝的指令碼會安裝在 C:\Program Files\Microsoft\Exchange Server\V14\Scripts。命令介面不會自動載入指令碼。若要從本機檔案中執行指令碼,您必須在所有指令碼之前加上 ".\"。例如,若要執行 SampleScript.ps1 指令碼,請輸入 .\SampleScript.ps1。若要執行指令碼並指定預設安裝路徑,請輸入 "C:\Program Files\Microsoft\Exchange Server\V14\Scripts\SampleScript.ps1"。如需詳細資訊,請參閱使用 Exchange 管理命令介面撰寫指令碼

Troubleshoot-DatabaseSpace.ps1 指令碼可執行以下動作:

  1. 追蹤每個資料庫中產生記錄檔最多的使用者的記錄檔產生率。這有助於確定記錄量過大 (可能導致空間問題) 的使用者。

  2. 追蹤資料庫和記錄檔的可用磁碟空間。如果其中任何一項位於可設定的已滿閾值之內,則必須採取進一步動作。

  3. 追蹤記錄檔產生率。如果磁碟空間即將在由 HourThreshold 參數指定的值內耗盡 (根據記錄檔產生率),則必須採取進一步動作。

    注意事項附註:
    若要避免出現重大問題,請確保 HourThreshold 參數的值足夠大,以便您可以在上班時間內有時間做出反應,同時還有足夠的空間可供使用。如果耗用磁碟空間的速率比指定的值更快,則必須立即採取動作以保護磁碟。
  4. 如果符合所有前述條件,則指令碼會確定前一小時內存取資料庫的前 25 位使用者的清單。對於空間使用率排名靠前的信箱,如果在可設定時間閾值指定的一段時間內,其記錄檔總體產生率大於目前產生率和可承受產生率的差異,則指令碼會將其隔離。會將這些使用者隔離六小時,在此期間他們無法存取電子郵件。

  5. 如果疑難排解員無法將記錄檔產生率降至閾值等級之下,則會寫下可轉換為正常狀態模型警示的事件。此時,指令碼會針對指定的資料庫執行 Set-MailboxDatabase Cmdlet (將 ExcludeFromProvisioning 參數設為 $true),以不再提供該資料庫。您可能需要將信箱移至新伺服器,以重新平衡空間。

  6. 如果疑難排解員隔離的使用者超過 10 個,則表示出現系統問題,您需要跟進處理。在此情況下,正常狀態模型會觸發緊急警示。

Troubleshoot-DatabaseSpace.ps1 指令碼中使用的預設設定在 StoreTSConstants.ps1 指令碼中定義。

要尋找與資料庫相關的其他管理工作嗎?請參閱管理信箱資料庫

使用 Troubleshoot-DatabaseSpace.ps1 指令碼

您必須已獲指派權限,才能執行此程序。若要查看您需要的權限,請參閱信箱權限主題中的「信箱資料庫」項目。

以下參數語法集和表格列出了您可用於移動特定信箱的參數。

Troubleshoot-DatabaseSpace.ps1 -MailboxDatabaseName <DatabaseID> [-PercentEdbFreeSpaceThreshold <1-99>] [-PercentLogFreeSpaceThreshold <1-99>] [-HourThreshold <1- 1000000000>] [-Quarantine <switch>] [-MonitoringContext <switch>]
Troubleshoot-DatabaseSpace.ps1 -Server <ServerID> [-PercentEdbFreeSpaceThreshold <1-99>] [-PercentLogFreeSpaceThreshold <1-99>] [-HourThreshold <1- 1000000000>] [-Quarantine <switch>] [-MonitoringContext <switch>]
參數 必要 描述

MailboxDatabaseName

必要

MailboxDatabaseName 參數可指定您監視哪個信箱資料庫的記錄檔成長。

此參數接受下列值:

  • GUID

  • 辨別名稱 (DN)

  • 資料庫名稱

注意事項附註:
您不可以將此參數與 Server 參數一起使用。

Server

必要

Server 參數可指定您監視哪個信箱伺服器上所有信箱資料庫的記錄檔成長。

注意事項附註:
您不可以將此參數與 MailboxDatabaseName 參數一起使用。

HourThreshold

選用

HourThreshold 參數可指定在耗盡空間之前,您可等候多少小時。預設值為 12 小時。

MonitoringContext

選用

MonitoringContext 參數可指定是否將命令結果 (包括監視事件) 寫入事件檢視器中的一般應用程式記錄檔及作業記錄檔。如果您不指定此值,則會將作業記錄檔寫入事件檢視器中的以下位置:

[事件檢視器] > [應用程式與服務記錄檔] > [Microsoft Exchange 疑難排解員]/[作業]

您不必為此參數指定任何值。

PercentEdbFreeSpaceThreshold

選用

PercentEdbFreeSpaceThreshold 參數可指定用於 .edb 檔案的磁碟空間百分比,如果達到該值,Exchange 將開始隔離使用者。例如,如果您指定該值為 10%,則在命令偵測到由於 .edb 檔案的成長導致硬碟空間將在 HourThreshold 參數指定的時間內耗盡時,Exchange 會隔離空間使用量最大的使用者。

此參數的預設值是 25%。

PercentLogFreeSpaceThreshold

選用

PercentLogFreeSpaceThreshold 參數可指定用於記錄檔的磁碟空間百分比,如果達到該值,Exchange 將開始隔離使用者。例如,如果您指定該值為 10%,則在命令偵測到由於記錄檔的成長導致硬碟空間將在 HourThreshold 參數指定的時間內耗盡時,Exchange 會隔離空間使用量最大的使用者。

此參數的預設值是 25%。

Quarantine

選用

Quarantine 參數可指定將隔離空間使用量很大的使用者。如果您不指定此參數,則不會隔離使用者。

您不需要為此參數指定任何值。

範例

此範例顯示如何使用以下設定執行 Troubleshoot-DatabaseSpace.ps1 指令碼:

  • 設定發出警告的條件是:包含資料庫記錄檔之磁碟區的可用空間達到 10%,以及資料庫檔案和包含該資料庫檔案之磁碟區的可用空間達到 10%。

  • 設定的小時數閾值為 5 小時。

藉由這些設定,如果疑難排解員確定硬碟上的可用空間將在 5 小時內達到 10% 或更低,則會隔離空間使用量最大的使用者。

.\Troubleshoot-databasespace.ps1 -server MBX01 -PercentLogFreeSpace 10 -PercentEDBFreeSpace 10 -HourThreshold 5 -Quarantine
注意事項附註:
此範例顯示如何手動執行一次命令。若要產生疑難排解員有效監視伺服器或資料庫所需的資料,您必須以固定的時間間隔多次執行此命令。建議您使用 Microsoft Windows 作業系統中的工作排程器來設定此工作。如需詳細資訊,請參閱工作排程器概觀

檢視記錄檔成長疑難排解員輸出

在事件檢視器中,會在以下位置提供 Troubleshoot-DatabaseSpace.ps1 指令碼的結果:[事件檢視器] > [應用程式與服務記錄檔] > [Microsoft-Exchange-疑難排解員]/[作業]

例如,以下表示事件識別碼 5101 的輸出。如果指令碼執行成功,沒有出現錯誤,則會傳回此輸出。

資料庫空間疑難排解員完成對資料庫 MBD01 的磁碟區 D:\ 的疑難排解,未偵測到任何問題。

EDB 磁碟機可用空間:151938752512 B

記錄檔磁碟機可用空間:151845265408 B

EDB 可用空間閾值: 10%

記錄檔可用空間閾值: 10%

小時閾值:12 小時

目前成長率:314572800 B/小時

下表顯示事件識別碼、事件的描述以及採取的動作 (如果需要)。

注意事項附註:
此表格中的描述是這些事件中可能包括的資訊的範例。
事件識別碼 描述 動作

5100

資料庫空間疑難排解員開始對資料庫 MBD01 的磁碟區 D:\ 進行疑難排解。

僅供參考。不需要採取任何動作。

5101

資料庫空間疑難排解員完成對資料庫 MBD01 的磁碟區 D:\ 的疑難排解。未偵測到任何問題。

僅供參考。不需要採取任何動作。

5400

資料庫空間疑難排解員完成對資料庫 MBD01 的磁碟區 D:\ 的疑難排解。資料庫已超過可用空間閾值。已隔離使用者以避免空間耗盡。

警告事件:繼續監視。將隔離使用者六小時,在此期間他們無法存取信箱。

5401

資料庫空間疑難排解員完成對資料庫 MBD01 的磁碟區 D:\ 的疑難排解。資料庫未超過可用空間閾值,但以非正常速率成長。未採取任何動作。

警告事件:繼續監視。

5410

資料庫空間疑難排解員已隔離資料庫 MBD01 中的信箱 f3bb8007-b6d1-45f5-b748-211d66fa43f6。

警告事件:建立事件 5400 時,將建立此事件。繼續監視。

5700

資料庫空間疑難排解員完成對資料庫 MBD01 的磁碟區 D:\ 的疑難排解。資料庫已超過可用空間閾值,且正在持續成長。需要手動操作。

此錯誤事件表示資料庫空間已超過可用空間閾值。請執行 Microsoft Exchange Server 使用者監視器工具 (Exmon) 追蹤導致記錄檔過度成長的使用者或服務。如需詳細資訊,請參閱 Microsoft Exchange Server 使用者監視器

5701

資料庫空間疑難排解員偵測到資料庫 MBD01 的磁碟區 D:\ 上空間不足。已停止提供此資料庫。此資料庫的可用空間少於 10%。

此錯誤事件表示已不再提供此資料庫。在此情況下,指令碼會針對指定的資料庫執行 Set-MailboxDatabase Cmdlet (將 ExcludeFromProvisioning 參數設為 $true)。解決資料庫空間問題之後,您必須手動重新提供信箱資料庫。

您可能需要將信箱移至新伺服器,以重新平衡空間。

5702

資料庫空間疑難排解員偵測到資料庫 MBD01 的磁碟區 D:\ 上空間嚴重不足。已停止提供此資料庫。此資料庫的可用空間少於 10%。

此錯誤事件表示由於資源嚴重不足,已不再提供此資料庫。

在此情況下,指令碼會針對指定的資料庫執行 Set-MailboxDatabase Cmdlet (將 ExcludeFromProvisioning 參數設為 $true)。解決資料庫空間問題之後,您必須手動重新提供信箱資料庫。

您可能需要將使用者移至新資料庫,以重新平衡空間。

 © 2010 Microsoft Corporation. 著作權所有,並保留一切權利。