Configuração de Fechamento Automático

Microsoft.SQLServer.2012.Database.Configuration.AutoClose (UnitMonitor)

Monitora a configuração de fechamento automático no banco de dados

Knowledge Base article:

Resumo

Este monitor verifica a configuração Fechamento Automático deste banco de dados. Como este monitor faz parte de um requisito geral de padrões, um alerta será gerado se a configuração não atender ao padrão especificado.

A opção AUTO_CLOSE é útil para bancos de dados de área de trabalho porque permite que os arquivos de banco de dados sejam gerenciados como arquivos comuns. Eles podem ser movidos, copiados para fazer backups ou mesmo enviados por email a outros usuários. Entretanto, quando o banco de dados for definido como AUTOCLOSE = ON, uma operação que inicia o desligamento automático do banco de dados limpa o cache de planos da instância do SQL Server. A limpeza do cache de planos gera uma recompilação de todos os planos de execução subsequentes e pode causar uma queda repentina e temporária no desempenho de consultas

O espelhamento do banco de dados requer AUTO_CLOSE OFF.

O fechamento automático só faz sentido quando você tem certeza de que o padrão de uso de aplicativo manterá o banco de dados fechado por períodos relativamente longos. Alguns aplicativos de usuário único e alguns bancos de dados de multilocação podem se beneficiar com AUTO_CLOSE ON. Para os demais usos, em geral, não é aconselhável, a menos que você compreenda o comportamento e os padrões de uso do aplicativo

  • Nota de Design/implementação - Do BOL

  • Se o banco de dados não for iniciado, as propriedades que o Microsoft SQL Server recuperar acessando o banco de dados diretamente, em vez de recuperar o valor dos metadados, retornarão o valor NULL. Ou seja, se o banco de dados tiver AUTO_CLOSE definido como ON ou, caso contrário, o banco de dados está off-line.

Configuração

Quando a configuração Fechamento Automático for ON, o banco de dados será desligado corretamente e seus recursos serão liberados após a saída do último usuário.

AUTO_CLOSE {ON | OFF}

Causas

Um alerta de aviso será gerado se a opção Fechamento Automático não corresponder à configuração necessária. O monitor é predefinido para alertar quando essa configuração está definida como “ON”.

Resoluções

Este problema pode ser resolvido da seguinte maneira:

Como alternativa, se este monitor não for um problema para o banco de dados:

Parâmetros Substituíveis

Nome

Descrição

Valor Padrão

Prioridade do Alerta

Define a Prioridade do Alerta.

Normal

Severidade do Alerta

Define a Severidade do Alerta.

Aviso

Desabilitar a Verificação para o SQL Express

Habilita ou desabilita a verificação de versão do SQL Express.

Sim

Habilitado

Habilita ou desabilita o fluxo de trabalho.

Não

Valor Esperado

Para exibir o conjunto de valores possíveis, consulte a seção "Configuração" estando a par deste monitor.

DESATIVADO

Gerar Alertas

Define se o fluxo de trabalho gera um Alerta.

Sim

Intervalo (segundos)

O intervalo recorrente de tempo em segundos durante o qual executar o fluxo de trabalho.

43.200

Tempo limite (segundos)

Especifica o tempo durante o qual o fluxo de trabalho pode ser executado antes de ser fechado e marcado como com falha.

300

Element properties:

TargetMicrosoft.SQLServer.2012.Database
Parent MonitorMicrosoft.SQLServer.2012.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2012.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
Erro na Configuração de Fechamento Automático
A configuração de fechamento automático do banco de dados "{0}" na instância SQL "{1}" do computador "{2}" não está definida de acordo com a prática recomendada.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2012.Database.Configuration.AutoClose" Accessibility="Public" Enabled="false" Target="SQL2012Core!Microsoft.SQLServer.2012.Database" ParentMonitorID="Microsoft.SQLServer.2012.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.Database.Configuration.AutoClose.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</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="ConfigurationValueOK" MonitorTypeStateID="ConfigurationValueOK" HealthState="Success"/>
<OperationalState ID="ConfigurationValueNotOK" MonitorTypeStateID="ConfigurationValueNotOK" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<ConnectionString>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<ConfigValue>AutoClose</ConfigValue>
<ExpectedValue>OFF</ExpectedValue>
<ExcludeOnExpress>true</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>