- Article
- 11 minutes de lecture
S'applique à:Azure SQL-Datenbank
Comme décrit dansArchitecture fonctionnelle distribuée, Azure SQL Database Hyperscale possède deux types différents de nœuds de calcul, également appelés « réplicas » :
- Principal : sert les opérations de lecture et d'écriture
- Secondaire : fournit leéchelle horizontale lors de la lecture, unLa haute disponibilitéc'est àréplication géographique
Les répliques secondaires sont toujours en lecture seule et peuvent être de trois types différents :
- Réplique haute disponibilité
- réplique géographique
- réplique nommée
Chaque type a une architecture, un ensemble de fonctionnalités, un objectif et un coût différents. Selon les ressources dont vous avez besoin, vous pouvez utiliser un type ou les trois types.
Réplique haute disponibilité
Une réplique haute disponibilité (HA) utilise les mêmes serveurs de pages que la réplique principale. Par conséquent, aucune copie de données n'est requise pour ajouter un réplica haute disponibilité. Les répliques à haute disponibilité sont principalement utilisées pour augmenter la disponibilité de la base de données. Ils agissent comme des ressources de sauvegarde à des fins de basculement. Si le réplica principal devient indisponible, le basculement vers l'un des réplicas haute disponibilité existants se produit automatiquement et rapidement. Vous n'avez pas besoin de modifier la chaîne de connexion ; Les applications peuvent subir un temps d'arrêt minimal lors du basculement, car les connexions actives sont supprimées. Comme d'habitude dans ce scénario, une logique de nouvelle tentative appropriée est recommandée. Plusieurs pilotes fournissent déjà un certain niveau de logique de répétition automatique. Si vous utilisez .NET, ledernière bibliothèque Microsoft.Data.SqlClientfournit une prise en charge native complète de la logique de répétition automatique configurable.
Les réplicas à haute disponibilité utilisent les mêmes noms de serveur et de base de données que le réplica principal. Votre objectif de niveau de service est également toujours le même que celui du réplica principal. Les réplicas HA ne peuvent pas être affichés ou gérés en tant que ressources autonomes via le portail ou une API.
Il peut y avoir de zéro à quatre répliques hautement disponibles. Son numéro peut être modifié lors de la création de la base de données ou après la création de la base de données via des outils de gestion et des points de terminaison communs (par exemple, PowerShell, AZ CLI, Portal, REST API). La création ou la suppression de répliques à haute disponibilité n'affecte pas les connexions actives sur la réplique principale.
Connexion à un réplica haute disponibilité
Dans les bases de données hyperscale, l'argument estbut d'utilisation
La chaîne de connexion utilisée par le client détermine si la connexion est acheminée vers le réplica principal en lecture/écriture ou vers un réplica en lecture seule hautement disponible. si l'optionbut d'utilisation
est réglé surlecture seule
et la base de données n'a pas de réplica secondaire, la connexion est dirigée vers le réplica principal et le comportement par défaut estLire écrire
.
-- Chaîne de liaison avec l'application intentServer=tcp:<myserver>.database.windows.net;Database=<mydatabase>;ApplicationIntent=ReadOnly;User ID=<myLogin>;Password=<myPassword>;Trusted_Connection=False; Criptografar=Verdadeiro ;
Toutes les répliques HA sont identiques en termes de capacité de ressources. S'il existe plusieurs répliques HA, la charge de travail d'intention de lecture est répartie de manière aléatoire sur toutes les répliques HA disponibles. Si vous disposez de plusieurs réplicas à haute disponibilité, sachez que chaque réplica peut avoir une latence de données différente pour les modifications de données effectuées sur le réplica principal. Chaque réplica HA utilise les mêmes données que le réplica principal sur le même ensemble de serveurs de pages. Cependant, les caches de données locales sur chaque réplica HA reflètent les modifications apportées au réplica principal par le service de journal des transactions, qui transfère les journaux du réplica principal vers les réplicas HA. Par conséquent, l'application des journaux peut se produire à des taux différents en fonction de la charge de travail qu'un réplica HA traite, de sorte que différents réplicas peuvent avoir des latences de données différentes par rapport au réplica principal.
réplique nommée
Un réplica nommé, comme un réplica à haute disponibilité, utilise les mêmes serveurs de pages que le réplica principal. Comme pour les répliques HA, une copie des données n'est pas nécessaire pour ajouter une réplique nommée.
Il existe des différences entre les instances dupliquées HA et les instances dupliquées nommées :
- Les réplicas nommés apparaissent en tant que bases de données SQL Azure standard (en lecture seule) dans le portail et les appels d'API (AZ CLI, PowerShell, T-SQL).
- Les réplicas nommés peuvent avoir un nom de base de données différent de celui du réplica principal et éventuellement résider sur un serveur logique différent (à condition qu'il se trouve dans la même région que le réplica principal).
- Les réplicas nommés ont leur propre objectif de niveau de service qui peut être défini et modifié indépendamment du réplica principal.
- Les répliques nommées prennent en charge un maximum de 30 répliques nommées (pour chaque réplique principale).
- Les répliques nommées prennent en charge différents processus d'authentification pour chaque réplique nommée, créant différentes connexions aux serveurs logiques hébergeant les répliques nommées.
Par conséquent, les répliques nommées offrent plusieurs avantages par rapport aux répliques HA lorsqu'il s'agit de charges de travail en lecture seule :
- Les utilisateurs connectés à un réplica nommé ne sont pas déconnectés lorsque le réplica principal est augmenté ou réduit. De même, les utilisateurs connectés au réplica principal ne sont pas affectés par la mise à l'échelle ou la réduction des réplicas nommés.
- Les charges de travail exécutées sur un réplica principal ou nommé ne sont pas affectées par les requêtes de longue durée exécutées sur d'autres réplicas.
L'objectif principal des répliques nommées est de permettre une variété de scénarioséchelle horizontale lors de la lectureet l'amélioration des charges de travail hybrides de traitement transactionnel et analytique (HTAP). Des exemples de création de telles solutions peuvent être trouvés ici :
Les répliques nommées offrent la flexibilité et l'élasticité nécessaires pour s'adapter à de nombreux autres cas d'utilisation en plus des scénarios clés répertoriés ci-dessus :
- accès isolement: vous pouvez accorder l'accès à un réplica nommé spécifique, mais pas au réplica principal ou à d'autres réplicas nommés.
- Objectif de niveau de service dépendant de la charge de travail : étant donné qu'un réplica nommé peut avoir son propre objectif de niveau de service, différents réplicas nommés peuvent être utilisés pour différentes charges de travail et cas d'utilisation. Par exemple, un réplica nommé peut être utilisé pour gérer les requêtes PowerBI, tandis qu'un autre peut être utilisé pour envoyer des données à Apache Spark pour des tâches de science des données. Chacun d'entre eux peut avoir un objectif de niveau de service distinct et évoluer indépendamment.
- Workload Aware Routing : Dans la limite de 30 réplicas nommés, il est possible d'utiliser des réplicas nommés en groupes, permettant d'isoler une application de l'autre. Par exemple, un ensemble de quatre répliques nommées peut être utilisé pour traiter les demandes provenant d'applications mobiles, tandis qu'un autre ensemble de deux répliques nommées peut être utilisé pour traiter les demandes provenant d'applications Web. Cette approche vous permet d'optimiser les performances et les coûts de chaque pool.
L'exemple suivant crée un réplica appeléWideWorldImporters_NamedReplica
à la base de donnéesImportateurs du monde entier
. Le réplica principal utilise l'objectif de niveau de service HS_Gen5_4 tandis que le réplica nommé utilise HS_Gen5_2. Les deux utilisent le même serveur logiquesud-ouest
. Si vous préférez utiliser directement l'API REST, cette option est également possible :Bases de données - Créer une base de données en tant que réplica secondaire nommé.
- porte
- SQL T
- Coque d'alimentation
- CLI d'Azure
côté intérieurBleu clair, accédez à la base de données pour laquelle vous souhaitez créer la réplique nommée.
pas de siteBase de données SQL, sélectionnez votre base de données, accédez àgestion de données, sélectionnerla réplique, puis sélectionnezcréer une réplique.
sousConfiguration de réplique, sélectionnerréplique nommée, choisissez ou créez le serveur pour la réplique nommée, entrez le nom de la base de données de réplique nommée et définissez les options selon vos besoinscalculer + enregistrer.
Choisirparcourir et créer, vérifiez les informations et sélectionnezPleurs.
Le processus de provisionnement du réplica nommé commence.
See AlsoTutoriel : Déployer un classificateur de vue personnalisé sur un appareil à l'aide d'Azure IoT EdgeDéployer des modules et des itinéraires avec des manifestes de déploiement - Azure IoT EdgeChoisissez un processus pour votre projet Azure DevOps - Azure BoardsDéployer des modules à grande échelle à partir du portail Azure - Azure IoT EdgeLorsque le déploiement est terminé, le réplica nommé affiche son état.
Revenez à la page principale de la base de données et sélectionnezla réplique. Votre réplique nommée apparaît dansrépliques nommées.
Comme il n'y a pas de déplacement de données, un réplica nommé est créé en une minute environ dans la plupart des cas. Une fois que le réplica nommé est disponible, il sera visible dans le portail ou dans tout outil de ligne de commande tel que AZ CLI ou PowerShell. Une réplique nommée peut être utilisée comme une base de données normale en lecture seule.
Des noisettes
Pour obtenir des réponses aux questions fréquemment posées sur les répliques nommées à très grande échelle, consultezFAQ sur les réplicas nommés à grande échelle Azure SQL Database.
Connexion à une réplique nommée
Pour vous connecter à une réplique nommée, vous devez utiliser la chaîne de connexion de cette réplique nommée et référencer les noms de serveur et de base de données. Il n'est pas nécessaire de spécifier l'option ApplicationIntent=ReadOnly car les réplicas nommés sont toujours en lecture seule.
Comme pour les réplicas HA, bien que les réplicas principaux, HA et nommés partagent les mêmes données sur le même ensemble de serveurs secondaires, les caches de données sur chaque réplica nommé restent synchronisés avec le principal via la transaction de service de registre qui transfère les enregistrements. . du réplica principal vers les réplicas nommés. Par conséquent, les journaux peuvent être appliqués à des taux différents en fonction de la charge de travail qu'un réplica nommé traite, de sorte que différents réplicas peuvent avoir des latences de données différentes par rapport au réplica principal.
Modifier un réplica nommé
Vous pouvez définir la cible de niveau de service pour un réplica nommé lorsque vous le créez à l'aide de la commandeCHANGER LA BASE DE DONNÉES
ou d'autres méthodes prises en charge (portail, AZ CLI, PowerShell, API REST). Si vous devez modifier le niveau de service cible après avoir créé la réplique nommée, vous pouvez le faire avec la commandeMODIFIER LA BASE DE DONNÉES... MODIFIER
sur la réplique nommée elle-même. par exemple ouiWideWorldImporters_NamedReplica
est la réplique nommée de la base de donnéesImportateurs du monde entier
, vous pouvez effectuer l'opération comme suit.
- porte
- SQL T
- Coque d'alimentation
- CLI d'Azure
Ouvrez la page de la base de données de réplique nommée et sélectionnezcalculer + enregistrer. Mettre à jour les cœurs virtuels.
Supprimer un réplica nommé
Vous pouvez supprimer un réplica nommé comme une base de données standard.
- porte
- SQL T
- Coque d'alimentation
- CLI d'Azure
Ouvrez la page Replica Database Named et sélectionnez l'optionéteindre
.
Important
Les réplicas nommés sont automatiquement supprimés lorsque vous supprimez le réplica parent à partir duquel ils ont été créés.
Problèmes connus
Données partiellement incorrectes renvoyées par sys.databases
Valeurs de ligne renvoyées parsys.databases
, pour les répliques nommées, dans des colonnes autres queNom
etid_base de données
, peut être incohérent et erroné. Par exemple la colonneniveau de compatibilité
d'une réplique nommée peut être signalée avec une valeur de 140, même si la base de données primaire à partir de laquelle la réplique nommée a été créée est définie sur 150. Si possible, une solution consiste à récupérer les mêmes données à l'aide de la fonctionPROPRIETE DE BASE DE DONNEES EX()
, qui renvoie les données correctes.
réplique géographique
Commegéoréplication active, vous pouvez créer un réplica secondaire lisible de la base de données principale hyperscale dans la même région Azure ou dans une région différente. Les répliques géographiques doivent être créées sur un serveur logique différent. Le nom de la base de données d'un réplica géographique est toujours le même que le nom de la base de données du réplica parent.
Lorsque vous créez un réplica géographique, toutes les données sont copiées du réplica principal vers un autre ensemble de serveurs de site. Un réplica géographique ne partage pas les serveurs de pages avec le réplica principal, même s'ils se trouvent dans la même région. Cette architecture fournit la redondance nécessaire au basculement géographique.
Les répliques géographiques sont utilisées pour conserver une copie transactionnelle de la base de données via une réplication asynchrone. Si un réplica géographique se trouve dans une autre région Azure, il peut être utilisé pour la reprise après sinistre en cas de sinistre ou de panne dans la région principale. La géoréplication peut également être utilisée dans des scénarios à l'échelle de lecture. À partir d'octobre 2022, la copie de la base de données sera soutenue par une réplique géosecondaire à grande échelle.
Actuellement, la géo-réplication de bases de données à grande échelle présente les limitations suivantes :
- Un seul réplica géographique peut être créé (dans la même région ou dans une région différente).
- La restauration ponctuelle à partir d'un réplica géographique n'est pas prise en charge.
- La création d'un réplica géographique pour un réplica géographique (également appelé enchaînement de réplicas géographiques) n'est pas prise en charge.
Prochaines étapes
- Niveau de service hyperscale
- Réplication géographique active
- Configurez la sécurité pour autoriser un accès isolé à la base de données Azure SQL à grande échelle avec des réplicas nommés
- FAQ sur les réplicas nommés à grande échelle Azure SQL Database