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 |
Intervall (Sekunden) | Gibt das Wiederholungsintervall in Sekunden für die Ausführung des Workflows an. | 300 |
Priorität | Definiert die Warnungspriorität. | 1 |
Schweregrad | Definiert den Warnungsschweregrad. | 1 |
Synchronisierungszeit | Synchronisierungszeit |
|
Timeout (Sekunden) | Gibt die Zeit an, zu der der Workflow ausgeführt werden dann, bevor er geschlossen und als fehlerhaft markiert wird. | 200 |
Timeout für Datenbankverbindung (Sekunden) | Es tritt ein Fehler beim Workflow auf, und ein Ereignis wird registriert, wenn der Workflow nicht innerhalb des angegebenen Zeitraums auf die Datenbank zugreifen kann. | 15 |
Target | Microsoft.SQLServer.Linux.AvailabilityReplica | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
|
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.SQLServer.Linux.DataSource.EventReaderSingleParam | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.Linux.EventRule.AvailabilityReplica.RoleChanged" Target="SqlDiscL!Microsoft.SQLServer.Linux.AvailabilityReplica" Enabled="true" ConfirmDelivery="true" Remotable="true">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Linux.DataSource.EventReaderSingleParam">
<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>
<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>
<FilterMsg>The state of the local availability replica</FilterMsg>
<ParamRegex>^The state of the local availability replica in (availability group '.+') has changed from '[^\s']+' to '[^\s']+'\.(?:[^']*)$</ParamRegex>
<TargetKey>availability group '$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.AvailabilityReplica"]/AvailabilityGroupName$'</TargetKey>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.AvailabilityReplica.RoleChanged.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: 19406. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>