自动清除数据库

Windows Server AppFabric 自动清除功能的目的是,定期地自动检查磁盘上 AppFabric 监控数据库的增长情况,并在需要时减少其磁盘占用量。这样可确保监控数据库不会不受控制地增长,并占用磁盘上的太多空间。此功能基本上是将数据库变为循环缓冲区,在数据库达到其配置限制时,删除最早的事件以便为最新事件腾出空间。许多日志记录机制都采用这种循环缓冲区方法,包括 Windows 事件跟踪 (ETW)。如果没有自动清除功能,管理员将必须定期使用内置的数据库清除和存档功能,以确保数据库不会变得太大并占用磁盘上的过大空间。有关手动清除和存档的详细信息,请参阅存档和清除数据库

在以下情况下,自动数据库清除功能非常有用:当您希望在达到配置的大小阈值时清除某些最早事件,或者当事件已经存储在数据库中配置的一段时间后。配置任何一个值都会对磁盘空间的管理起到明显的辅助作用。自动清除可以释放磁盘上的存储空间以存储新的监控事件。默认情况下,AppFabric 用户始终能够获得大约 1.5 GB(默认大小)最新的监控数据。另外,数据使用者可以查询数据库中的操作表来确定进行清除操作的时间。

配置自动清除

自动清除操作由 AppFabric 在安装期间初始化 ApplicationServerMonitoring 数据库时安装的 SQL Server 存储过程进行。存储过程将定期运行,并读取您在 Dbo.ConfigurationPropertiesTable 表中配置的值,以驱动其自动清除操作的逻辑。AppFabric 中没有用户界面可用于配置此表。可以使用 SQL Server Management Studio,直接将下表中描述的值修改为您感到可以满足您的数据库清除要求的相应设置。

列名称 列类型 默认值 描述

ArchiveServer

Nvarchar(128)

NULL

托管监控数据库的 SQL Server 的名称。此数据库将用于存储监控数据。

ArchiveDatabase

Nvarchar(128)

NULL

监控数据库的名称。此数据库将用于存储监控数据。

APEnabled

1

启用或禁用监控数据自动清除。当设置为 1 时,数据库将根据其他自动清除配置属性自动清除数据。

APThreshold

int

1500

仅当将 APEnabled 设置为 1 时,才会读取此属性。当数据库大小超过此阈值(以 MB 为单位近似表示)时,将启用自动清除,并且将按照 APTrimPercentage 配置属性删除监控数据。

APMaxEventAge

float

NULL

仅当将 APEnabled 设置为 1 时,才会读取此属性。将删除数据库中早于此属性值(以天为单位)的所有监控事件。

APTrimPercentage

int

10

仅当将 APEnabled 设置为 1 时,才会读取此属性。当使用 APThreshold 清除机制时,将删除大于最早监控数据的 APTrimPercantage 百分比,从而为新数据腾出空间。此属性的默认值为 10%。

满足清除条件后将清除最早事件,并将触发存储过程。如果在一次定期调用期间,存储过程发现特定监控数据库上的磁盘大小超过了 APThreshold 值的大小,则最新条目将覆盖该百分比(APTrimPercentage 值)的最早数据库条目。同时,如果在一次定期调用期间,存储过程发现早于 APMaxEventAge 的事件,则将删除这些事件。

备注

数据库的当前磁盘大小和要清除的数据量均近似基于配置属性。AppFabric 将“大约”删除数据库中百分之 X 的最早事件。数据库可增长的实际限制可能会依据硬件和事件吞吐量不同而异。

备注

AppFabric 自动数据库清除功能只能用于配置为使用 Microsoft SQL Server 存储其监控数据库的 AppFabric 安装。同时,监控数据库是存在自动清除功能的唯一 AppFabric 数据库。无法将其配置为用于暂留数据库。

另请参阅

概念

存档和清除数据库

  2011-12-05