Configurer un groupe de basculement pour Azure SQL Database

S’applique à : Azure SQL Database

Cet article explique comment configurer un groupe de basculement pour une base de données unique ou mise en pool dans la base de données Azure SQL à l’aide du portail Azure, Azure PowerShell et Azure CLI.

Pour les scripts de bout en bout, réviser comment ajouter une base de données unique à un groupe de basculement avec Azure PowerShell ou Azure CLI.

Prérequis

Tenez compte des conditions préalables suivantes pour créer votre groupe de basculement pour une base de données unique :

  • Votre base de données primaire doit déjà être créée. Créez une base de données unique pour commencer.
  • Si votre serveur secondaire existe déjà dans une région différente du serveur principal, les paramètres de connexion et de pare-feu du serveur doivent correspondre à ceux de votre serveur principal.

Créer un groupe de basculement

Vous pouvez créer votre groupe de basculement et y ajouter une base de données unique à l’aide du portail Azure, de PowerShell et d’Azure CLI.

Important

Si vous devez supprimer une base de données secondaire après son ajout à un groupe de basculement, retirez-la du groupe de basculement avant de supprimer la base de données. La suppression d’une base de données secondaire avant son retrait du groupe de basculement peut entraîner un comportement imprévisible.

Pour créer votre groupe de basculement et y ajouter votre base de données unique à l’aide du portail Azure, procédez comme suit :

  1. Si vous connaissez le serveur logique qui héberge votre base de données, accédez directement à celui-ci dans le portail Azure. Si vous devez trouver le serveur, procédez comme suit :

    1. Sélectionnez Azure SQL dans le menu du service. Si Azure SQL ne figure pas dans la liste, sélectionnez Tous les services, puis tapez Azure SQL dans la zone de recherche. (Facultatif) Sélectionnez l’étoile en regard d’Azure SQL pour l’ajouter aux favoris et l’ajouter en tant qu’élément dans le menu de service.
    2. Dans la page Azure SQL, recherchez la base de données que vous souhaitez ajouter à un groupe de basculement et sélectionnez-la pour ouvrir le volet SQL database.
    3. Dans le volet Vue d’ensemble, sélectionnez SQL database, sélectionnez le nom du serveur sous Nom du serveur pour ouvrir le volet SQL server.

    Capture d’écran pour ouvrir le serveur pour une base de données unique dans le portail Azure.

  2. Dans le menu des ressources SQL Server, sélectionnez Groupes de basculement sous Gestion des données. Sélectionnez + Ajouter un groupe pour ouvrir la page Groupe de basculement dans laquelle vous pouvez créer un nouveau groupe de basculement.

    Capture d’écran mettant en évidence l’option Ajouter un nouveau groupe de basculement dans la page des groupes de basculement dans le portail Azure.

  3. Dans la page Groupe de basculement :

    1. Fournissez un nom de groupe de basculement.
    2. Sélectionnez un serveur secondaire existant ou créez un nouveau serveur en sélectionnant Créer nouveau sous Serveur. Le serveur secondaire du groupe de basculement doit se trouver dans une région différente du serveur principal.
    3. Sélectionnez Configurer base de données pour ouvrir la page Bases de données pour le groupe de basculement.

    Capture d’écran du volet du groupe de basculement dans le portail Azure.

  4. Dans la page Bases de données pour le groupe de basculement :

    1. Sélectionnez les bases de données que vous souhaitez ajouter au groupe de basculement (numéro 1 dans la capture d’écran).
    2. (Facultatif) Sélectionnez Oui si vous envisagez de désigner ces bases de données en tant que réplicas en attente à utiliser uniquement pour la récupération d’urgence (numéro 2 dans la capture d’écran). Cochez la case pour confirmer que vous utilisez le réplica comme réplica en attente.
    3. Utilisez Sélectionner pour enregistrer votre sélection de base de données et retourner à la page du Groupe de basculement (non visible dans la capture d’écran).

    Capture d’écran des bases de données pour le volet du groupe de basculement dans le portail Azure.

  5. Utilisez Créer sur la page du Groupe de basculement pour créer votre groupe de basculement.

Tester le basculement planifié

Testez le basculement de votre groupe de basculement avec aucune perte de données à l’aide du portail Azure ou de PowerShell.

Pour tester le basculement de votre groupe de basculement à l’aide du portail Azure, procédez comme suit :

  1. Si vous connaissez le serveur logique qui héberge votre base de données, accédez directement à celui-ci dans le portail Azure. Si vous devez trouver le serveur, procédez comme suit :

    1. Sélectionnez Azure SQL dans le menu du service. Si Azure SQL ne figure pas dans la liste, sélectionnez Tous les services, puis tapez Azure SQL dans la zone de recherche. (Facultatif) Sélectionnez l’étoile en regard d’Azure SQL pour l’ajouter aux favoris et l’ajouter en tant qu’élément dans le menu de service.
    2. Sur la page Azure SQL, recherchez la base de données pour laquelle vous souhaitez tester le basculement et sélectionnez-la pour ouvrir le volet SQL database.
    3. Dans le volet Vue d’ensemble, sélectionnez SQL database, sélectionnez le nom du serveur sous Nom du serveur pour ouvrir le volet SQL server.

    Capture d’écran pour ouvrir le serveur pour une base de données unique dans le portail Azure.

  2. Dans le menu de ressources SQL server, sélectionnez Groupes de basculement sous Gestion des données, puis choisissez un groupe de basculement existant pour ouvrir la page Groupe de basculement.

    La capture d’écran montre les groupes de basculement dans lesquels vous pouvez sélectionner un groupe de basculement pour votre serveur SQL.

  3. Dans la page Groupe de basculement :

    1. Vérifiez quel est le serveur principal et quel est le serveur secondaire.
    2. Sélectionnez Basculer dans la barre des commandes pour faire basculer le groupe de basculement contenant votre base de données.
    3. Sélectionnez Oui en réponse à l’avertissement qui signale que les sessions TDS seront déconnectées.

    Capture d’écran de la page du groupe de basculement dans le portail Azure avec basculement sélectionné.

  4. Vérifiez quel est maintenant le serveur principal et quel est le serveur secondaire. Une fois le basculement réussi, les deux serveurs échangent les rôles afin que l’ancien serveur principal devienne le serveur secondaire.

  5. (Facultatif) Sélectionnez Basculer de nouveau pour rétablir les serveurs dans leur rôle d’origine.

Pour les scripts de bout en bout, réviser comment ajouter un pool élastique à un groupe de basculement avec Azure PowerShell ou Azure CLI.

Prérequis

Tenez compte des conditions préalables suivantes pour la création de votre groupe de basculement pour une base de données mise en pool :

  • Votre pool élastique principal doit déjà exister. Créer un pool élastique pour commencer.
  • Si votre serveur secondaire existe déjà, les paramètres de connexion et de pare-feu du serveur doivent correspondre à ceux de votre serveur principal.

Créer un groupe de basculement

Créez le groupe de basculement pour votre pool élastique en utilisant le portail Azure, PowerShell ou Azure CLI.

Important

Si vous devez supprimer une base de données secondaire après son ajout à un groupe de basculement, supprimez-la du groupe de basculement avant de supprimer la base de données même. La suppression d’une base de données secondaire avant son retrait du groupe de basculement peut entraîner un comportement imprévisible.

Pour créer votre groupe de basculement et lui ajouter votre pool élastique en utilisant le portail Azure, procédez comme suit :

  1. Accédez à la page Créer un pool élastique SQL dans le portail Azure. Créer un pool élastique qui :

    • A le même nom que le pool élastique sur le serveur principal.
    • Utilise un serveur secondaire que vous envisagez d’utiliser pour le groupe de basculement. Le serveur secondaire doit se trouver dans une région différente du serveur principal, et les paramètres de connexion et de pare-feu du serveur doivent correspondre à ceux de votre serveur principal. Créez un serveur si le serveur secondaire n’existe pas déjà.
  2. Si vous connaissez le serveur logique qui héberge votre pool élastique principal, accédez directement à celui-ci dans le portail Azure. Si vous devez trouver le serveur, procédez comme suit :

    1. Sélectionnez Azure SQL dans le menu du service. Si Azure SQL ne figure pas dans la liste, sélectionnez Tous les services, puis tapez Azure SQL dans la zone de recherche. (Facultatif) Sélectionnez l’étoile en regard d’Azure SQL pour l’ajouter aux favoris et l’ajouter en tant qu’élément dans le menu de service.
    2. Dans la page Azure SQL, recherchez le pool élastique que vous souhaitez ajouter au groupe de basculement et sélectionnez-le pour ouvrir le volet Pool élastique SQL.
    3. Dans le volet Vue d’ensemble de Pool élastique SQL, sélectionnez le nom du serveur sous Nom du serveur pour ouvrir le volet SQL server.

    Capture d’écran qui sélectionne le serveur pour le pool élastique dans le portail Azure.

  3. Dans le menu des ressources SQL Server, sélectionnez Groupes de basculement sous Gestion des données. Sélectionnez + Ajouter un groupe pour ouvrir la page Groupe de basculement dans laquelle vous pouvez créer un nouveau groupe de basculement.

    Capture d’écran de la page des groupes de basculement dans le portail Azure.

  4. Dans la page Groupe de basculement :

    1. Fournissez un nom de groupe de basculement.
    2. Sélectionnez un serveur secondaire existant. Le serveur secondaire dans le groupe de basculement doit se trouver dans une région différente du serveur principal et contenir un pool élastique portant le même nom que le serveur principal.
    3. Sélectionnez Configurer base de données pour ouvrir la page Bases de données pour le groupe de basculement.

    Capture d’écran pour ajouter un pool élastique à un groupe de basculement dans le portail Azure.

  5. Dans la page Bases de données pour groupe de basculement, sélectionnez les bases de données mises en pool que vous souhaitez ajouter au groupe de basculement. Utilisez Sélectionner pour enregistrer votre sélection de base de données et retourner à la page Groupe de basculement.

    Capture d’écran des bases de données pour le volet du groupe de basculement dans le portail Azure.

  6. Sélectionnez Créer sur la page Groupe de basculement pour créer votre groupe de basculement. L’ajout du pool élastique au groupe de basculement démarre automatiquement le processus de géoréplication.

Tester le basculement planifié

Testez le basculement de votre pool élastique avec aucune perte de données en utilisant le portail Azure, PowerShell ou Azure CLI.

Faites basculer votre groupe de basculement sur le serveur secondaire, puis effectuez une restauration automatique en utilisant le portail Azure.

  1. Si vous connaissez le serveur logique qui héberge votre pool élastique principal, accédez directement à celui-ci dans le portail Azure. Si vous devez trouver le serveur, procédez comme suit :

    1. Sélectionnez Azure SQL dans le menu du service. Si Azure SQL ne figure pas dans la liste, sélectionnez Tous les services, puis tapez Azure SQL dans la zone de recherche. (Facultatif) Sélectionnez l’étoile en regard d’Azure SQL pour l’ajouter aux favoris et l’ajouter en tant qu’élément dans le menu de service.
    2. Dans la page Azure SQL, recherchez le pool élastique que vous souhaitez ajouter au groupe de basculement et sélectionnez-le pour ouvrir le volet Pool élastique SQL.
    3. Dans le volet Vue d’ensemble de Pool élastique SQL, sélectionnez le nom du serveur sous Nom du serveur pour ouvrir le volet SQL server.

    Capture d’écran qui sélectionne le serveur pour le pool élastique dans le portail Azure.

  2. Dans le menu de ressources SQL server, sélectionnez Groupes de basculement sous Gestion des données, puis choisissez un groupe de basculement existant pour ouvrir la page Groupe de basculement.

    La capture d’écran montre les groupes de basculement dans lesquels vous pouvez sélectionner un groupe de basculement pour votre serveur SQL.

  3. Dans la page Groupe de basculement :

    1. Vérifiez quel est le serveur principal et quel est le serveur secondaire.
    2. Sélectionnez Basculer dans la barre des commandes pour faire basculer le groupe de basculement contenant votre base de données.
    3. Sélectionnez Oui en réponse à l’avertissement qui signale que les sessions TDS seront déconnectées.

    Capture d’écran qui sélectionne le basculement sur la page des groupes de basculement dans le portail Azure.

  4. Vérifiez quel est maintenant le serveur principal et quel est le serveur secondaire. Une fois le basculement réussi, les deux serveurs échangent les rôles afin que l’ancien serveur principal devienne le serveur secondaire.

  5. (Facultatif) Sélectionnez Basculer de nouveau pour rétablir les serveurs dans leur rôle d’origine.

Modifier le groupe de basculement existant

Vous pouvez ajouter ou supprimer des bases de données d’un groupe de basculement existant ou modifier des paramètres de configuration de groupes de basculement en utilisant le portail Azure, PowerShell et Azure CLI.

Pour modifier un groupe de basculement existant en utilisant le portail Azure, procédez de la manière suivante :

  1. Si vous connaissez le serveur logique qui héberge votre base de données, ou le pool élastique, accédez directement à ceux-ci dans le portail Azure. Si vous devez trouver le serveur, procédez comme suit :

    1. Sélectionnez Azure SQL dans le menu du service. Si Azure SQL ne figure pas dans la liste, sélectionnez Tous les services, puis tapez Azure SQL dans la zone de recherche. (Facultatif) Sélectionnez l’étoile en regard d’Azure SQL pour l’ajouter aux favoris et l’ajouter en tant qu’élément dans le menu de service.
    2. Dans la page Azure SQL, recherchez la base de données ou le pool élastique que vous souhaitez modifier et sélectionnez-les pour ouvrir le volet SQL database ou SQL elastic pool.
    3. Dans le volet Vue d’ensemble pour SQL database ou SQL elastic pool, sélectionnez le nom du serveur sous Nom du serveur pour ouvrir le volet SQL server.
  2. Dans le menu de ressources SQL server, sélectionnez Groupes de basculement sous Gestion des données, puis choisissez un groupe de basculement existant pour ouvrir la page Groupe de basculement.

    La capture d’écran montre les groupes de basculement dans lesquels vous pouvez sélectionner un groupe de basculement pour votre serveur SQL.

  3. Sur la page Groupe de basculement, utilisez la bar des commandes :

    1. Pour ajouter une base de données, sélectionnez Ajouter des bases de données pour ouvrir le volet Ajouter des bases de données au groupe de basculement, puis développez #Databases pour afficher la liste des bases de données sur le serveur principal. Cochez la case à côté de la base de données que vous souhaitez ajouter au groupe de basculement, puis utilisez Sélectionner pour enregistrer vos modifications et ajouter votre base de données.
    2. Pour supprimer une base de données, sélectionnez Supprimer les bases de données pour ouvrir le volet Supprimer les bases de données du groupe de basculement, puis développez #Databases pour répertorier les bases de données dans le groupe de basculement. Cochez la case à côté de la base de données que vous souhaitez supprimer au groupe de basculement, puis utilisez Sélectionner pour enregistrer vos modifications et ajouter votre ou vos base(s) de données.
    3. Pour modifier la stratégie de basculement ou configurer une période de grâce, sélectionnez Modifier la configuration pour ouvrir le volet Modifier les groupes de basculement des configurations et modifier vos paramètres. Utilisez Sélectionner pour enregistrer vos changements.

    Capture d’écran de la page du groupe de basculement du portail Azure avec la barre des commandes mise en évidence.

L’utilisation d’un lien privé vous permet d’associer un serveur logique à une adresse IP privée spécifique au sein du réseau virtuel et du sous-réseau.

Pour utiliser un lien privé avec votre groupe de basculement, procédez comme suit :

  1. Assurez-vous que vos serveurs principaux et secondaires se trouvent dans une région couplée.
  2. Créez le réseau virtuel et le sous-réseau dans chaque région pour héberger des points de terminaison privés pour les serveurs principaux et secondaires de sorte qu’ils aient des espaces d’adressage IP qui ne se chevauchent pas. Par exemple, la plage d’adresses de réseau virtuel principale 10.0.0.0/16 et la plage d’adresses de réseau virtuel secondaire de 10.0.0.1/16 se chevauchent. Pour plus d’informations sur les plages d’adresses de réseaux virtuels, consultez le blog Conception de réseaux virtuels Azure.
  3. Créez un point de terminaison privé et une zone de DNS privé Azure pour le serveur principal.
  4. Créez également un point de terminaison privé pour le serveur secondaire, mais cette fois, choisissez de réutiliser la même zone DNS privée que celle qui a été créée pour le serveur principal.
  5. Une fois le lien privé établi, vous pouvez créer le groupe de basculement en suivant les étapes décrites précédemment dans cet article.

Localiser le point de terminaison de l’écouteur

Une fois votre groupe de basculement configuré, mettez à jour la chaîne de connexion de votre application pour qu’elle pointe vers le point de terminaison de l’écouteur en lecture et en écriture afin que votre application continue à se connecter à la base de données primaire, quelle qu’elle soit, après le basculement. En utilisant le point de terminaison de l’écouteur, vous n’avez pas besoin de mettre à jour manuellement votre chaîne de connexion chaque fois que votre groupe de basculement bascule, car le trafic est toujours acheminé vers le serveur principal actuel. Vous pouvez également pointer la charge de travail en lecture seule vers le point de terminaison de l’écouteur en lecture seule.

Pour localiser le point de terminaison de l’écouteur dans le portail Azure, accédez à votre serveur logique dans le portail Azure et, sous Gestion des données, sélectionnez Groupes de basculement. Sélectionnez le groupe de basculement qui vous intéresse.

Faites défiler vers le bas pour trouver les points de terminaison de l’écouteur :

  • Le point de terminaison de l’écouteur en lecture et en écriture, sous la forme de fog-name.database.windows.net, achemine le trafic vers la base de données primaire.
  • Le point de terminaison de l’écouteur en lecture seule, sous la forme de fog-name.secondary.database.windows.net, achemine le trafic vers la base de données secondaire.

Capture d’écran montrant la chaîne de connexion du groupe de basculement sur la page Groupes de basculement dans le portail Azure.

Mise à l’échelle de bases de données dans un groupe de basculement

Vous pouvez effectuer une mise à l’échelle vers le haut ou vers le bas sur une base de données primaire avec une taille de calcul différente (au sein du même niveau de service) sans déconnecter les bases de données géosecondaires. Lors du scale-up, nous vous recommandons de commencer par la base de données géosecondaire, puis de terminer avec la base de données primaire. Lors du scale-down, inversez l’ordre : commencez par la base de données primaire, puis terminez par la base de données secondaire. Quand vous faites passer la base de données à un niveau de service supérieur ou inférieur, cette recommandation s’applique.

Cette séquence est recommandée dans le but spécifique d’éviter le problème de surcharge des bases de données secondaires avec une référence SKU inférieure. Celles-ci doivent alors être alimentées à nouveau lors de la mise à niveau ou du passage à une version antérieure. Vous pouvez également éviter le problème en attribuant un accès en lecture seule à la base de données primaire, au détriment d’affecter toutes les charges de travail en lecture-écriture qui y sont associées.

Remarque

Si vous avez créé une base de données géosecondaire dans le cadre de la configuration du groupe de basculement, il n’est pas recommandé d’effectuer un scale-down dessus. En effet, votre couche Données pourrait manquer de capacité pour traiter votre charge de travail normale après un géo-basculement. Il n’est pas toujours possible de mettre à l’échelle un réplica géosecondaire après un basculement non planifié lorsque l’ancien réplica géoprincipal n’est pas disponible en raison d’une panne. Il s’agit d’une limitation connue.

Pour permettre la mise à l’échelle vers le niveau de service supérieur (édition) d’une base de données primaire dans un groupe de basculement, la base de données secondaire doit avoir été préalablement mise à l’échelle vers le niveau supérieur. Par exemple, si vous souhaitez mettre à l’échelle la base de données principale de Usage général vers Critique pour l’entreprise, vous devez d’abord mettre à l’échelle la base de données géosecondaire vers Critique pour l’entreprise. Si vous essayez de mettre à l’échelle la base de données primaire ou géosecondaire d’une manière qui enfreint cette règle, vous recevez l’erreur suivante :

The source database 'Primaryserver.DBName' cannot have higher edition than the target database 'Secondaryserver.DBName'. Upgrade the edition on the target before upgrading the source.

Empêcher la perte de données critiques

En raison de la latence élevée des réseaux étendus, la géoréplication utilise un mécanisme de réplication asynchrone. La réplication asynchrone rend la possibilité de perte de données inévitable en cas de défaillance de la base de données primaire. Pour protéger les transactions critiques d’une perte de données, le développeur d’applications peut appeler la procédure stockée sp_wait_for_database_copy_sync immédiatement après la validation de la transaction. L’appel de sp_wait_for_database_copy_sync bloque le thread appelant jusqu’à ce que la dernière transaction validée ait été transmise et renforcée dans le journal des transactions de la base de données secondaire. Toutefois, il n’attend pas que les transactions transmises soient relues (réeffectuées) sur la base de données secondaire. sp_wait_for_database_copy_sync est limité à un lien de géoréplication spécifique. Tout utilisateur disposant de droits de connexion à la base de données primaire peut appeler cette procédure.

Notes

sp_wait_for_database_copy_sync empêche la perte de données après un géobasculement pour des transactions spécifiques, mais ne garantit pas une synchronisation complète pour l’accès en lecture. Le délai causé par un appel de procédure sp_wait_for_database_copy_sync peut être significatif et dépend de la taille du journal des transactions pas encore transmis à la base de données primaire au moment de l’appel.

Modifier la région secondaire

Pour illustrer la séquence de changement, nous partons du principe que le serveur A est le serveur principal, que le serveur B est le serveur secondaire existant et que le serveur C est le nouveau serveur secondaire dans la troisième région. Pour faire la transition, suivez ces étapes :

  1. Sur le serveur C, créez des bases de données secondaires supplémentaires de chaque base de données du serveur A en utilisant la géoréplication active. Chaque base de données sur le serveur A aura deux bases de données secondaires, une sur le serveur B et une sur le serveur C. Cela garantit que les bases de données primaires restent protégées pendant la transition.
  2. Supprimez le groupe de basculement. À ce stade, les tentatives de connexion utilisant des points de terminaison de groupe de basculement commencent à échouer.
  3. Recréez le groupe de basculement avec le même nom entre les serveurs A et C.
  4. Ajoutez toutes les bases de données primaires du serveur A au nouveau groupe de basculement. À ce stade, les tentatives de signature cessent d’échouer.
  5. Supprimez le serveur B. Toutes les bases de données sur B sont alors supprimées automatiquement.

Modifier la région primaire

Pour illustrer la séquence de changement, nous partons du principe que le serveur A est le serveur principal, que le serveur B est le serveur secondaire existant et que le serveur C est le nouveau serveur principal dans la troisième région. Pour faire la transition, suivez ces étapes :

  1. Effectuez un géobasculement planifié pour faire du serveur B le serveur principal. Le serveur A devient alors le nouveau serveur secondaire. Le basculement peut occasionner un temps d’arrêt de plusieurs minutes. Sa durée effective dépend de la taille du groupe de basculement.
  2. Sur le serveur C, créez des bases de données secondaires supplémentaires de chaque base de données du serveur B en utilisant la géoréplication active. Chaque base de données sur le serveur B aura deux bases de données secondaires, une sur le serveur A et une sur le serveur C. Cela garantit que les bases de données primaires restent protégées pendant la transition.
  3. Supprimez le groupe de basculement. À ce stade, les tentatives de connexion utilisant des points de terminaison de groupe de basculement commencent à échouer.
  4. Recréez le groupe de basculement avec le même nom entre les serveurs B et C.
  5. Ajoutez toutes les bases de données primaires du serveur B au nouveau groupe de basculement. À ce stade, les tentatives de connexion cessent d’échouer.
  6. Effectuez un géobasculement planifié du groupe de basculement pour basculer entre B et C. Maintenant, le serveur C devient le principal et B le secondaire. Toutes les bases de données secondaires du serveur A sont automatiquement liées aux bases de données primaires de C. Comme à l’étape 1, le basculement peut occasionner un temps d’arrêt de plusieurs minutes.
  7. Supprimez le serveur A. Toutes les bases de données de A sont alors supprimées automatiquement.

Important

Une fois le groupe de basculement supprimé, les enregistrements DNS des points de terminaison de l’écouteur sont également supprimés. À ce stade, il existe une probabilité non nulle qu’une personne crée un groupe de basculement ou un alias DNS de serveur avec le même nom. Étant donné que les noms de groupe de basculement et les alias DNS doivent être globalement uniques, vous ne pourrez pas réutiliser le même nom. Pour réduire au minimum ce risque, n’utilisez pas des noms de groupe de basculement génériques.

Groupes de basculement et sécurité réseau

Pour certaines applications, les règles de sécurité demandent que l’accès réseau à la couche données soit limité à un ou plusieurs composants spécifiques, tels qu’une machine virtuelle, un service web, etc. Cette condition présente des défis pour la conception de la continuité de l’activité et l’utilisation de groupes de basculement. Tenez compte des options suivantes lors de l’implémentation d’un accès restreint.

Utiliser des groupes de basculement et des points de terminaison de service de réseau virtuel

Si vous utilisez des règles et points de terminaison de service de réseau virtuel pour restreindre l’accès à votre base de données, n’oubliez pas que chaque point de terminaison de service de réseau virtuel s’applique à une seule région Azure. Le point de terminaison ne permet pas à d’autres régions d’accepter les communications provenant du sous-réseau. Par conséquent, seules les applications client déployées dans la même région peuvent se connecter à la base de données primaire. Comme un géobasculement entraîne la redirection des sessions du client SQL Database vers un serveur dans une autre région (secondaire), ces sessions échouent si elles proviennent d’un client situé en dehors de cette région. Pour cette raison, la stratégie de basculement gérée par Microsoft ne peut pas être activée si les serveurs participants sont inclus dans les règles de réseau virtuel. Pour prendre en charge la politique de basculement manuel, effectuez les étapes suivantes :

  1. Fournissez des copies redondantes des composants frontend de votre application (service Web, machines virtuelles, etc.) dans la région secondaire.
  2. Configurez les règles de réseau virtuel individuellement pour les serveurs primaire et secondaire.
  3. Activez le basculement front-end à l’aide d’une configuration Traffic Manager.
  4. Lancez un géobasculement manuel quand la panne est détectée. Cette option est optimisée pour les applications qui nécessitent une latence cohérente entre le frontend et le niveau de données et prend en charge la récupération lorsque le frontend, le niveau de données ou les deux sont affectés par la panne.

Remarque

Si vous utilisez l’écouteur en lecture seule pour équilibrer une charge de travail en lecture seule, vérifiez que cette charge de travail est exécutée dans une machine virtuelle ou une autre ressource dans la région secondaire pour qu’elle puisse se connecter à la base de données secondaire.

Utiliser des groupes de basculement et des règles de pare-feu

Si votre plan de continuité d’activité nécessite un basculement à l’aide de groupes de basculement, vous pouvez restreindre l’accès à votre base de données SQL à l’aide de règles de pare-feu IP publiques. Cette configuration garantit qu’un basculement géographique ne bloquera pas les connexions des composants frontend et suppose que l’application peut tolérer la latence plus longue entre le frontend et le niveau de données.

Pour prendre en charge le basculement, effectuez les étapes suivantes :

  1. Créez une adresse IP publique.
  2. Créez un équilibreur de charge public et affectez-lui l’adresse IP publique.
  3. Créez un réseau virtuel et les machines virtuelles pour vos composants front-end.
  4. Créez un groupe de sécurité réseau et configurez les connexions entrantes.
  5. Vérifiez que les connexions sortantes sont ouvertes pour Azure SQL Database dans une région en utilisant une Sql.<Region> étiquette de service.
  6. Créez une règle de pare-feu SQL Database pour autoriser le trafic entrant à partir de l’adresse IP publique que vous créez à l’étape 1.

Pour plus d’informations sur la configuration de l’accès sortant et l’adresse IP à utiliser dans les règles de pare-feu, voir Connexions sortantes de l’équilibreur de charge.

Important

Pour garantir la continuité d’activité lors de pannes régionales, vous devez vérifier la redondance géographique pour les composants front-end et les bases de données.

autorisations

Les autorisations pour un groupe de basculement sont gérées via un contrôle d’accès en fonction du rôle Azure (Azure RBAC).

L’accès en écriture à RBAC Azure est nécessaire pour créer et gérer des groupes de basculement. Le rôle Contributeur SQL Server dispose des autorisations nécessaires pour gérer des groupes de basculement.

Le tableau suivant répertorie les étendues d’autorisation spécifiques pour Azure SQL Database :

Action Permission Étendue
Créer un groupe de basculement Accès en écriture à RBAC Azure Serveur primaire
Serveur secondaire
Toutes les bases de données dans un groupe de basculement
Mettre à jour un groupe de basculement Accès en écriture à RBAC Azure Groupe de basculement
Toutes les bases de données sur le serveur principal actuel
Faire basculer un groupe de basculement Accès en écriture à RBAC Azure Groupe de basculement sur le nouveau serveur

Limites

Notez les limitations suivantes :

  • Il n’est pas possible de créer des groupes de basculement entre deux serveurs au sein de la même région Azure.
  • Les groupes de basculement prennent en charge la géoréplication de toutes les bases de données du groupe vers un seul serveur logique secondaire situé dans une autre région.
  • Les groupes de basculement ne peuvent pas être renommés. Vous devrez supprimer le groupe puis le recréer sous un autre nom.
  • Le renommage de base de données n’est pas pris en charge pour les bases de données situées dans un groupe de basculement. Vous devrez supprimer temporairement le groupe de basculement pour pouvoir renommer une base de données ou supprimer la base de données, à partir du groupe de basculement.
  • La suppression d’un groupe de basculement pour une base de données unique ou mise en pool n’interrompt pas la réplication et n’entraîne pas la suppression de la base de données répliquée. Vous devez arrêter manuellement la géoréplication et supprimer la base de données du serveur secondaire si vous souhaitez rajouter une base de données unique ou mise en pool à un groupe de basculement après sa suppression. Si vous n’effectuez pas l’une ou l’autre de ces opérations, vous risquez d’obtenir une erreur telle que The operation cannot be performed due to multiple errors lorsque vous tentez d’ajouter la base de données au groupe de basculement.
  • Le nom du groupe de basculement automatique est soumis à des restrictions d’affectation de noms.
  • Lors de la création d’un groupe de basculement ou lors de l’ajout de bases de données à un groupe de basculement existant, vous pouvez uniquement désigner les bases de données en tant que réplicas en attente lors de l’utilisation du portail Azure ; Azure PowerShell et Azure CLI ne sont actuellement pas disponibles.

Gérer programmatiquement des groupes de basculement

Les groupes de basculement peuvent aussi être gérés de façon programmatique en utilisant Azure PowerShell, Azure CLI et API REST. Les tableaux ci-dessous décrivent l’ensemble des commandes disponibles. Les groupes de basculement comprennent un ensemble d’API Azure Resource Manager pour la gestion, notamment API REST de base de données Azure SQL et Azure PowerShell cmdlets. Ces API nécessitent l’utilisation de groupes de ressources et la prise en charge du contrôle d’accès en fonction du rôle (RBAC). Pour plus d’informations sur l’implémentation de rôles d’accès, consultez la page sur le contrôle d’accès en fonction du rôle Azure (RBAC Azure).

Applet de commande Description
New-AzSqlDatabaseFailoverGroup Cette commande crée un groupe de basculement et l’enregistre dans les serveurs primaire et secondaire
Add-AzSqlDatabaseToFailoverGroup Ajoute une ou plusieurs bases de données à un groupe de basculement
Remove-AzSqlDatabaseFromFailoverGroup Supprime une ou plusieurs bases de données d’un groupe de basculement
Remove-AzSqlDatabaseFailoverGroup Supprime un groupe de basculement du serveur
Get-AzSqlDatabaseFailoverGroup Récupère la configuration d’un groupe de basculement
Set-AzSqlDatabaseFailoverGroup Modifie la configuration d’un groupe de basculement
Switch-AzSqlDatabaseFailoverGroup Déclenche le basculement d’un groupe de basculement vers le serveur secondaire

Remarque

Vous pouvez déployer votre groupe de basculement sur les abonnements à l’aide du paramètre -PartnerSubscriptionId dans Azure PowerShell en commençant par Az.SQL 3.11.0. Pour plus d’informations, consultez l’Exemple suivants.