Место в файле базы данных

Microsoft.SQLServer.2008.Monitoring.DBFileSpaceMonitor (UnitMonitor)

Отслеживает свободное место в файле базы данных в процентах от места на носителе, где размещается файл.

Knowledge Base article:

Сводка

Отслеживает свободное место в файле и на носителе, где он находится. Свободное место на носителе, на котором размещаются файлы, включается в общее свободное место, только если для этого файла разрешено автоматическое увеличение.

Причины

Неисправное состояние вызвано недостатком свободного места для этого файла. Нехватка доступного места может быть вызвана следующими причинами:

Следующая ссылка позволяет просмотреть данные производительности: Данные производительности о свободном месте для файла базы данных.

Автоматическое увеличение не разрешено

Для файла без автоматического увеличения размера свободное место будет равно разности между первоначальным размером и используемым местом.

Автоматическое увеличение разрешено

При включенном автоматическом увеличении доступное место на диске рассматривается как часть общего свободного места. В дополнение к разности между размером файла и используемым местом свободное место для файлов со включенным автоматическим увеличением будет равно меньшему из двух значений: разность между максимальным размером и размером файла и объем свободного места, оставшегося на диске.

Малый объем доступного места для файлов базы данных с автоматическим увеличением может означать, что файл почти достиг предельного значения для логического диска, на котором он размещен. Для файлов с разрешенным автоматическим увеличением и заданным максимальным размером малый объем доступного места также может означать, что файл почти достиг максимального заданного размера.

При расчете доступного пространства также необходимо принимать во внимание, что файл может не увеличиваться, если размер увеличения файла больше, чем свободное пространство на диске. Кроме того, увеличение невозможно, если разница между максимальным размером и текущим размером файла меньше размера увеличения. В таких ситуациях свободное место на диске не включается в доступное пространство, так как дальнейшее увеличение файла невозможно.

Решения

Эта проблема может быть устранена следующим образом.

См. электронную документацию по SQL Server: Архитектура файлов и файловых групп.

Переопределяемые параметры

Имя

Описание

Значение по умолчанию

Вкл.

Включает или отключает рабочий процесс.

Да

Создает предупреждения

Определяет, создает ли рабочий процесс предупреждения.

Нет

Интервал (с)

Интервал перед повторным запуском рабочего процесса (в секундах).

900

Нижнее пороговое значение

Нижнее пороговое значение для этого монитора.

10

Время синхронизации

Время синхронизации указывается в 24-часовом формате и может быть опущено.

 

Время ожидания (в секундах)

Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный.

300

Верхнее пороговое значение

Верхнее пороговое значение для этого монитора.

20

Element properties:

TargetMicrosoft.SQLServer.2008.DBFile
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.DBFileSizeMonitorType
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.Monitoring.DBFileSpaceMonitor" Accessibility="Public" Enabled="true" Target="SQL2008Core!Microsoft.SQLServer.2008.DBFile" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.DBFileSizeMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<OperationalStates>
<OperationalState ID="UnderThreshold1" MonitorTypeStateID="UnderThreshold1" HealthState="Error"/>
<OperationalState ID="OverThreshold1UnderThreshold2" MonitorTypeStateID="OverThreshold1UnderThreshold2" HealthState="Warning"/>
<OperationalState ID="OverThreshold2" MonitorTypeStateID="OverThreshold2" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<ConnectionString>$Target/Host/Host/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>$Target/Host/Host/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/PerformanceCounterObject$ : Database : DB File</ObjectName>
<CounterName>DB File Free Space (%)</CounterName>
<InstanceName>$Target/Property[Type="SQL!Microsoft.SQLServer.DBFile"]/FileName$</InstanceName>
<DatabaseName>$Target/Host/Host/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
<DBFileId>$Target/Property[Type="SQL!Microsoft.SQLServer.DBFile"]/FileID$</DBFileId>
<Value>$Data/Property[@Name='FreeSpacePercent']$</Value>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>