logo rss

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

Logo microsoft sql server mssql Logo

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.

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, j'utilise donc une commande wmic juste après pour cela :
net user mssqlservice MyPassw0rdMSSQL! /add /expires:never
WMIC USERACCOUNT WHERE Name='mssqlservice' SET PasswordExpires=FALSE
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)

Pare Feu

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

  • Par exemple, pour le firewall intĂ©grĂ© Ă  Windows 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
  • Ou en PowerShell :
PS > New-NetFirewallRule -DisplayName "MSSQL" -Direction Inbound -LocalAddress Any -RemoteAddress Any -Protocol tcp -LocalPort 1433,5022 -Action Allow

DNS

  • 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

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)

  • 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 :

adresse mail de contact