Cette erreur se produit quand le réplica de disponibilité change de rôle.
Cette erreur se produit quand le réplica de disponibilité change de rôle.
Cet événement est désactivé par défaut dans SQL Server. Il peut être activé via l'instruction TSQL suivante : sp_altermessage 19406, 'with_log', 'true'
L'état du réplica a changé en raison d'un démarrage, d'un basculement, d'un problème de communication ou d'une erreur de cluster. Consultez l'événement pour plus d'informations.
Si l'état est passé à PRIMARY_PENDING, vérifiez sys.dm_hadr_database_replica_states. Si database_state_desc = RECOVERY_PENDING (synchronization_health_desc est NOT_HEALTHY), essayez « ALTER DATABASE base_de_données SET HADR RESUME; ». Sinon, s'il s'agit du seul réplica (pas de réplica secondaire), (si nécessaire, prenez d'abord un instantané de la base de données à titre de sauvegarde) essayez « ALTER DATABASE base_de_données SET HADR OFF; » pour supprimer Always On afin de récupérer manuellement la base de données avec le service SQL ou un redémarrage de la base de données (ALTER DATABASE ONLINE).
TSQL : ALTER DATABASE DbName SET HADR RESUME;
TSQL : ALTER DATABASE DbName SET ONLINE;
TSQL : RESTORE DATABASE DbName WITH RECOVERY;
Si le nouvel état est RESOLVING_NORMAL, consultez les autres messages.
Si le nouvel état est PRIMARY_NORMAL / SECONDARY_NORMAL, cela peut indiquer la réussite d'un basculement. Si le basculement ne correspond pas au résultat attendu, consultez les autres messages.
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 |
Gravité | Définit la gravité de l'alerte. | 1 |
Target | Microsoft.SQLServer.2012.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.2012.AlwaysOn.AvailabilityReplicaRoleChanged" Target="AlwaysOnDisc!Microsoft.SQLServer.2012.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.2012.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.2012.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.2012.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.2012.AlwaysOn.AvailabilityReplicaRoleChanged.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>