MSSQL 2016: Exklusivsperre für Datenbank konnte nicht abgerufen werden

Microsoft.SQLServer.2016.Could_not_obtain_exclusive_lock_on_database_5_Rule (Rule)

Sie können eine Fehlermeldung darüber erhalten, dass keine Sperre für die Modelldatenbank abgerufen werden konnte, wenn die Datenbank nicht verwendet wird und Sie eine CREATE DATABASE-Anweisung ausgeben. Da eine neue Datenbank aus der Modelldatenbank kopiert wird, muss die Modelldatenbank einen aktivitätsfreien Status aufweisen.

Knowledge Base article:

Zusammenfassung

Sie können diesen Fehler erhalten, der besagt, dass keine Sperre für die Datenbank model bezogen werden konnte, wenn die Modelldatenbank verwendet wird, während Sie eine Anweisung zum DATENBANK ERSTELLEN erzeugen. Da aus der Modelldatenbank eine neue Datenbank kopiert wurde, muss sich die Modelldatenbank in einem Status ohne Aktivität befinden.

Lösungen

Führen Sie für alle Transaktionen in der Datenbank, die im Fehler genannt werden, einen Commit- oder Rollbackvorgang aus, und schließen Sie alle Verbindungen, von denen die Datenbank verwendet wird.

Parameter, die außer Kraft gesetzt werden können

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Priorität

Definiert die Warnungspriorität.

1

Schweregrad

Definiert den Warnungsschweregrad.

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: Exklusivsperre für Datenbank konnte nicht abgerufen werden
{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>