Tout au long de la documentation MS pour Groupes de disponibilité AlwaysOn (AG) et Instances de cluster de basculement AlwaysOn (FCI) Je vois le schéma suivant:
Voici un exemple de lien MS en discutant .
Étant donné que les options # 1 et # 2 sont toutes deux destinées aux scénarios HA, comment puis-je choisir entre elles? Si MS publiait les coûts et les mesures RPO/RTO à la fois pour # 1 et # 2, il serait assez facile de décider lequel je veux.
Ou peut-être existe-t-il une autre façon de comprendre les différences de ROI entre ces options. Par exemple, l'option # 2 est la mieux adaptée aux VLDB et l'option # 1 est la mieux adaptée aux volumes de transactions très élevés. Je ne sais pas.
Encore une fois, quels sont les critères de sélection qu'un DBA utilise pour choisir entre les options # 1 et # 2?
Pour compliquer encore les choses, je sais que les options # 1 et # 2 peuvent être combinées! Quand est-il sage de combiner les deux options? Quand est-il inutile de combiner les deux options? Je sais que lorsque ces options sont combinées, l'AG ne prend plus en charge le basculement automatique. C'est une anecdote intéressante, mais ne répond pas à ma question.
Par ailleurs, j'ai l'intention de provisionner ma solution finale dans Azure IaaS. Si j'utilise un Always On FCI, je vais probablement créer le quasi-SAN à l'aide de Storage Spaces Direct (S2D).
J'ai trouvé deux articles qui donnent une comparaison. Le premier est MS docs , et l'autre est Choosing the Right Availability Tech . Les deux ont un tableau comme celui-ci:
╔═════════════════════════════╦══════════════════════════╗
║ FCI ║ AG ║
╠═════════════════════════════╬══════════════════════════╣
║ * Server Level ║ * Database Level ║
╠═════════════════════════════╬══════════════════════════╣
║ * Requires shared storage ║ * Uses direct ║
║ (SAN or Storage Spaces ║ attached storage ║
║ Direct) ║ ║
╠═════════════════════════════╬══════════════════════════╣
║ * RTO from 30 ║ * RTO typically less ║
║ seconds to 20 minutes. ║ than 30 seconds ║
╠═════════════════════════════╬══════════════════════════╣
║ * RPO: no data loss. ║ * RPO: ??? ║
╠═════════════════════════════╬══════════════════════════╣
║ * Only Passive Secondaries ║ * Active or Passive ║
║ ║ Secondaries ║
╠═════════════════════════════╬══════════════════════════╣
║ * One SQL Server ║ * Multiple SQL Server ║
║ instance/license ║ instances / licenses ║
╚═════════════════════════════╩══════════════════════════╝
L'article n'a pas commenté AG RPO, mais j'ai lu ailleurs qu'il n'y a aucune perte de données lors de la récupération d'une réplique secondaire synchrone. Je ne sais pas si cela est vrai et je ne sais pas quel pourrait être le RPO de la réplique secondaire asynchrone. Dans Azure, il y a ne ressource AG qui nécessite deux contrôleurs de domaine sont créés avec l'AG (peu importe si vous avez vos propres contrôleurs de domaine). Je ne sais pas si un Azure FCI a la même exigence lourde.
Plus important encore - je ne sais toujours pas pourquoi il est utile de combiner les deux techniques. J'ai seulement lu qu'il "améliore" ou "maximise" la disponibilité. C'est une vague affirmation de l'OMI.
Plus de trivia: J'ai également repéré une discussion suggérant que n FCI de deux nœuds devrait être évité .
En général, FCI est plus avantageux par rapport à AG pour diverses raisons déjà mentionnées ci-dessus. Bien sûr, le FCI à 2 nœuds est complètement génial mais ne doit pas être construit directement sur les espaces de stockage car S2D est connu pour être problématique dans les déploiements à moins de 4 nœuds ( source ).
Pour Azure, je préfère m'en tenir à un VSAN conçu pour fonctionner dans des scénarios à 2 ou 3 nœuds comme ( exemple ).
ici est un peu plus d'informations sur FCI vs AG que vous pourriez trouver utiles aussi
Cela dépend de l'exigence et du besoin de chaque client quant à la meilleure option parmi les deux (options 1 et 2) à des fins de haute disponibilité. Divers critères généralement vérifiés sont fournis ci-dessous:
S'il s'agit d'une édition standard, vous devrez opter pour FCI (Option 1).
Allez avec AG (Synchrone - Option 2), si toutes les conditions ci-dessous satisfont:
Ou
Si vous devez décharger des requêtes de rapport (ou des sauvegardes) sur le serveur secondaire pour réduire la charge sur l'instance principale, utilisez AG.
Je combinerais (1 et 3) ou (2 et 3) à la fois pour HA et DR, où 1 ou 2 fournirait une solution HA et 3 serait une solution DR. Il est donc toujours préférable de combiner 1 & 3 ou 2 & 3 pour une stratégie HA et DR complète.
Mais je ne sais pas s'il est avantageux de combiner 1 et 2.