web-dev-qa-db-fra.com

Pourquoi suis-je incapable de créer ce groupe de disponibilité? (Erreur 35220)

J'essayais de créer un groupe de disponibilité sur une instance SQL Server 2017 et je rencontre une erreur 35220:

Ne pouvait pas traiter l'opération. Toujours sur les groupes de disponibilité, Replica Manager attend l'ordinateur hôte de démarrer un groupe de clustering de basculement de basculement Windows Server (WSFC) et de la joindre. Soit l'ordinateur local n'est pas un nœud de cluster, soit le nœud de cluster local n'est pas en ligne. Si l'ordinateur est un nœud de cluster, attendez qu'il s'agisse de rejoindre le cluster. Si l'ordinateur n'est pas un nœud de cluster, ajoutez l'ordinateur à un cluster WSFC. Ensuite, réessayez l'opération.

J'ai été souples, car l'hôte était très définitivement faisant partie d'un WSFC, et le nœud était en ligne. J'ai finalement trouvé la réponse dans un blog qui était axée sur des groupes de disponibilité multi-sous-sous-notes, que je n'avais pas examiné plus tôt, car la mienne n'était pas multi-sous-réseau.

Ainsi, je pose cela ici pour donner une meilleure visibilité à la solution dans le cas où une autre pauvre DBA se fait creusement de la même manière que je l'ai fait. Je vais poster la solution ci-dessous.

2
RollingDBA

Voici le blog où j'ai trouvé la réponse: https://bahtisametcoban.home.blog/2019/01/04/always-on-Availability-groups-with-Multi-subnet-failver-Cluster/ .

Au cas où vous n'avez pas envie de lire, la réponse est

Si vous activez [Groupes de disponibilité] avant que le cluster ne soit entièrement opérationnel et que vous prenez une erreur lorsque vous essayez de créer AG.

Lorsque j'ai installé et configuré SQL Server sur les machines en question, j'ai sauté le pistolet sur l'activation des groupes de disponibilité (SQL Server Configuration Manager->Services->SQL Server->Properties->AlwaysOn High Availability tab) et vérifié la case (et redémarré le service) avant la création du WSFC. C'est ce qui a causé l'erreur lorsque j'ai essayé de créer un AG.

Le correctif est facile: il suffit de désactiver les groupes de disponibilité, redémarrez le service, puis réactivez-les et redémarrez-le à nouveau.

J'espère que cela a été utile!

4
RollingDBA

Si vous exécutez ceci sur le serveur Noyau 2019 (donc pas d'interface graphique), essayez les commandes PowerShell suivantes. Ils sont l'équivalent de ligne de commande des "groupes de disponibilité désactivables, redémarrent le service, puis les réactive" Commentaire dans la réponse ci-dessus:

Disable-SqlAlwaysOn -Path "SQLSERVER:\Sql\server_name\instance_name"
Enable-SqlAlwaysOn -Path "SQLSERVER:\Sql\server_name\instance_name"

Vous pouvez exécuter cette commande à partir d'un Enter-PSSession Coquille. (Ne doit pas être à partir du serveur lui-même). Les commandes vous demanderont de redémarrer le service.

Un autre point de référence: https://www.percyreyes.com/2016/01/Error-local-node-is-not-able-à.html

2
VeeTheSecond