Конфигурация автоматического сжатия

Microsoft.SQLServer.Linux.Monitor.Database.AutoShrinkConfiguration (UnitMonitor)

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

Knowledge Base article:

Сводка

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

Конфигурация

При задании для параметра автоматического сжатия статистики значения ON файлы базы данных подлежат периодическому сжатию. И файлы данных, и файлы журналов могут быть автоматически сжаты. Автоматическое сжатие уменьшает размер журнала транзакций только в случае, если выбрана простая модель восстановления базы данных или была создана резервная копия журнала. Если этот параметр имеет значение OFF, файлы базы данных не будут автоматически сжиматься при периодической проверке неиспользуемого пространства. При включенном параметре AUTO_SHRINK файлы будут сжаты, если более 25 процентов файла составляет неиспользуемое пространство. Файл будет сжат до размера, в котором 25 процентов файла — это неиспользуемое место, или до того размера, который был у файла при создании, в зависимости от того, какая величина больше. Невозможно сжать базу данных, доступную только для чтения.

Автоматическое сжатие может привести к излишней фрагментации индекса, увеличению размера журнала транзакций и количества операций ввода-вывода. Автоматическое сжатие следует использовать только в случае, если вероятность дальнейшего увеличения базы данных мала и после сжатия можно выполнить инструкцию ALTER INDEX … REORGANIZE.

AUTO_SHRINK {ON | OFF}

Причины

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

Разрешения

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

Если же этот монитор не важен для этой базы данных:

Внешнее

Дополнительные сведения об этих параметрах: Параметры ALTER DATABASE SET (Transact-SQL).

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

Имя

Описание

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

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

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

Обычный

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

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

Предупреждение

Включено

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

Нет

Ожидаемое значение

Ожидаемое значение параметра конфигурации базы данных. Для просмотра набора допустимых значений обратитесь к разделу "Конфигурация" статьи базы знаний для этого монитора.

ВЫКЛ.

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

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

Да

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

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

43200

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

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

 

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

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

300

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

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

15

Element properties:

TargetMicrosoft.SQLServer.Linux.Database
Parent MonitorMicrosoft.SQLServer.Linux.Rollup.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Linux.MonitorType.Database.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL на Linux: ошибка конфигурации автоматического сжатия
Значение параметра "Автоматическое сжатие" для базы данных "{0}" в экземпляре SQL "{1}" на компьютере "{2}" отличается от рекомендуемого.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.Database.AutoShrinkConfiguration" Accessibility="Public" Enabled="false" Target="SqlDiscL!Microsoft.SQLServer.Linux.Database" ParentMonitorID="Microsoft.SQLServer.Linux.Rollup.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.Database.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.Database.AutoShrinkConfiguration.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ConfigurationValueOK" MonitorTypeStateID="ConfigurationValueOK" HealthState="Success"/>
<OperationalState ID="ConfigurationValueNotOK" MonitorTypeStateID="ConfigurationValueNotOK" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<ConfigName>AutoShrink</ConfigName>
<ExpectedValue>OFF</ExpectedValue>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>