Nous avons créé un cluster de basculement Windows, puis a ajouté deux instances de SQL Server en tant que nœuds d'un cluster de basculement SQL Server.
Nous définissons les serveurs pour utiliser "Alwayson Disponibilité Groupes" dans SQL Configuration Manager.
Pour tester un basculement, j'ai chargé et dirigé une longue requête, puis apporté le nœud actif en utilisant le gestionnaire de cluster de basculement pour arrêter le service de cluster sur le nœud actif.
La requête s'est cassée sans connexion et le serveur a montré comme indisponible pendant environ 20 secondes avant que le nœud n'a été drainé et que le nouveau nœud a pris le relais.
Est-ce que j'ai fait cela mal? Comment devrais-je l'avoir configuré de manière à ce qu'il y ait peu de perte de connectivité?
Est-ce que toujours ne pas toujours?
Vous avez un tas de questions différentes ici.
Q: Quelle est la chose "toujours sur"?
Microsoft utilise ce nom de marque (qui a été écrit sans espace avant 2016) pour décrire deux caractéristiques différentes:
Utilisez ces termes pour décrire quelle spécifique toujours sur la fonctionnalité que vous utilisez.
Q: Dans un basculement, sera-t-il toujours sur?
Ni FCIS ni AGS ne sont vraiment toujours sur. Pendant un basculement, vos transactions en cours d'exécution échoueront et les tentatives de connexion peuvent échouer pendant 5 à 60 secondes (ou plus). C'est à vous de construire dans la logique de nouvelle rétruite gracieuse dans vos applications ou Construire des outils de capacité dégradés tels que le débordement de la pile .
Q: Comment puis-je configurer toujours sur?
Il varie considérablement sur la base de:
Ce sont de grandes décisions qui impliquent beaucoup de travaux d'architecture. Pour plus de détails, citons les détails ci-dessus et nous pourrons vous en dire plus sur la façon de la configurer.
Q: N'est-ce pas simplement une question de vérifier la case pour toujours?
Non.
Vous pourriez être confondre "toujours sur" AGS (groupes de disponibilité) avec FCIS (instances de cluster de basculement), qui dépendent tous deux de WSFC (cluster de basculement de Windows Server).
En cliquant sur 'Toujours sur', ne vous garantit que vous avez maintenant une configuration AG. Vous devez définir ASYNC, synchroniser, lire uniquement/bascules de basculement, définir la priorité et prendre d'autres considérations telles que l'application prend en charge cette configuration. Par exemple, votre application peut utiliser les transactions MSDTC de base de données croisées, qui ne sont pas prises en charge et peuvent provoquer une corruption irrécupérable nécessitant une restauration de sauvegarde.
En ce moment, ce que vous vivez est un basculement FCI. C'est normal. Cela arrête les services sur un nœud et commence les services sur l'autre nœud. Cela fonctionne sur le niveau d'instance. Une solution AG est configurée par base de données et les services sont en cours d'exécution sur les deux nœuds. SQL utilise les API WSFC pour conserver les données de synchronisation sur les répliques et la base de données échoue à cette réplique; Notez pas l'instance.
Vous voudrez peut-être effectuer beaucoup de tests à ce sujet avant de vous déployer à la production.
Ma méthode préférée de tester un basculement dans un AG est de simplement déconnecter le primaire actuel. Il suffit de le couper, éteignez-le de la console, yank son réseau, tuez le service SQL avec une balle d'argent, peu importe. Vous ne devriez pas le tester à partir de quelque chose d'interface graphique, car ce n'est pas la façon dont le chaos fonctionne.
Réponse de la communauté Wiki :
C'est un comportement normal et attendu pour un cluster.
Il incombe à l'application de gérer la déconnexion gracieusement. Toutes les transactions en vol seront perdues, car seulement engagées transactions sont répliquées entre serveurs.