Haute Disponibilité Microsoft SQL Server (Always On) sans domaine Active Directory

Intro

J'ai eu à mettre en place la haute disponibilité pour Microsoft SQL Server dans un groupe de travail WORKGROUP donc hors domaine. Depuis Microsoft SQL Server 2017 la fonctionnalité Always On est disponible pour les versions standard (le licencing MSSQL Standard l'autorise mais pour seulement une seule base de données). Également, depuis Windows 2016 Server Standard le cluster de Haute Disponibilité est compatible dans un groupe de travail WORKGROUP.

  • Mise à jour le 29 novembre 2020

Configuration

  • OS : Windows 2019 Server Standard
  • Microsoft SQL Server : 2019 Standard

Schéma de l'architecture

MSSQL | Schéma architecture HA AlwaysOn

Créer les comptes de service Microsoft SQL (MSSQL01 et MSSQL02)

  • ⚠️ : le paramètre /expires:never ne semble pas fonctionner il faudra donc préciser que le mot de passe n'expire jamais depuis la console de gestion des comptes utilisateurs :
net user mssqlservice MyPassw0rdMSSQL! /add /expires:never
net localgroup administrators mssqlservice /add
batch windows créer utilisateurs

Installation de Microsoft SQL Server (MSSQL01 et MSSQL02)

  • Il faut installer MSSQL sur les deux serveurs :
MSSQL | Centre d'installation SQL Server
  • Choisir l'édition. Comme je suis pauvre et en environnement de test, je peux utiliser la version d'Évaluation :
MSSQL | Programme d'installation de SQL Server 2019, Spécifier une édition gratuite
  • Accepter les termes du contrat de licence :
MSSQL | Programme d'installation de SQL Server 2019, Termes du contrat de licence
  • Il est fortement conseillé (mais pas obligatoire) de faire les mises à jour :
MSSQL | Programme d'installation de SQL Server 2019, Microsoft Update
  • Vérifier qu'il n'y a pas d'erreurs bloquantes et cliquer sur Suivant :
MSSQL | Programme d'installation de SQL Server 2019, Règles d'installation
  • Nous n'avons besoin que du Service Moteur de base de données :
MSSQL | Programme d'installation de SQL Server 2019, Sélection de fonctionnalités.
  • Paramétrer l'id de l'instance, qui est MSSQLSERVER par défaut :
MSSQL | Programme d'installation de SQL Server 2019, Configuration de l'instance.
  • Utiliser les comptes de service par défaut :
MSSQL | Programme d'installation de SQL Server 2019, Spécifiez les comptes de service.
  • Sélectionner le mode d'authentification Windows et cliquer sur Ajouter l'utilisateur actuel pour ajouter le compte administrateur. Nous n'utiliserons pas l'authentification SQL Server :
MSSQL | Programme d'installation de SQL Server 2019, Configuration du moteur de base de données.
  • Cliquer sur Installer
MSSQL | Programme d'installation de SQL Server 2019, Prêt pour l'installation
  • A la fin de l'installation redémarrer le serveur :
MSSQL | Programme d'installation de SQL Server 2019, Redémarrage requis
  • L'installation est terminée, avant de redémarrer, vérifier qu'il n'y ait pas d'étapes en erreur :
MSSQL | Programme d'installation de SQL Server 2019, Terminée

Configuration réseau et DNS (MSSQL01 et MSSQL02)

  • Ajouter les enregistrements DNS suivant dans le fichier C:\Windows\System32\drivers\etc\hosts :
192.168.1.196 mssql01
192.168.1.196 mssql01.priv
192.168.1.197 mssql02
192.168.1.197 mssql02.priv
192.168.1.198 wfc_mssql
192.168.1.198 wfc_mssql.priv
192.168.1.199 ha_mssql
192.168.1.199 ha_mssql.priv
Notepad ouver sur C:\Windows\System32\drivers\etc\hosts
  • Ouvrir les Propriétés systèmes :
Windows | Démarrer, exécuter control /name microsoft.system
  • Cliquer sur Modifier les paramètres :
Windows | Informations système générales.
  • Cliquer sur Modifier :
Windows | Propriétés système, onglet nom de l'ordinateur
  • Cliquer sur Autres… :
Windows | Modification du nom ou du domaine de l'ordinateur.
  • Ajouter un suffixe DNS principal :
Windows | Nom d'ordinateur NetBIO et suffixe DNS.
  • Redémarrer le serveur :
Windows | Redémarrer l'ordinateur
  • Dans le menu connexions réseau, aller dans les propriétés de sa carte réseau :
Windows | Propriétés carte réseau.
  • Sélectionner Internet Protocol Version 4 (TCP/IPv4) et cliquer sur Propriétés :
Windows | Propriétés de l'ethernet 0.
  • Désactiver l'enregistrement DNS :
Windows | Propriétés de l'Internet Protocol Version 4 (TCP/IPv4).
  • Décocher le paramètre «Enregistrer les adresses de cette connexion dans le système DNS» :
Windows | Paramètres TCP/IP avancés.

Failover Clustering (MSSQL01 et MSSQL02)

Afin d'activer la haute disponibilité nous allons installer le rôle Windows Failover Clustering.

Installation

Depuis l'interface graphique

  • Depuis le Gestionnaire de serveur cliquer sur Ajouter des rôles et fonctionnalités :
Windows | Ajouter des rôles et fonctionnalités
  • Cliquer sur Suivant :
Windows | Assistant ajout de rôles et de fonctionnalités, avant de commencer
  • Choisir Installation basée sur un rôle ou une fonctionnalité :
Windows | Assistant ajout de rôles et de fonctionnalités, Sélectionner le type d'installation
  • Sélectionner le serveur :
Windows | Assistant ajout de rôles et de fonctionnalités, Sélectionner le serveur de destination.
  • Ne pas ajouter de rôle :
Windows | Assistant ajout de rôles et de fonctionnalités, Sélectionner des rôles de serveurs.
  • Sélectionner Failover Clustering dans la liste :
Windows | Assistant ajout de rôles et de fonctionnalités, Sélectionner des fonctionnalités
  • Cocher Redémarrer automatiquement puis cliquer sur suivant Installer :
Windows | Assistant ajout de rôles et de fonctionnalités, Confirmer les sélections d'installation.
  • Enfin cliquer sur Fermer :
Windows | Assistant ajout de rôles et de fonctionnalités, Progression de l'installation.

Installation depuis PowerShell

  • Ou avec la commande PowerShell suivante :
PS C:\Windows\system32> Install-WindowsFeature -Name Failover-Clustering –IncludeManagementTools -Restart

Configuration du Failover Clustering (MSSQL01)

Configuration depuis l'interface graphique

  • Ouvrir le gestionnaire du cluster de basculement :
Windows | Exécuter cluadmin.msc
  • Créer un nouveau Cluster
Windows | Gestionnaire de cluster de basculement, Action, Créer le cluster
  • Cliquer sur Suivant :
Windows | Assistant création de cluster, Avant de commencer.
  • Ajouter les serveurs mssql :
    • ⚠️ Afin d'accéder au partage administratif et ne pas avoir le message “vous n'avez pas de privilèges d'administration sur le serveur”, entrer la commande suivante sur les deux serveurs :
C:\Windows\system32>REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /f /D 1
Windows | Assistant création de cluster, sélection des serveurs.
  • Lorsque les deux serveurs mssql ont été correctement ajoutés, cliquer sur Suivant :
Windows | Assistant création de cluster, sélection des serveurs.
  • Ne pas exécuter les tests de validation et cliquer sur Suivant :
Windows | Assistant création de cluster, Avertissement de validation.
  • Donner un Nom au cluster et paramétrer l'adresse ip :
Windows | Assistant création de cluster, Point d'accès pour l'administration du cluster.
  • Cliquer sur Suivant pour démarrer la création du cluster :
Windows | Assistant création de cluster, Confirmation.
  • Le cluster est à présent créé, cliquer sur Terminer pour fermer l'assistant :
Windows | Assistant création de cluster, Résumé

Configuration depuis PowerShell

  • Entrer la commande PowerShell suivante :
PS C:\Windows\system32> New-Cluster -Name WFC_MSSQL -Node mssql01.priv, mssql02.priv -AdministrativeAccessPoint DNS -StaticAddress 192.168.1.198

Activer la fonctionnalité AlwaysOn Availability (MSSQL01 et MSSQL02)

Le cluster étant opérationnel, nous pouvons maintenant activer la fonctionnalité AlwaysOn Availability.

  • Ouvrir le SQL Server Configuration Manager :
MSSQL | exécuter SQLServerManager15.msc
  • Dans Services SQL Server aller dans les propriétés de SQL Server :
MSSQL | SQL Server Configuration Manager, propriétés de SQL Server.
  • Activer les groupes de disponibilité Always On :
MSSQL | SQL Server Configuration Manager, propriétés de SQL Server, Activer Always On.
  • Changer le compte d'Ouverture de session :
MSSQL | SQL Server Configuration Manager, propriétés de SQL Server, compte de session.
  • Utiliser le compte mssqlservice précédemment créé :
  • Entrer le mot de passe pour notre compte de service mssqlservice :
MSSQL | SQL Server Configuration Manager, propriétés de SQL Server, compte de session.
  • Redémmarer le service SQL Server :
MSSQL | SQL Server Configuration Manager, redémarrer le service SQL Server.

Microsoft SQL Server Management Studio

  • Télécharger et Installer Microsoft SQL Server Management Studio.
MSSQL Management Studio | Installation, cliquer sur installer.
  • A la fin de l'installation Redémarrer l'ordinateur :
MSSQL Management Studio | Installation terminée, Redémarrer.

Configuration du compte mssqlservice (MSSQL01 et MSSQL02)

Note : Il nous faudra ouvrir les ports TCP 1433 et 5022 sur chaque serveur.

  • Par exemple en exécutant la commande suivante :
PS C:\Windows\system32> netsh advfirewall firewall add rule name="MSSQL" dir=in localport=1433,5022 remoteport=0-65535 protocol=TCP action=allow remoteip=any localip=any
  • Ouvrir Microsoft SQL Server Management Studio et se conecter sur le serveur MSSQL01 :
MSSQL Management Studio | Se connecter au serveur.
  • Dans l'Explorateur d'objet dans Sécurité faire un clic droit sur Connexions > Nouvelle connexion… :
MSSQL Management Studio | Explorateur d'objet, Connexions, Nouvelle connexion.
  • Ajouter le compte mssqlservice et cliquer sur OK :
MSSQL Management Studio | Fenêtre nouvelle connexion.
  • Configurer le compte mssqlservice :
MSSQL Management Studio | Explorateur d'objet, Connexions, Propriétés de l'utilisateur.
  • Dans Éléments sécurisables, accorder les droits Connecter SQL :
MSSQL Management Studio | Propriétés de la connexion, Éléments sécurisables
  • Dans Rôles du serveur, ajouter le rôle sysadmin :
MSSQL Management Studio | Propriétés de la connexion,Rôles du serveur.
  • Rejouer la même procédure pour le serveur MSSQL02.

Paramétrer SQL Server AlwaysOn

  • Tout d'abord il faut procéder à une sauvegarde de base de données :
MSSQL Management Studio | Explorateur d'objet, Base de données, Sauevegarder
  • Si besoin, changer l'emplacement de destination par défaut et cliquer sur OK pour sauvegader :
MSSQL Management Studio | Sauvegarder la base de donénes.
  • Puis faire un clic droit sur Haute disponibilité Always ON et cliquer sur Assistant Nouveau groupe de disponibilité…
MSSQL Management Studio | Explorateur d'objet, Haute disponibilité Always On, Assistant Nouveau groupe de disponibilité
  • L'assistant de création de groupe de disponibilité s'ouvre, cliquer sur Suivant :
MSSQL Management Studio | assistant de création de groupe de disponibilité, Introduction
  • Donner un nom au groupe de disponibilité et cliquer sur Suivant :
MSSQL Management Studio | assistant de création de groupe de disponibilité, Spécifier les options du groupe de disponibilité
  • Choisir la base de données et cliquer sur Suivant :
MSSQL Management Studio | assistant de création de groupe de disponibilité, Sélectionner les bases de données
  • Ajouter le serveur MSSQL02 :
MSSQL Management Studio | assistant de création de groupe de disponibilité, Spécifier les réplicas MSSQL Management Studio | assistant de création de groupe de disponibilité, se connecter au serveur. MSSQL Management Studio | assistant de création de groupe de disponibilité, Spécifier les réplicas
  • Paramétrer les informations concernant l'écouteur :
MSSQL Management Studio | assistant de création de groupe de disponibilité, Spécifier les réplicas, onglet écouteur
  • Sélectionner Seed automatique :
MSSQL Management Studio | assistant de création de groupe de disponibilité, Fenêtre utiliser les points de terminaison répertoriés. MSSQL Management Studio | assistant de création de groupe de disponibilité, Nouveau groupe de disponibilité, seed automatique
  • Vérifier les résultats de la validation du groupe de disponibilité :
MSSQL Management Studio | assistant de création de groupe de disponibilité, Validation
  • Cliquer sur Terminer pour procéder à la création du groupe de disponibilité :
MSSQL Management Studio | assistant de création de groupe de disponibilité, Résumé avant installation.
  • Le message l'Assistant s'est terminée correctement devrait apparaitre, cliquer sur Fermer pour fermer l'assistant :
MSSQL Management Studio | assistant de création de groupe de disponibilité, Résultats.
  • Se connecter sur l'interface du cluster et vérifier que tout est OK :
MSSQL Management Studio | Fenêtre de connectoin au serveur. MSSQL Management Studio | Base de données, synchronisé. MSSQL Management Studio | groupe de disponibilité principal et secondaire.

Sources

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :