Остаток свободного пространства в файле базы данных

Microsoft.SQLServer.Windows.Monitor.DBFile.DBFileSpace (UnitMonitor)

Монитор создает предупреждение, когда объем доступного дискового пространства (включая как уже выделенное пространство, так и свободное пространство на носителе) опускается ниже порогового значения предупреждения, выраженного в процентах от суммы размера данных и свободного дискового пространства. Монитор создает критическое предупреждение, если доступное пространство опускается ниже критического порогового значения.

Knowledge Base article:

Сводка

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

Причины

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

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

Без автоматического увеличения

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

Автоматическое увеличение включено

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

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

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

Разрешения

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

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

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

Имя

Описание

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

Приоритет предупреждения

Определение приоритета оповещений.

Обычный

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

Определяет серьезность предупреждения.

Ошибка

Максимальный размер файла Azure (МБ)

Максимальный размер файла данных в хранилище BLOB-объектов Azure. Рабочий процесс будет рассматривать это значение как максимальный объем хранения каждого файла.

1048576

Критическое пороговое значение

Монитор изменит свое состояние на критическое, если значение опустится ниже указанного порогового значения. Если значение находится между этим пороговым значением и пороговым значением предупреждения (включительно), то монитор будет находиться в состоянии предупреждения.

10

Включено

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

Да

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

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

Нет

Интервал (в секундах)

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

900

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

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

 

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

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

300

Время ожидания для подключения к базе данных (секунды)

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

15

Порог "Предупреждение"

Монитор изменит состояние на "Предупреждение", если значение опускается ниже этого порогового значения.

20

Element properties:

TargetMicrosoft.SQLServer.Windows.DBFile
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Windows.MonitorType.DBFile.DBFileSpace
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL в Windows: в файле базы данных заканчивается свободное место
В файле базы данных "{0}" файловой группы "{1}" в базе данных "{2}" экземпляра SQL Server "{3}" на компьютере "{4}" заканчивается свободное место. Дополнительные сведения см. в соответствующем разделе базы знаний.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.DBFile.DBFileSpace" Accessibility="Public" Enabled="false" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBFile" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.DBFile.DBFileSpace" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.DBFile.DBFileSpace.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</AlertParameter3>
<AlertParameter4>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Filegroup"]/GroupName$</AlertParameter4>
<AlertParameter5>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='FreeSpaceMB']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='FreeSpacePercent']$</AlertParameter7>
</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>
<MachineName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<FileName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</FileName>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
<ValuePropertyName>FreeSpacePercentMon</ValuePropertyName>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<ConnectionString>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Host/Host/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>