Монитор создает предупреждение, когда объем доступного дискового пространства (включая как уже выделенное пространство, так и свободное пространство на носителе) опускается ниже порогового значения предупреждения, выраженного в процентах от суммы размера данных и свободного дискового пространства. Монитор создает критическое предупреждение, если доступное пространство опускается ниже критического порогового значения.
Монитор контролирует пространство, доступное в файле и на носителе, содержащих файл. Объем свободного пространства на носителях, где размещены файлы, включается как часть доступного пространства только тогда, когда задействована настройка автоматического расширения хотя бы для одного файла.
Неисправное состояние вызвано недостатком свободного места для этого файла. Нехватка доступного места может быть вызвана следующими причинами:
неверные параметры конфигурации (размер, максимальный размер, автоматическое увеличение и т. д.);
нехватка оставшегося места на носителе.
Используйте следующую ссылку для просмотра данных о производительности: Данные о производительности свободного места файлов БД
Автоматическое увеличение не разрешено
Для файла без автоматического увеличения размера свободное место будет равно разности между первоначальным размером и используемым местом.
Автоматическое увеличение разрешено
При включенном автоматическом увеличении доступное место на диске рассматривается как часть общего свободного места. В дополнение к разности между размером файла и используемым местом свободное место для файлов со включенным автоматическим увеличением будет равно меньшему из двух значений: разность между максимальным размером и размером файла и объем свободного места, оставшегося на диске.
Малый объем доступного места для файлов базы данных с автоматическим увеличением может означать, что файл почти достиг предельного значения для логического диска, на котором он размещен. Для файлов с разрешенным автоматическим увеличением и заданным максимальным размером малый объем доступного места также может означать, что файл почти достиг максимального заданного размера.
При расчете доступного пространства также необходимо принимать во внимание, что файл может не увеличиваться, если размер увеличения файла больше, чем свободное пространство на диске, кроме того, увеличение невозможно, если разница между максимальным и текущим размером файла меньше размера увеличения. В таких ситуациях свободное место на диске не включается в доступное пространство, так как дальнейшее увеличение файла невозможно.
Эта проблема может быть устранена следующим образом.:
Увеличение размера, выделенного для файла или для всех файлов в файловой группе, если автоматическое увеличение отключено.
Увеличение максимального размера для файла, если автоматическое увеличение разрешено
Включение автоматического расширения хотя бы для одного файла
Перенос файлов на другой диск с большим свободным местом, если ограничено место для увеличения файлов
Изменение пороговых значений для этого монитора для обеспечения соответствия рабочей нагрузке
В другом случае, если доступное место для файловой группы не имеет значения для базы данных:
Отключить монитор для указанной файловой группы или всех файловых групп
См. электронную документацию по SQL Server: Архитектура файлов и файловых групп.
Название | Описание | Значение по умолчанию |
Приоритет предупреждения | Определяет приоритет предупреждения. | Обычные |
Серьезность предупреждения | Определяет серьезность предупреждения. | Ошибка |
Максимальный размер файла Azure (в МБ) | Максимальный размер файлов данных, хранящихся в хранилище BLOB-объектов Azure. Рабочий процесс использует это значение как максимальный объем хранения каждого файла. | 1048576 |
Критическое пороговое значение | Монитор изменит свое состояние на критическое, если значение опустится ниже указанного порогового значения. Если значение находится между этим пороговым значением и пороговым значением предупреждения (включительно), то монитор будет находиться в состоянии предупреждения. | 10 |
Включено | Включает или отключает рабочий процесс. | Да |
Создает предупреждения | Определяет, создает ли рабочий процесс предупреждения. | Да |
Интервал (в секундах) | Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс. | 900 |
Время синхронизации | Время синхронизации указывается в 24-часовом формате и может быть опущено. |
|
Время ожидания (в секундах) | Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный. | 300 |
Пороговое значение предупреждения | Монитор изменит состояние на "Предупреждение", если значение опускается ниже этого порогового значения. | 20 |
Target | Microsoft.SQLServer.2016.DBFile | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2016.DBFileSizeMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2016.Monitoring.DBFileSpaceMonitor" Accessibility="Public" Enabled="true" Target="SQL2016Core!Microsoft.SQLServer.2016.DBFile" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.DBFileSizeMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Monitoring.DBFileSpaceMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.File"]/FileName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.FileGroup"]/GroupName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Target/Host/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter4>
<AlertParameter5>$Target/Host/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter5>
</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/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>SQL DB File</ObjectName>
<CounterName>DB File Free Space (%)</CounterName>
<InstanceName/>
<DatabaseName>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<DBFileId>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.File"]/FileID$</DBFileId>
<Value>$Data/Property[@Name='FreeSpacePercent']$</Value>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
</Configuration>
</UnitMonitor>