Отслеживает свободное место в базе данных в процентах от места на носителе, на котором размещается база данных.
Отслеживает объем места в базе данных и на носителе, на котором размещается база данных. Место, доступное на носителе, на котором размещается база данных, также рассматривается как часть доступного места, если хотя бы для одного из файлов разрешено автоматическое увеличение.
Неисправное состояние вызывается нехваткой свободного места для всех файлов базы данных. Нехватка доступного места может быть вызвана следующими причинами:
неверные параметры конфигурации (размер, максимальный размер, автоматическое увеличение и т. д.);
нехватка оставшегося места на носителе.
Для просмотра данных производительности используются следующие ссылки: Данные производительности базы данных
Этот монитор отслеживает, сколько всего места доступно для каждого файла в базе данных, в зависимости от конфигурации каждого файла.
Автоматическое увеличение не разрешено
Для файла без автоматического увеличения доступное место будет равно разности между начальным размером файла и используемым местом.
Автоматическое увеличение разрешено
В дополнение к разности между размером и используемым местом доступное место для файлов с разрешенным автоматическим увеличением будет равно минимуму из двух значений: разность между максимальным размером и размером файла или объем свободного места, оставшегося на диске.
Нехватка доступного места для файлов базы данных с разрешенным автоматическим увеличением может означать, что файл достиг предельных значений для логического диска, на котором он размещен. Для файлов с разрешенным автоматическим увеличением с максимальным размером нехватка доступного места может также означать, что файл достигает максимального размера, заданного для файла.
При вычислениях доступного места нужно учитывать, что увеличить файл не удастся, если размер увеличения файла больше объема оставшегося на диске места, и что файл не может увеличиться, если разность между максимальным размером и текущим размером файла меньше значения увеличения. В таких ситуациях доступное свободное место, оставшееся на диске, не рассматривается как часть доступного места, поскольку файл больше не может увеличиваться.
Эта проблема может быть устранена следующим образом.
Увеличение размера, выделенного для файла или для всех файлов в файловой группе, если автоматическое увеличение не разрешено
Увеличение максимального размера для файла, если автоматическое увеличение разрешено
Включение автоматического увеличения хотя бы для одного файла
Перенос файлов на другой диск с большим свободным местом, если ограничено место для увеличения файлов
Изменение пороговых значений для этого монитора для обеспечения соответствия рабочей нагрузке
Альтернативный вариант, если общее место в базе данных неважно:
отключить данный монитор для этой конкретной файловой группы или для всех файловых групп
См. электронную документацию по SQL Server. Архитектура файлов и файловых групп
Target | Microsoft.SQLServer.2008.Database | ||
Parent Monitor | Microsoft.SQLServer.2008.Database.DBSpaceMonitor | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | High | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2008.DBAndLogSizeMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2008.Database.DBSizePercentMonitor" Accessibility="Public" Enabled="false" Target="SQL2008Core!Microsoft.SQLServer.2008.Database" ParentMonitorID="Microsoft.SQLServer.2008.Database.DBSpaceMonitor" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.DBAndLogSizeMonitorType" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.Database.DBSizePercentMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<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/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/PerformanceCounterObject$:Database</ObjectName>
<CounterName>DB Total Free Space (%)</CounterName>
<InstanceName>$Data/Property[@Name='Database']$</InstanceName>
<DatabaseName>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
<Value>$Data/Property[@Name='DBFreeSpacePercent']$</Value>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>