MSSQL 2016 : Impossible d'obtenir un verrou exclusif sur la base de données

Microsoft.SQLServer.2016.Could_not_obtain_exclusive_lock_on_database_5_Rule (Rule)

Vous pouvez recevoir cette erreur qui indique qu'un verrou n'a pas pu être obtenu pour la base de données modèle si celle-ci est en cours d'utilisation lors de l'exécution de l'instruction CREATE DATABASE. Dans la mesure où une nouvelle base de données est copiée à partir de la base de données, celle-ci ne doit pas être active.

Knowledge Base article:

Résumé

Vous pouvez recevoir cette erreur qui indique qu’un verrou n’a pas pu être obtenu pour la base de données model si model celle-ci est en cours d’utilisation lors de l’exécution de l’instruction CREATE DATABASE. Dans la mesure où une nouvelle base de données est copiée à partir de la base de données model, celle-ci ne doit pas être active.

Solutions

Validez ou restaurez toutes les transactions de la base de données mentionnée dans le message d'erreur, puis fermez toutes les connexions qui utilisent cette base de données.

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

Active ou désactive le flux de travail.

Oui

Priorité

Définit la priorité de l'alerte.

1

Severité

Définit la gravité de l'alerte.

1

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID1807
Event Source$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2016 : Impossible d'obtenir un verrou exclusif sur la base de données
{0}
Event LogApplication
CommentMom2016ID='{C1B6F7B2-17C5-4774-B2B9-955BF830A77C}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2016.Could_not_obtain_exclusive_lock_on_database_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{C1B6F7B2-17C5-4774-B2B9-955BF830A77C}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>1807</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2016.Could_not_obtain_exclusive_lock_on_database_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>