Оставшееся свободное место в файле журнала базы данных

Microsoft.SQLServer.2016.Monitoring.DBLogFileSpaceMonitor (UnitMonitor)

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

Knowledge Base article:

Сводка

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

Причины

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

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

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

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

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

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

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

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

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

Решения

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

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

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

Название

Описание

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

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

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

Обычные

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

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

Ошибка

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

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

1048576

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

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

10

Включено

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

Да

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

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

Да

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

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

900

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

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

 

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

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

300

Пороговое значение предупреждения

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

20

Element properties:

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

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Monitoring.DBLogFileSpaceMonitor" Accessibility="Public" Enabled="true" Target="SQL2016Core!Microsoft.SQLServer.2016.DBLogFile" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.DBLogFileSizeMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Monitoring.DBLogFileSpaceMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.File"]/FileName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter3>
<AlertParameter4>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='FreeSpaceMB']$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='FreeSpacePercent']$</AlertParameter6>
</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/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</SqlInstanceName>
<DatabaseName>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<DBFileId>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.File"]/FileID$</DBFileId>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
</Configuration>
</UnitMonitor>