Dieser Fehler tritt auf, wenn das Verfügbarkeitsreplikat die Rolle wechselt.
Dieser Fehler tritt auf, wenn das Verfügbarkeitsreplikat die Rolle wechselt.
Dieses Ereignis ist in SQL Server standardmäßig deaktiviert. Es kann durch folgende TSQL aktiviert werden: sp_altermessage 19406, 'with_log', 'true'.
Der Replikatstatus wurde aufgrund eines Startvorgangs, Failovers, Kommunikationsproblems oder Clusterfehlers geändert. Weitere Informationen finden Sie im entsprechenden Ereignis.
Wenn der "Geändert in"-Status PRIMARY_PENDING lautet, prüfen Sie "sys.dm_hadr_database_replica_states". Wenn "database_state_desc = RECOVERY_PENDING" ("synchronization_health_desc" ist NOT_HEALTHY), verwenden Sie "ALTER DATABASE db SET HADR RESUME;". Wenn es sich ansonsten um das einzige Replikat handelt (kein sekundäres Replikat), gehen Sie folgendermaßen vor (ziehen Sie ggf. eine Datenbankmomentaufnahme als Sicherung in Betracht): "ALTER DATABASE db SET HADR OFF;", um Always On zu entfernen und dann die Datenbank manuell mit dem SQL-Dienst oder einem Datenbankneustart (ALTER DATABASE ONLINE) wiederherzustellen.
TSQL: ALTER DATABASE DbName SET HADR RESUME;
TSQL: ALTER DATABASE DbName SET ONLINE;
TSQL: RESTORE DATABASE DbName WITH RECOVERY;
Wenn der "Geändert in"-Status RESOLVING_NORMAL lautet, prüfen Sie auf weitere Meldungen.
Wenn der "Geändert in"-Status PRIMARY_NORMAL / SECONDARY_NORMAL lautet, weist dies möglicherweise auf ein erfolgreiches Failover hin. Prüfen Sie auf weitere Fehlermeldungen, wenn das Failover nicht erwartet wurde.
Name | Beschreibung | Standardwert |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Ja |
Priorität | Definiert die Warnungspriorität. | 1 |
Schweregrad | Definiert den Warnungsschweregrad. | 1 |
Target | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplicaRoleChanged" Target="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica" Enabled="true" ConfirmDelivery="true" Remotable="true">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica"]/PerformanceObjectName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<!--Default instance with SQLServer object name-->
<Value Type="String">MS$Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica"]/PerformanceObjectName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">19406</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[1]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica"]/AvailabilityGroupName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplicaRoleChanged.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>