在命令行管理程序中使用 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 位用户的列表。该脚本随后会隔离使用率过高的邮箱,这些邮箱的日志生成速率的总和大于当前生成速率与可承受生成速率之间的差值,这会导致超过可配置的时间阈值。这些用户会被隔离 6 个小时,在此期间他们不能查看电子邮件。

  5. 如果疑难解答程序未成功将日志生成速率降到阈值水平以下,则将记录转换成运行状况模型警报的事件。此时,脚本会通过运行带有针对指定数据库设置为 $trueExcludeFromProvisioning 参数的 Set-MailboxDatabase cmdlet,从配置中删除数据库。您可能需要将邮箱移动到新服务器以便使空间重新恢复均衡。

  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-Troubleshooters”/“操作”。

不必为此参数指定值。

PercentEdbFreeSpaceThreshold

可选

PercentEdbFreeSpaceThreshold 参数指定 .edb 文件的磁盘空间的百分比,Exchange 应在达到此百分比时开始隔离用户。例如,如果您将其指定为 10%,则当命令检测到由于 .edb 文件在 HourThreshold 参数中指定的时间内的增长,而导致硬盘驱动器会出现空间不足的情况时,Exchange 将开始隔离重负载用户。

此参数的默认值是 25%。

PercentLogFreeSpaceThreshold

可选

PercentLogFreeSpaceThreshold 参数指定日志文件的磁盘空间的百分比,Exchange 应在达到此百分比时开始隔离用户。例如,如果您将其指定为百分之十,则当命令检测到由于 .edb 文件在 HourThreshold 参数中指定的时间内的增长,而导致硬盘驱动器会出现空间不足的情况时,Exchange 将开始隔离重负载用户。

此参数的默认值是 25%。

Quarantine

可选

Quarantine 参数指示将隔离重负载用户。如果不指定此参数,则不会隔离用户。

不必为此参数指定值。

示例

此示例说明如何运行具有以下设置的 Troubleshoot-DatabaseSpace.ps1 脚本:

  • 警报触发条件设置为:当包含数据库日志的卷中的空闲空间以及数据库文件和包含该数据库文件的卷中的空闲空间降至 10% 时。

  • 将小时阈值设置为 5 小时。

进行这些设置后,如果疑难解答程序确定硬盘驱动器上的可用空间在 5 小时之内将达到 10% 或更少的容量时,将会隔离负载最重的用户。

.\Troubleshoot-databasespace.ps1 -server MBX01 -PercentLogFreeSpace 10 -PercentEDBFreeSpace 10 -HourThreshold 5 -Quarantine
注释注意:
此示例说明如何手动运行一次命令。要生成疑难解答程序有效监视您的服务器或数据库所需的数据,您必须在固定的时间间隔内运行此命令若干次。我们建议您使用 Microsoft Windows 操作系统中的任务计划程序来设置此任务。有关详细信息,请参阅任务计划程序概述

查看日志增长疑难解答程序输出结果

在事件查看器中,Troubleshoot-DatabaseSpace.ps1 脚本的结果将显示在以下位置:“事件查看器”>“应用程序和服务日志”>“Microsoft-Exchange-Troubleshooters”/“操作”。

例如,以下是事件 ID 5101 的输出结果。如果脚本成功运行,没有出现错误,则会返回此输出结果。

已在卷 D:\ 上为数据库 MBD01 运行完数据库空间疑难解答程序,没有检测到任何问题。

EDB 可用驱动器空间:151938752512 B

日志可用驱动器空间:151845265408 B

EDB 可用空间阈值: 10%

日志可用空间阈值: 10%

小时阈值:12 小时

当前增长速率:314572800 B/小时

下表显示事件 ID、事件描述以及要执行的操作(如果需要)。

注释注意:
此表中的描述是这些事件中可能包括的信息的示例。
事件 ID 描述 操作

5100

已在卷 D:\ 上为数据库 MBD01 启动数据库空间疑难解答程序。

仅用于信息参考目的。不需要执行任何操作。

5101

已在卷 D:\ 上为数据库 MBD01 运行完数据库空间疑难解答程序。没有检测到任何问题。

仅用于信息参考目的。不需要执行任何操作。

5400

已在卷 D:\ 上为数据库 MBD01 运行完数据库空间疑难解答程序。数据库空间高于可用空间阈值。已将用户隔离,以避免空间不足。

警告事件:继续监视。用户将被隔离 6 个小时并无法访问他们的邮箱。

5401

已在卷 D:\ 上为数据库 MBD01 运行完数据库空间疑难解答程序。数据库空间低于可用空间阈值,但数据的增长速率正常。未执行任何操作。

警告事件:继续监视。

5410

数据库空间疑难解答程序隔离了数据库 MBD01 中的邮箱 f3bb8007-b6d1-45f5-b748-211d66fa43f6。

警告事件:创建事件 5400 后,将创建此事件。继续监视。

5700

已在卷 D:\ 上为数据库 MBD01 运行完数据库空间疑难解答程序。数据库空间高于可用空间阈值,并在继续增长。需要手动干预。

此错误事件表明数据库空间高于可用空间阈值。运行 Microsoft Exchange Server 用户监视器 (Exmon) 工具跟踪导致产生过量日志增长的用户或服务。有关详细信息,请参阅 Microsoft Exchange Server 用户监视器

5701

已在卷 D:\ 上为数据库 MBD01 运行数据库空间疑难解答程序,检测到存在空间不足的情况。已禁用此数据库的配置。此数据库的可用空间小于 10%。

此错误事件表明已从配置中删除此数据库。在此情况下,脚本会运行带有针对指定数据库设置为 $trueExcludeFromProvisioning 参数的 Set-MailboxDatabase cmdlet。解决数据库空间问题后,必须以手动方式为邮箱数据库重新启用配置。

您可能需要将邮箱移动到新服务器以便使空间重新恢复均衡。

5702

已在卷 D:\ 上为数据库 MBD01 运行数据库空间疑难解答程序,检测到存在空间严重不足的情况。已禁用此数据库的配置。此数据库的可用空间小于 10%。

此错误事件表明已从配置中删除此数据库,因为资源严重不足。

在此情况下,脚本会运行带有针对指定数据库设置为 $trueExcludeFromProvisioning 参数的 Set-MailboxDatabase cmdlet。解决数据库空间问题后,必须以手动方式为邮箱数据库重新启用配置。

您可能需要将用户移动到新数据库以便使空间重新恢复均衡。

 © 2010 Microsoft Corporation。保留所有权利。