Partager via


Configurer un groupe de disponibilité pour un groupe de travail

S’applique à : SQL Server sur la machine virtuelle Azure

Cet article décrit les étapes nécessaires à la création d'un cluster indépendant du domaine Active Directory avec un groupe de disponibilité Always On ; c'est ce que l'on appelle également un cluster de groupe de travail. Cet article se concentre sur les étapes de préparation et de configuration du groupe de travail et du groupe de disponibilité, sans s'attarder sur les étapes décrites dans d'autres articles, comme la création du cluster ou le déploiement du groupe de disponibilité.

Prérequis

Afin de configurer un groupe de disponibilité pour un groupe de travail, vous devez disposer de ce qui suit :

  • Au moins deux machines virtuelles Windows Server 2016 (ou version ultérieure) exécutant SQL Server 2016 (ou version ultérieure), déployées sur le même groupe à haute disponibilité, ou dans des zones de disponibilité différentes, et utilisant des adresses IP statiques
  • Un réseau local avec un minimum de 4 adresses IP gratuites sur le sous-réseau
  • Un compte sur chaque ordinateur du groupe d'administrateurs qui dispose également de droits d'administrateur système dans SQL Server
  • Ports ouverts : TCP 1433, TCP 5022, TCP 59999

Pour référence, cet article utilise les paramètres suivants, mais ceux-ci peuvent être modifiés si nécessaire :

Nom Paramètre
Nœud 1 AGNode1 (10.0.0.4)
Nœud 2 AGNode2 (10.0.0.5)
Nom du cluster AGWGAG (10.0.0.6)
Port d'écoute AGListener (10.0.0.7)
Suffixe DNS ag.wgcluster.example.com
Nom du groupe de travail AGWorkgroup

Définir un suffixe DNS

Au cours de cette étape, vous allez configurer le suffixe DNS des deux serveurs. Par exemple : ag.wgcluster.example.com. Cela vous permettra d'utiliser le nom de l'objet auquel vous souhaitez vous connecter en tant qu'adresse complète sur votre réseau, par exemple AGNode1.ag.wgcluster.example.com.

Pour configurer le suffixe DNS, procédez comme suit :

  1. Connectez-vous à distance (via RDP) à votre premier nœud et ouvrez Gestionnaire de serveur.

  2. Sélectionnez Serveur local, puis sélectionnez le nom de votre machine virtuelle sous Nom de l'ordinateur.

  3. Sélectionnez Modifier... sous Pour renommer cet ordinateur... .

  4. Renommez le groupe de travail afin de lui donner un nom significatif, par exemple AGWORKGROUP :

    Changer le nom du groupe de travail

  5. Sélectionnez Autres... pour ouvrir la boîte de dialogue Nom d'ordinateur NetBIOS et suffixe DNS.

  6. Entrez le nom de votre suffixe DNS sous Suffixe DNS principal de cet ordinateur, par exemple ag.wgcluster.example.com, puis sélectionnez OK :

    Capture d’écran montrant le suffixe D N S et la boîte de dialogue Nom de l’ordinateur NetBIOS dans laquelle vous pouvez entrer la valeur.

  7. Vérifiez que le nom complet de l'ordinateur contient maintenant le suffixe DNS, puis sélectionnez OK pour enregistrer vos modifications :

    Capture d’écran indiquant où trouver le nom complet de votre ordinateur.

  8. Lorsque vous y êtes invité, redémarrez le serveur.

  9. Répétez ces étapes sur tous les autres nœuds à utiliser pour le groupe de disponibilité.

Modifier un fichier hôte

En l’absence de répertoire actif, il n’y a aucun moyen d’authentifier les connexions Windows. Par conséquent, vous devez attribuer un niveau de confiance en modifiant le fichier hosts à l'aide d'un éditeur de texte.

Pour modifier le fichier hosts, procédez comme suit :

  1. Connectez-vous à distance (via RDP) à votre machine virtuelle.

  2. Utilisez l'Explorateur de fichiers pour accéder à c:\windows\system32\drivers\etc.

  3. Cliquez avec le bouton droit sur le fichier hosts et ouvrez-le dans le Bloc-notes (ou dans un autre éditeur de texte).

  4. À la fin du fichier, ajoutez une entrée pour chaque nœud, ainsi que le groupe de disponibilité et l'écouteur sous la forme IP Address, DNS Suffix #comment, par exemple :

    10.0.0.4 AGNode1.ag.wgcluster.example.com #Availability group node
    10.0.0.5 AGNode2.ag.wgcluster.example.com #Availability group node
    10.0.0.6 AGWGAG.ag.wgcluster.example.com #Cluster IP
    10.0.0.7 AGListener.ag.wgcluster.example.com #Listener IP
    

    Ajouter les entrées correspondant à l'adresse IP, au cluster et à l'écouteur dans le fichier hosts

Définir des autorisations

En l'absence d'Active Directory pour gérer les autorisations, vous devez autoriser manuellement un compte Administrateur local non intégré à créer le cluster.

Pour ce faire, sur chaque nœud, exécutez la cmdlet PowerShell suivante dans une session PowerShell administrative :


new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1

Créer le cluster de basculement

Au cours de cette étape, vous allez créer le cluster de basculement. Pour en savoir plus sur ces étapes, suivez le tutoriel consacré au cluster de basculement.

Différences notables entre le tutoriel et ce qui doit être fait pour un cluster de groupes de travail :

  • Désactivez Stockage et Espaces de stockage direct lors de l'exécution de la validation du cluster.
  • Lors de l’ajout des nœuds au cluster, ajoutez le nom complet, par exemple :
    • AGNode1.ag.wgcluster.example.com
    • AGNode2.ag.wgcluster.example.com
  • Décochez Ajouter la totalité du stockage disponible au cluster.

Une fois le cluster créé, attribuez une adresse IP de cluster statique. Pour ce faire, procédez comme suit :

  1. Sur un des nœuds, ouvrez Gestionnaire du cluster de basculement, sélectionnez le cluster, cliquez avec le bouton droit sur Nom : <ClusterNam> sous Principales ressources du cluster, puis sélectionnez Propriétés.

    Lancer les propriétés du nom de cluster

  2. Sélectionnez l'adresse IP sous Adresses IP, puis choisissez Modifier.

  3. Sélectionnez Utiliser une adresse statique, fournissez l'adresse IP du cluster, puis sélectionnez OK :

    Fournir une adresse IP statique pour le cluster

  4. Vérifiez que vos paramètres sont corrects, puis sélectionnez OK pour les enregistrer :

    Vérifier les propriétés du cluster

Créer un témoin cloud

Au cours de cette étape, vous allez configurer un témoin de partage cloud. Pour en savoir plus sur ces étapes, consultez Déployer un témoin cloud pour un cluster de basculement.

Activer la fonctionnalité de groupes de disponibilité

Au cours de cette étape, vous allez activer la fonctionnalité Groupes de disponibilité. Pour en savoir plus sur ces étapes, suivez le tutoriel consacré aux groupes de disponibilité.

Créer des clés et des certificats

Au cours de cette étape, vous allez créer les certificats utilisés par la connexion SQL sur le point de terminaison chiffré. Créez un dossier sur chaque nœud pour y conserver les sauvegardes des certificats, par exemple c:\certs.

Remarque

Si vous ne spécifiez pas de date d'expiration pour le certificat, sa validité sera d'un an à partir de la date de création. Si le certificat expire, le contact entre les points de terminaison échoue.

Pour configurer le premier nœud, procédez comme suit :

  1. Ouvrez SQL Server Management Studio, puis connectez-vous à votre premier nœud, par exemple AGNode1.

  2. Ouvrez une fenêtre Nouvelle requête et exécutez l'instruction Transact-SQL (T-SQL) suivante après la mise à jour vers un mot de passe complexe et sécurisé :

    USE master;  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'PassWOrd123!';  
    GO
    
    --create a cert from the master key
    USE master;  
    CREATE CERTIFICATE AGNode1Cert   
       WITH SUBJECT = 'AGNode1 Certificate';  
    GO  
    
    --Backup the cert and transfer it to AGNode2
    BACKUP CERTIFICATE AGNode1Cert TO FILE = 'C:\certs\AGNode1Cert.crt';  
    GO  
    
  3. Créez ensuite le point de terminaison HADR et utilisez le certificat d'authentification en exécutant l'instruction Transact-SQL (T-SQL) suivante :

    --CREATE or ALTER the mirroring endpoint
    CREATE ENDPOINT hadr_endpoint  
       STATE = STARTED  
       AS TCP (  
          LISTENER_PORT=5022  
          , LISTENER_IP = ALL  
       )   
       FOR DATABASE_MIRRORING (   
          AUTHENTICATION = CERTIFICATE AGNode1Cert  
          , ENCRYPTION = REQUIRED ALGORITHM AES  
          , ROLE = ALL  
       );  
    GO  
    
  4. Utilisez l'Explorateur de fichiers pour accéder à l'emplacement de votre certificat, par exemple c:\certs.

  5. Procédez manuellement à une copie du certificat, par exemple AGNode1Cert.crt, à partir du premier nœud, puis transférez-la au même emplacement sur le deuxième nœud.

Pour configurer le deuxième nœud, procédez comme suit :

  1. Connectez-vous au deuxième nœud avec SQL Server Management Studio (SSMS), par exemple AGNode2.

  2. Dans une fenêtre Nouvelle requête, exécutez l'instruction Transact-SQL (T-SQL) suivante après la mise à jour vers un mot de passe complexe et sécurisé :

    USE master;  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'PassWOrd123!';  
    GO 
    
    --create a cert from the master key
    USE master;  
    CREATE CERTIFICATE AGNode2Cert   
       WITH SUBJECT = 'AGNode2 Certificate';  
    GO  
    --Backup the cert and transfer it to AGNode1
    BACKUP CERTIFICATE AGNode2Cert TO FILE = 'C:\certs\AGNode2Cert.crt';  
    GO
    
  3. Créez ensuite le point de terminaison HADR et utilisez le certificat d'authentification en exécutant l'instruction Transact-SQL (T-SQL) suivante :

    --CREATE or ALTER the mirroring endpoint
    CREATE ENDPOINT hadr_endpoint  
       STATE = STARTED  
       AS TCP (  
          LISTENER_PORT=5022  
          , LISTENER_IP = ALL  
       )   
       FOR DATABASE_MIRRORING (   
          AUTHENTICATION = CERTIFICATE AGNode2Cert  
          , ENCRYPTION = REQUIRED ALGORITHM AES  
          , ROLE = ALL  
       );  
    GO  
    
  4. Utilisez l'Explorateur de fichiers pour accéder à l'emplacement de votre certificat, par exemple c:\certs.

  5. Procédez manuellement à une copie du certificat, par exemple AGNode2Cert.crt, à partir du deuxième nœud, puis transférez-la au même emplacement sur le premier nœud.

Si le cluster comprend d'autres nœuds, répétez-y ces étapes, en modifiant les noms des certificats correspondants.

Créer des connexions

L'authentification par certificat est utilisée pour synchroniser les données entre les nœuds. Créez une connexion pour l'autre nœud, créez un utilisateur pour la connexion, créez un certificat pour la connexion afin d'utiliser le certificat sauvegardé, puis accordez la connexion sur le point de terminaison en miroir.

Pour ce faire, commencez par exécuter la requête Transact-SQL (T-SQL) suivante sur le premier nœud, par exemple AGNode1 :

--create a login for the AGNode2
USE master;  
CREATE LOGIN AGNode2_Login WITH PASSWORD = 'PassWord123!';  
GO  

--create a user from the login
CREATE USER AGNode2_User FOR LOGIN AGNode2_Login;  
GO  

--create a certificate that the login uses for authentication
CREATE CERTIFICATE AGNode2Cert  
   AUTHORIZATION AGNode2_User  
   FROM FILE = 'C:\certs\AGNode2Cert.crt'  
GO 

--grant connect for login
GRANT CONNECT ON ENDPOINT::hadr_endpoint TO [AGNode2_login];  
GO

Exécutez ensuite la requête Transact-SQL (T-SQL) suivante sur le deuxième nœud, par exemple AGNode2 :

--create a login for the AGNode1
USE master;  
CREATE LOGIN AGNode1_Login WITH PASSWORD = 'PassWord123!';  
GO  

--create a user from the login
CREATE USER AGNode1_User FOR LOGIN AGNode1_Login;  
GO  

--create a certificate that the login uses for authentication
CREATE CERTIFICATE AGNode1Cert  
   AUTHORIZATION AGNode1_User  
   FROM FILE = 'C:\certs\AGNode1Cert.crt'  
GO 

--grant connect for login
GRANT CONNECT ON ENDPOINT::hadr_endpoint TO [AGNode1_login];  
GO

Si le cluster comprend d'autres nœuds, répétez-y ces étapes, en modifiant les noms des certificats et des utilisateurs correspondants.

Configurer un groupe de disponibilité

Au cours de cette étape, vous allez configurer votre groupe de disponibilité et y ajouter vos bases de données. Ne créez pas d'écouteur pour le moment. Pour en savoir plus sur ces étapes, suivez le tutoriel consacré aux groupes de disponibilité. Lancez une procédure de basculement et de restauration automatique pour vérifier que tout fonctionne bien.

Notes

En cas d'échec du processus de synchronisation, vous devrez peut-être accorder temporairement à l'administrateur système NT AUTHORITY\SYSTEM les droits nécessaires à la création des ressources de cluster sur le premier nœud, par exemple AGNode1.

Configurer un équilibreur de charge

Dans cette dernière étape, vous allez configurer l’équilibreur de charge à l’aide du portail Azure ou de PowerShell.

Toutefois, il peut exister certaines limitations avec la GUI du cluster Windows. Par conséquent, vous devez utiliser PowerShell pour créer un point d’accès client ou le nom réseau de votre écouteur avec l’exemple de script suivant :

Add-ClusterResource -Name "IPAddress1" -ResourceType "IP Address" -Group "WGAG" 
Get-ClusterResource -Name IPAddress1 | Set-ClusterParameter -Multiple @{"Network" = "Cluster Network 1";"Address" = "10.0.0.4";"SubnetMask" = "255.0.0.0";"EnableDHCP" = 0} 
Add-ClusterResource -Name "IPAddress2" -ResourceType "IP Address" -Group "WGAG" 
Get-ClusterResource -Name IPAddress2 | Set-ClusterParameter -Multiple @{"Network" = "Cluster Network 2";"Address" = "10.0.0.5";"SubnetMask" = "255.0.0.0";"EnableDHCP" = 0} 
Add-ClusterResource -Name "TestName" -Group "WGAG" -ResourceType "Network Name" 
Get-ClusterResource -Name "TestName" | Set-ClusterParameter -Multiple @{"DnsName" = "TestName";"RegisterAllProvidersIP" = 1} 
Set-ClusterResourceDependency -Resource TestName -Dependency "[IPAddress1] or [IPAddress2]" 
Start-ClusterResource -Name TestName -Verbose 

Étapes suivantes

Une fois le groupe de disponibilité déployé, envisagez d’optimiser les paramètres HADR pour SQL Server sur les machines virtuelles Azure.

Pour en savoir plus, consultez :