Remarques :

Configuration du groupe de disponibilité Always On de Microsoft SQL Server sur OCI avec le processus d'écoute et l'équilibreur de charge

Introduction

Le déploiement de Microsoft SQL Server dans Oracle Cloud Infrastructure (OCI) offre aux entreprises une plate-forme puissante pour atteindre leurs objectifs de haute disponibilité et de continuité des activités. L'une des approches les plus efficaces pour la haute disponibilité de Microsoft SQL Server est la fonctionnalité de groupe de disponibilité Always On. Les groupes de disponibilité Always On de Microsoft SQL Server fournissent une solution de haute disponibilité et de récupération après sinistre qui permet un basculement et une réplication de données transparents sur plusieurs instances SQL Server.

Il existe différentes façons de configurer un groupe de disponibilité Microsoft SQL Server. Une approche consiste à placer vos machines virtuelles SQL Server dans des sous-réseaux distincts au sein du même réseau virtuel. Pour déployer un groupe de disponibilité SQL Server à l'aide d'une architecture multi-sous-réseau, reportez-vous à Déploiement d'une base de données Microsoft SQL Server hautement disponible sur OCI à l'aide de groupes de disponibilité Always On et à Déploiement de groupes de disponibilité Always On de Microsoft SQL Server pour la haute disponibilité et la récupération après sinistre sur OCI.

En suivant ce tutoriel, vous allez déployer et configurer un groupe de disponibilité Toujours sur SQL Server sur OCI à l'aide de machines virtuelles au sein d'un seul sous-réseau. Cette configuration inclut un équilibreur de charge OCI privé agissant en tant que processus d'écoute, permettant une connectivité client transparente et une haute disponibilité. Cette approche est idéale pour les environnements où la simplicité et la fiabilité sont essentielles, offrant un basculement automatique, une redondance des données et un accès ininterrompu à vos bases de données SQL Server. Grâce à cette configuration, votre infrastructure est bien positionnée pour prendre en charge les charges de travail critiques avec une continuité d'activité robuste. Pour les déploiements de production, envisagez d'implémenter des stratégies améliorées de surveillance, de journalisation, de sécurisation et de sauvegarde pour compléter cette configuration de haute disponibilité.

Si vous souhaitez déployer un groupe de disponibilité Always On au sein d'un seul sous-réseau, ce tutoriel fournit des instructions pas à pas pour la configuration à l'aide de machines virtuelles OCI et d'un équilibreur de charge OCI. Ce tutoriel vous guide tout au long de la configuration d'un groupe de disponibilité Always On à deux noeuds sur OCI à l'aide de machines virtuelles dans un seul sous-réseau, avec un équilibreur de charge OCI.

Architecture

L'image suivante présente un exemple d'architecture de haut niveau de la solution.

Image  1

Exclusions pour ce tutoriel

Objectifs

Prérequis

Tâche 1 : configurer le groupe de disponibilité Always On de SQL Server

Tâche 1.1 : activer les groupes de disponibilité sur les deux noeuds SQL Server (DevSQL1 et DevSQL2)

  1. Dans le noeud DevSQL1, accédez à Démarrer, recherchez et ouvrez SQL Server 2022 Configuration Manager.

  2. Sélectionnez Services SQL Server, cliquez avec le bouton droit de la souris sur le service SQL Server (MSSQLSERVER) et sélectionnez Propriétés. Si vous utilisez une instance nommée, il s'agit de SQL Server (INSTANCENAME).

    Image  3

  3. Cliquez sur Toujours sur les groupes de disponibilité et sélectionnez Activer les groupes de disponibilité Toujours sur.

    Image  4

  4. Sélectionnez Appliquer et cliquez sur OK.

  5. Redémarrez le service SQL Server.

  6. Répétez les étapes 1 à 5 sur l'autre noeud (DevSQL2).

Tâche 1.2 : créer une base de données sur le premier noeud SQL Server (DevSQL1) et effectuer une sauvegarde complète

  1. Dans le noeud DevSQL1, accédez à Démarrer, recherchez SSMS et ouvrez SQL Server Management Studio (SSMS).

  2. Connectez-vous au serveur SQL principal. Dans ce tutoriel, il s'agit de DevSQL1.

    Image  6

  3. Sous Explorateur d'objets, cliquez avec le bouton droit de la souris sur Bases de données et cliquez sur Nouvelle base de données.

    Image  7

  4. Sous Général, entrez Nom de base de données et sous Options, sélectionnez Complet en tant que Modèle de récupération.

    Image  8

    Image  9

  5. Cliquez ensuite sur OK.

  6. Pour effectuer une sauvegarde complète, cliquez avec le bouton droit de la souris sur base de données "AdventureWorks2022", Tâches et cliquez sur Sauvegarder.

  7. Sous Général, assurez-vous que le type de sauvegarde est Complet et sous Destination, sélectionnez Disque en tant que Sauvegarde vers, cliquez sur Ajouter et entrez l'emplacement et le nom du fichier pour la sauvegarde complète.

  8. Cliquez ensuite sur OK.

Vous pouvez également effectuer une sauvegarde à l'aide de Transact-SQL. Exemple :

Transact-SQL :

BACKUP DATABASE [AdventureWorks2022] TO  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\AdventuresWork2022.bak' WITH NOFORMAT, NOINIT,  NAME = N'AdventureWorks2022-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

Tâche 1.3 : créer un groupe de disponibilité

  1. Ouvrez SQL Server Management Studio et connectez-vous à DevSQL1. Sous Explorateur d'objets, cliquez avec le bouton droit de la souris sur Toujours sur la haute disponibilité et cliquez sur Assistant Nouveau groupe de disponibilité.

    Image  10

    Une page Nouveau groupe de disponibilité apparaît. Fournissez les informations relatives au jeu de transport, puis cliquez sur Suivant.

    Image  11

  2. Sous Spécifier les options, entrez Nom du groupe de disponibilité dans DevAG, Type de cluster dans Cluster de basculement Windows Server et cliquez sur Suivant.

    Image  12

  3. Dans Sélectionner des bases de données, sélectionnez la base de données à ajouter à ce groupe de disponibilité. Sous Statut, vous devez voir Répondre aux prérequis pour pouvoir ajouter la base de données au groupe de disponibilité. S'il y a des problèmes, il vous indiquera la raison et nous devons prendre les mesures nécessaires pour répondre aux prérequis. Par exemple, une sauvegarde complète de la base de données peut être en attente.

    Image  13

  4. Dans Spécifier des répliques, ajoutez les répliques. Cliquez sur Répliques pour vous assurer que les deux noeuds sont ajoutés sous Répliques de disponibilité et définissez le mode de disponibilité sur Validation synchrone. Vous pouvez avoir un mode de disponibilité différent selon vos besoins.

    Image  14

  5. Cliquez sur Adresses pour vous assurer que les deux adresses utilisent le même port et que ces ports sont ouverts dans le pare-feu et la liste de sécurité. Par défaut, il s'agit du port 5022.

    Image  15

    Remarque : pour ce tutoriel, nous conserverons toutes les autres options par défaut. Ne créez pas de processus d'écoute pour le moment.

  6. Ensuite, nous devons sélectionner la synchronisation des données. Sélectionnez Prédéfinition automatique et cliquez sur Suivant.

    Image  16

  7. Dans Validation, assurez-vous que la validation est Succès et corrigez les échecs éventuels. Vous pouvez ignorer l'avertissement Vérification de la configuration du processus d'écoute car le processus d'écoute sera créé ultérieurement. Cliquez sur Suivant et, une fois le groupe de disponibilité créé, sélectionnez Fermer pour fermer l'assistant.

  8. Dans Explorateur d'objets, développez Toujours sur la haute disponibilité, puis Groupes de disponibilité. Vous devez maintenant voir le nouveau groupe de disponibilité dans ce conteneur. Cliquez avec le bouton droit de la souris sur le groupe de disponibilité et sélectionnez Afficher le tableau de bord.

    Image  17

  9. Ouvrez Gestionnaire de cluster de basculement, accédez à Démarrer, recherchez et ouvrez Gestionnaire de cluster de basculement. Connectez-vous au cluster et cliquez sur Rôles.

    Le nom du groupe de disponibilité que nous avons utilisé est un rôle sur le cluster et ce groupe de disponibilité ne dispose pas d'adresse IP pour les connexions client car nous n'avons pas configuré de processus d'écoute. Nous configurerons le processus d'écoute après la création d'un équilibreur de charge OCI.

    Image  18

A ce stade, le groupe de disponibilité a été configuré avec deux répliques SQL Server, ce qui permet le basculement entre les instances. Toutefois, la connectivité client à l'aide du processus d'écoute n'est pas encore possible car aucun processus d'écoute n'a été configuré.

Tâche 2 : création d'un équilibreur de charge OCI et configuration d'un processus d'écoute de groupe de disponibilité

Il existe plusieurs approches pour configurer un processus d'écoute de groupe de disponibilité Toujours sur SQL Server sur OCI, notamment en utilisant une configuration multi-sous-réseau ou en affectant une adresse IP secondaire à chaque machine virtuelle. Bien que ces méthodes soient valides, elles nécessitent souvent une configuration supplémentaire ou des scripts personnalisés pour gérer les déplacements IP lors des événements de basculement.

Si vous souhaitez déployer un groupe de disponibilité Always On dans un seul environnement de sous-réseau et que vous préférez éviter les scripts personnalisés, l'utilisation d'un équilibreur de charge OCI privé offre une solution rationalisée et fiable. Cette section vous guidera tout au long de la configuration de l'équilibreur de charge OCI afin qu'il agisse en tant que processus d'écoute pour votre groupe de disponibilité Always On, ce qui permettra une connectivité transparente et un traitement du basculement au sein d'un seul sous-réseau.

Tâche 2.1 : réservation d'une adresse IP privée statique pour le processus d'écoute de groupe de disponibilité Always On de SQL Server

Réservez une adresse IP privée statique dans OCI qui sera ensuite affectée à l'adresse IP du processus d'écoute du groupe de disponibilité Always On de SQL Server dans le cluster de basculement Windows. Nous réservons cette adresse IP pour nous assurer qu'aucune autre machine virtuelle ou aucun autre service ne reçoit cette adresse IP sur OCI. Cette adresse IP ne sera pas utilisée par les clients pour la connexion, mais elle facilitera le basculement du groupe de disponibilité et garantira que l'équilibreur de charge OCI achemine la connexion vers le serveur principal approprié.

  1. Accédez à la console OCI, accédez à Fonctions de réseau et cliquez sur Réseaux cloud virtuels.

  2. Accédez au VCN que vous utilisez pour les noeuds SQL Server.

  3. Cliquez sur Sous-réseaux et accédez au sous-réseau utilisé pour les noeuds SQL Server.

  4. Sous Ressources, cliquez sur Adresses IPv4.

  5. Cliquez sur Ajouter une adresse IPv4 réservée.

    Image  33

  6. Entrez l'adresse IP à affecter au processus d'écoute de groupe de disponibilité Always On de SQL Server. Il peut s'agir de n'importe quelle adresse IP inutilisée. Notez que les clients ne pourront pas se connecter à distance à l'aide de cette adresse IP. Il s'agit d'une adresse IP fictive que nous allons affecter au processus d'écoute du groupe de disponibilité Always On de SQL Server dans le cluster de basculement Windows. Pour ce tutoriel, nous avons utilisé 10.0.0.148.

    Image  34

Tâche 2.2 : création d'un équilibreur de charge OCI privé

Remarque : Les champs qui ne sont pas mentionnés ici sont conservés par défaut.

  1. Accédez à la console OCI, à Fonctions de réseau et à Equilibreurs de charge.

    Image  19

  2. Cliquez sur Equilibreur de charge et sur Créer un équilibreur de charge.

    Image  20

  3. Entrez le nom de l'équilibreur de charge et sélectionnez Privé comme type de visibilité.

    Image  21

  4. Dans Choisir la mise en réseau, sélectionnez le nom du compartiment pour le VCN et le sous-réseau qui seront utilisés pour cet équilibreur de charge. Utilisez le même VCN et le même sous-réseau que ceux utilisés pour les noeuds SQL Server.

    Image  22

  5. Dans Gestion, sélectionnez le compartiment dans lequel cet équilibreur de charge sera créé. Veillez à activer l'option Empêcher la suppression de l'équilibreur de charge, des processus d'écoute et des back-ends lorsqu'ils sont encore actifs afin d'éviter toute interruption involontaire des services et cliquez sur Suivant.

    Image  23

  6. Dans Back-ends, indiquez une stratégie d'équilibrage de charge en tant que Round Robin pondéré.

  7. Dans Sélectionner des serveurs back-end, ajoutez les noeuds SQL Server : DevSQL1 et DevSQL2. Remplacez le numéro de port par 1433. Si vous utilisez un autre port pour SQL Server, entrez le numéro de port correspondant.

    Image  24

  8. Dans Spécifier une stratégie de vérification de l'état, utilisez le protocole TCP avec le numéro de port 59999. Vous pouvez utiliser n'importe quel port inutilisé.

    Image  25

  9. Conservez tous les autres paramètres comme par défaut et nous utilisons la liste de sécurité pour le VCN sélectionné. Fournissez les informations relatives au jeu de transport, puis cliquez sur Suivant.

  10. Dans Configurer le processus d'écoute, entrez le nom du processus d'écoute, le trafic TCP et le numéro de port en tant que 1433. Conserver tous les autres paramètres par défaut.

    Image  26

  11. Cliquez sur Suivant, vérifiez la configuration et cliquez sur Soumettre.

  12. Une fois l'équilibreur de charge OCI provisionné, vous pouvez noter l'adresse IP privée de l'équilibreur de charge OCI en accédant à Fonctions de réseau, à Equilibreurs de charge et en cliquant sur Equilibreur de charge.

    Image  35

Dans ce tutoriel, l'adresse IP de l'équilibreur de charge est 10.0.0.149. Il s'agit de l'adresse IP que les clients utiliseront pour se connecter au processus d'écoute de groupe de disponibilité Always On de SQL Server.

Tâche 2.3 : configurer le processus d'écoute de groupe de disponibilité Always On de SQL Server

  1. Protocole RDP (Remote Desktop Protocol) dans la machine virtuelle qui héberge la réplique principale. Dans ce tutoriel, il s'agit de DevSQL1. Pour confirmer cela, vous pouvez ouvrir Gestionnaire de cluster de basculement Windows, Rôles et, pour le rôle de groupe de disponibilité SQL, consultez la colonne Noeud propriétaire pour confirmer quel noeud est la réplique principale.

  2. Accédez à Réseaux et notez le nom du réseau en tant que variable $ClusterNetworkName.

    Image  27

  3. Ajoutez le point d'accès client. Le point d'accès client est le nom réseau que les applications utilisent pour se connecter aux bases de données d'un groupe de disponibilité.

    1. Dans Gestionnaire de cluster de basculement, développez le nom du cluster et sélectionnez Rôles.

    2. Cliquez sur Rôles, cliquez avec le bouton droit de la souris sur le nom du groupe de disponibilité, sélectionnez Ajouter une ressource et cliquez sur Point d'accès client.

      Image  28

    3. Dans Nom, créez le nom de ce nouveau processus d'écoute. Le nom du nouveau processus d'écoute est le nom réseau utilisé par les applications pour se connecter aux bases de données du groupe de disponibilité SQL Server.

    4. Cliquez deux fois sur Suivant et sélectionnez Terminer. Ne mettez pas le processus d'écoute ou la ressource en ligne à ce stade.

  4. Mettez le rôle de cluster du groupe de disponibilité hors ligne. Dans Gestionnaire de cluster de basculement, cliquez sur Rôles, cliquez avec le bouton droit de la souris sur le rôle et sélectionnez Arrêter le rôle.

  5. Configurez la ressource IP pour le groupe de disponibilité.

    1. Cliquez sur Ressources et développez le point d'accès client que vous avez créé. Le point d'accès client est hors ligne.

    2. Cliquez avec le bouton droit de la souris sur la ressource IP et sélectionnez Propriétés. Notez le nom de l'adresse IP en tant que variable $IPResourceName. Dans ce tutoriel, le nom est IP Address 10.0.0.0.

    3. Cliquez sur Adresse IP et sélectionnez Adresse IP statique. Définissez l'adresse IP comme l'adresse IP que nous avons réservée dans la tâche 2.1. Dans ce tutoriel, il s'agit de 10.0.0.148.

    Image  29

  6. Faites dépendre le groupe de disponibilité SQL Server du point d'accès client.

    1. Dans Gestionnaire de cluster de basculement, cliquez sur Rôles et sélectionnez votre groupe de disponibilité.

    2. Cliquez sur Ressources, sous Autres ressources, cliquez avec le bouton droit de la souris sur la ressource de groupe de disponibilité, puis cliquez sur Propriétés.

    3. Cliquez sur Dépendances et ajoutez le nom du point d'accès client (le processus d'écoute).

      Image  30

    4. Cliquez ensuite sur OK.

  7. Faites dépendre le point d'accès client de l'adresse IP.

    1. Dans Gestionnaire de cluster de basculement, cliquez sur Rôles et sélectionnez votre groupe de disponibilité.

    2. Cliquez sur Ressources, cliquez avec le bouton droit de la souris sur le point d'accès client sous Nom du serveur, puis cliquez sur Propriétés.

      Image  31

    3. Cliquez sur Dépendances et vérifiez que l'adresse IP est une dépendance. Si ce n'est pas le cas, définissez une dépendance sur l'adresse IP. Si plusieurs ressources sont répertoriées, vérifiez que les adresses IP ont des dépendances OR, et non AND, et cliquez sur OK.

  8. Définissez les paramètres du cluster dans Windows PowerShell.

    1. Copiez le script PowerShell suivant dans l'une de vos instances SQL Server. Mettez à jour les variables de votre environnement.

      • Recherchez le nom $ClusterNetworkName dans le gestionnaire de cluster de basculement en sélectionnant Réseaux, cliquez avec le bouton droit de la souris sur le réseau et sélectionnez Propriétés. $ClusterNetworkName se trouve sous Nom dans l'onglet Général.

      • $IPResourceName est le nom donné à la ressource d'adresse IP dans le gestionnaire de cluster de basculement. This is found in the Failover Cluster Manager by selecting Roles, select the SQL Server availability group or FCI name, select Resources under Server Name, right-click the IP address resource and click Properties. La valeur correcte se trouve sous Nom dans l'onglet Général.

      • $ListenerILBIP est l'adresse IP que vous avez créée dans l'équilibreur de charge Azure pour le processus d'écoute de groupe de disponibilité. Recherchez $ListenerILBIP dans le gestionnaire de cluster de basculement sur la même page de propriétés que le nom de ressource de processus d'écoute AG/FCI SQL Server.

      • $ListenerProbePort est le port que vous avez configuré sur l'équilibreur de charge Azure pour le processus d'écoute de groupe de disponibilité, tel que 59999. Tout port TCP inutilisé est valide.

      $ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
      $IPResourceName = "<IPResourceName>" # The IP address resource name.
      $ListenerILBIP = "<n.n.n.n>" # The IP address that we reserved in Task 2.1. This is the static IP address for the SQL Server AG Listener that you reserved in OCI Console.
      [int]$ListenerProbePort = <nnnnn>
      
      Import-Module FailoverClusters
      
      Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
      

      Pour ce tutoriel, nous avons utilisé les éléments suivants :

      $ClusterNetworkName = "Cluster Network 1" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
      $IPResourceName = "IP Address 10.0.0.0" # The IP address resource name.
      $ListenerILBIP = "10.0.0.148" # The IP address of the internal load balancer. This is the static IP address for the load balancer that you configured in the Azure portal.
      [int]$ListenerProbePort = 59999
      
      Import-Module FailoverClusters
      
      Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
      
    2. Définissez les paramètres de cluster en exécutant le script PowerShell sur l'un des noeuds de cluster.

  9. L'ajout d'une exclusion empêchera l'affectation dynamique d'autres processus système au même port. Dans ce scénario, configurez les exclusions suivantes sur tous les noeuds de cluster.

    netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent
    
  10. Mettez en ligne le rôle de cluster du groupe de disponibilité. Dans Gestionnaire de cluster de basculement, cliquez sur Rôles, cliquez avec le bouton droit de la souris sur le rôle et sélectionnez Démarrer le rôle.

  11. Dans SQL Server Management Studio, définissez le port du processus d'écoute.

    1. Ouvrez SQL Server Management Studio et connectez-vous à la réplique principale.

    2. Accédez à Toujours sur la haute disponibilité, à Groupes de disponibilité et cliquez sur Processus d'écoute de groupe de disponibilité.

    3. Cliquez avec le bouton droit de la souris sur le nom du processus d'écoute que vous avez créé dans la tâche 2.2, puis cliquez sur Propriétés.

    4. Dans Port, indiquez le numéro de port du processus d'écoute de groupe de disponibilité et cliquez sur OK. La valeur par défaut est 1433.

    Image  32

  12. Sur votre serveur DNS, assurez-vous qu'il existe un enregistrement d'hôte A pour l'adresse IP privée de l'équilibreur de charge OCI pointant vers le nom du processus d'écoute du groupe de disponibilité SQL. Assurez-vous que l'objet informatique du processus d'écoute SQL ne peut pas mettre à jour les enregistrements DNS. Cela permet de s'assurer qu'après le basculement, l'entrée DNS n'est pas mise à jour vers l'adresse IP utilisée dans le cluster de basculement Windows.

    Dans ce tutoriel, nous avons mis à jour l'enregistrement Hôte A du processus d'écoute de groupe de disponibilité SQL avec l'adresse IP 10.0.0.149 au lieu de 10.0.0.148 et mis à jour la sécurité pour nous assurer que l'objet informatique SQLAGL$ ne peut pas mettre à jour cet enregistrement et ne peut que le lire.

    Image  36

    Image  37

Il peut y avoir d'autres méthodes pour y parvenir, vous pouvez implémenter votre propre solution. L'objectif est de disposer d'un enregistrement DNS pour le processus d'écoute de groupe de disponibilité SQL Server avec l'adresse IP de l'équilibreur de charge OCI.

Vous pouvez maintenant tester la connexion au processus d'écoute de groupe de disponibilité SQL Server à partir de SSMS ou de tout autre outil client.

Remerciements

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation produit, consultez le site Oracle Help Center.