Activer ou désactiver la fonctionnalité de groupe de disponibilité Always On

S’applique à :SQL Server

L’activation des groupes de disponibilité Always On est un prérequis pour qu’une instance de serveur utilise des groupes de disponibilité. Avant de pouvoir créer et configurer un groupe de disponibilité, la fonctionnalité Groupes de disponibilité Always On doit avoir été activée sur chaque instance de SQL Server qui hébergera un réplica de disponibilité pour un ou plusieurs groupes de disponibilité.

Important

Si vous supprimez et recréez un cluster WSFC, vous devez désactiver puis réactiver la fonctionnalité Groupes de disponibilité Always On sur chaque instance de SQL Server qui hébergeait un réplica de disponibilité sur le cluster WSFC d’origine.

Prérequis

  • Avant SQL Server 2017 et Windows Server 2016, l’instance devait résider sur un nœud de cluster de basculement Windows Server (WSFC) pour activer la fonctionnalité de groupe de disponibilité Always On. Pour prendre en charge les groupes de disponibilité avec échelle lecture, en commençant par SQL Server 2017 et Windows Server 2016, il est possible d’activer la fonctionnalité de groupe de disponibilité, même si l’instance SQL Server ne réside pas sur un cluster de basculement Windows Server.

  • L’instance du serveur doit exécuter une édition de SQL Server qui prend en charge les groupes de disponibilité Always On. Pour plus d’informations, consultez Fonctionnalités prises en charge par les éditions de SQL Server 2016.

  • Activez les groupes de disponibilité Always On sur une seule instance de serveur à la fois. Après avoir activé les groupes de disponibilité Always On, attendez le redémarrage du service SQL Server avant de passer à une autre instance de serveur.

Pour plus d’informations sur les autres conditions requises pour la création et la configuration de groupes de disponibilité, consultez Conditions préalables requises, restrictions et suggestions pour les groupes de disponibilité Always On (SQL Server).

Autorisations

Lorsque les groupes de disponibilité Always On sont activés sur une instance de SQL Server, l’instance de serveur a le contrôle total sur le cluster WSFC.

Nécessite l'appartenance au groupe Administrateur sur l'ordinateur local et le contrôle total sur le cluster WSFC. Pour activer Always On à l’aide de PowerShell, ouvrez la fenêtre d’invite de commandes en utilisant l’option Exécuter en tant qu’administrateur .

Requiert des autorisations de création et de gestion d'objets Active Directory.

Déterminer si la fonctionnalité est activée

Utilisation de SQL Server Management Studio

Pour déterminer si l’option Groupes de disponibilité Always On est activée

  1. Dans l’Explorateur d’objets, cliquez avec le bouton de droite sur l’instance de serveur, puis cliquez sur Propriétés.

  2. Dans la boîte de dialogue Propriétés du serveur , cliquez sur la page Général . La propriété Is HADR Enabled affiche une des valeurs suivantes :

    • True, si l’option Groupes de disponibilité Always On est activée

    • False, si l’option Groupes de disponibilité Always On est désactivée.

Utilisation de Transact-SQL

Pour déterminer si l’option Groupes de disponibilité Always On est activée

  1. Utilisez l'instruction SERVERPROPERTY suivante :

    SELECT SERVERPROPERTY ('IsHadrEnabled');  
    

    Le paramètre de la propriété de serveur IsHadrEnabled indique si une instance de SQL Server est activée pour les groupes de disponibilité Always On, comme suit :

    • Si IsHadrEnabled = 1, l’option Groupes de disponibilité Always On est activée.

    • Si IsHadrEnabled = 0, l’option Groupes de disponibilité Always On est désactivée.

    Notes

    Pour plus d’informations sur la propriété de serveur IsHadrEnabled , consultez SERVERPROPERTY (Transact-SQL).

Utilisation de PowerShell

Pour déterminer si l’option Groupes de disponibilité Always On est activée

  1. Définissez la valeur par défaut (cd) sur l’instance de serveur pour laquelle vous voulez déterminer si les groupes de disponibilité Always On sont activés.

  2. Entrez la commande PowerShell Get-Item suivante :

    PS SQLSERVER:\SQL\NODE1\DEFAULT> get-item . | select IsHadrEnabled  
    

    Notes

    Pour voir la syntaxe d’une applet de commande, utilisez l’applet de commande Get-Help dans l’environnement SQL Server PowerShell. Pour en savoir plus, voir Get Help SQL Server PowerShell.

Pour configurer et utiliser le fournisseur SQL Server PowerShell

Activer la fonctionnalité

Pour activer Always On, utilisez :

Utilisation du Gestionnaire de configuration SQL Server

Pour activer les groupes de disponibilité Always On

  1. Connectez-vous au nœud du cluster de basculement Windows Server qui héberge l’instance SQL où vous voulez activer les groupes de disponibilité Always On.

  2. Dans le menu Démarrer, pointez sur Tous les programmes, sur Microsoft SQL Server, sur Outils de configuration, puis cliquez sur Gestionnaire de configuration SQL Server.

  3. Dans le Gestionnaire de configuration SQL Server, cliquez sur Services SQL Server, cliquez avec le bouton de droite sur SQL Server (<nom de l’instance>)<nom de l’instance> est le nom d’une instance de serveur local pour laquelle vous souhaitez activer les groupes de disponibilité Always On, puis cliquez sur Propriétés.

  4. Sélectionnez l’onglet Haute disponibilité Always On.

  5. Vérifiez que le champ Nom du cluster de basculement Windows contient le nom du cluster de basculement local. Si ce champ est vide, cette instance de serveur ne prend actuellement pas en charge les groupes de disponibilité Always On. L’ordinateur local n’est pas un nœud de cluster, le cluster WSFC a été arrêté ou bien cette édition de SQL Server ne prend pas en charge les groupes de disponibilité Always On.

  6. Cochez la case Activer les groupes de disponibilité Always On , puis cliquez sur OK.

    SQL Server enregistre votre modification. Ensuite, vous devez redémarrer manuellement le service SQL Server . Cela vous permet de choisir l'heure de redémarrage la plus adaptée aux besoins de l'entreprise. Lorsque le service SQL Server redémarre, Always On est activé et la propriété de serveur IsHadrEnabled a la valeur 1.

Utilisation de SQL Server PowerShell

Pour activer Always On

  1. Remplacez le répertoire (cd) par une instance de serveur que vous voulez activer pour les groupes de disponibilité Always On.

  2. Utilisez l’applet de commande Enable-SqlAlwaysOn pour activer les groupes de disponibilité Always On.

    Pour voir la syntaxe d’une applet de commande, utilisez l’applet de commande Get-Help dans l’environnement SQL Server PowerShell. Pour en savoir plus, voir Get Help SQL Server PowerShell.

    Notes

    Pour plus d’informations sur la manière de contrôler si la cmdletEnable-SqlAlwaysOn redémarre le service SQL Server, consultez À quel moment une cmdlet redémarre-t-elle le service SQL Server ?, plus loin dans cette rubrique.

Pour configurer et utiliser le fournisseur SQL Server PowerShell

Exemple : Enable-SqlAlwaysOn

La commande PowerShell suivante active les groupes de disponibilité Always On sur une instance de SQL Server (Machine\Instance).

Enable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance  

Désactiver la fonctionnalité

Important

Désactivez Always On sur une seule instance de serveur à la fois. Après avoir désactivé les groupes de disponibilité Always On, attendez le redémarrage du service SQL Server avant de passer à une autre instance de serveur.

Recommandations

Avant de désactiver Always On sur une instance de serveur, nous vous recommandons d’effectuer les opérations suivantes :

  1. Si l'instance de serveur héberge actuellement le réplica principal d'un groupe de disponibilité que vous souhaitez conserver, nous recommandons de basculer manuellement le groupe de disponibilité vers un réplica secondaire synchronisé, si possible. Pour plus d’informations, consultez Effectuer un basculement manuel planifié d’un groupe de disponibilité (SQL Server).

  2. Supprimez tous les réplicas secondaires locaux. Pour plus d’informations, consultez Supprimer un réplica secondaire d’un groupe de disponibilité (SQL Server).

Utilisation du Gestionnaire de configuration SQL Server

Pour désactiver Always On

  1. Connectez-vous au nœud du cluster de basculement Windows Server qui héberge l’instance SQL où vous voulez désactiver les groupes de disponibilité Always On.

  2. Dans le menu Démarrer, pointez sur Tous les programmes, sur Microsoft SQL Server, sur Outils de configuration, puis cliquez sur Gestionnaire de configuration SQL Server.

  3. Dans le Gestionnaire de configuration SQL Server, cliquez sur Services SQL Server, cliquez avec le bouton de droite sur SQL Server (<nom de l’instance>), où <nom de l’instance> est le nom d’une instance de serveur local pour laquelle vous voulez désactiver les groupes de disponibilité Always On, puis cliquez sur Propriétés.

  4. Sous l’onglet Haute disponibilité Always On, décochez la case Activer les groupes de disponibilité Always On, puis cliquez sur OK.

    Le Gestionnaire de configuration SQL Server enregistre votre modification et redémarre le service SQL Server. Quand le service SQL Server redémarre, Always On est désactivé et la propriété de serveur IsHadrEnabled a la valeur 0, pour indiquer que l’option Groupes de disponibilité Always On est désactivée.

  5. Nous vous conseillons de lire la section Suivi : Après la désactivation d’Always On, plus loin dans cette rubrique.

Utilisation de SQL Server PowerShell

Pour désactiver Always On

  1. Remplacez le répertoire (cd) par une instance de serveur actuellement activée que vous voulez désactiver pour les groupes de disponibilité Always On.

  2. Utilisez l’applet de commande Disable-SqlAlwaysOn pour désactiver les groupes de disponibilité Always On.

    Par exemple, la commande suivante désactive les groupes de disponibilité Always On sur une instance de SQL Server (Ordinateur\Instance). Cette commande nécessite le redémarrage de l'instance et vous serez invité à confirmer ce redémarrage.

    Disable-SqlAlwaysOn -Path SQLSERVER:\SQL\Computer\Instance  
    

    Important

    Pour plus d’informations sur la manière de contrôler si la cmdlet Disable-SqlAlwaysOn redémarre le service SQL Server, consultez À quel moment une cmdlet redémarre-t-elle le service SQL Server ?, plus loin dans cette rubrique.

    Pour voir la syntaxe d’une applet de commande, utilisez l’applet de commande Get-Help dans l’environnement SQL Server PowerShell. Pour en savoir plus, voir Get Help SQL Server PowerShell.

Pour configurer et utiliser le fournisseur SQL Server PowerShell

Suivi : Après la désactivation d’Always On

Après avoir désactivé des groupes de disponibilité Always On, l’instance de SQL Server doit être redémarrée. Le Gestionnaire de configuration SQL redémarre l'instance de serveur automatiquement. Toutefois, si vous avez utilisé l’applet de commande Disable-SqlAlwaysOn , vous devez redémarrer l’instance de serveur manuellement. Pour plus d’informations, consultez sqlservr Application.

Sur l'instance de serveur redémarrée :

  • Les bases de données de disponibilité ne démarrent pas au démarrage de SQL Server, ce qui les rend inaccessibles.

  • La seule instruction Transact-SQL Always On prise en charge est DROP AVAILABILITY GROUP. Les options CREATE AVAILABILITY GROUP, ALTER AVAILABILITY GROUP et SET HADR de ALTER DATABASE ne sont pas prises en charge.

  • Les métadonnées SQL Server et les données de configuration des groupes de disponibilité Always On dans WSFC ne sont pas affectées par la désactivation des groupes de disponibilité Always On.

Si vous désactivez définitivement des groupes de disponibilité Always On sur chaque instance de serveur qui héberge un réplica de disponibilité pour un ou plusieurs groupes de disponibilité, nous recommandons de procéder comme suit :

  1. Si vous ne supprimez pas les réplicas de disponibilité locaux avant de désactiver Always On, supprimez (avec l’instruction Drop) chaque groupe de disponibilité pour lequel l’instance de serveur héberge un réplica de disponibilité. Pour plus d’informations sur la suppression d’un groupe de disponibilité, consultez Supprimer un groupe de disponibilité (SQL Server).

  2. Pour supprimer les métadonnées restantes, supprimez chaque groupe de disponibilité affecté sur une instance de serveur qui fait partie du cluster de basculement Windows Server d’origine.

  3. Toutes les bases de données primaires restent accessibles à toutes les connexions, mais la synchronisation des données entre les bases de données primaires et secondaires est arrêtée.

  4. Les bases de données secondaires passent à l'état RESTORING. Vous pouvez les supprimer ou les restaurer à l'aide de RESTORE WITH RECOVERY. Toutefois, les bases de données restaurées ne participent plus à la synchronisation des données des groupes de disponibilité.

À quel moment une applet de commande redémarre-t-elle le service SQL Server ?

Sur une instance de serveur en cours d’exécution, l’utilisation de l’applet de commande Enable-SqlAlwaysOn ou Disable-SqlAlwaysOn pour changer le paramètre Always On actuel peut entraîner le redémarrage du service SQL Server. Le comportement de redémarrage dépend des conditions suivantes :

Paramètre -NoServiceRestart spécifié Paramètre -Force spécifié Le service SQL Server est-il redémarré ?
Non Non Par défaut. Mais l'applet de commande vous invite à agir comme suit :

Pour permettre l’achèvement de cette action, nous devons redémarrer le service SQL Server de l’instance de serveur « <instance_name> ». Do you want to continue?

[Y] Oui [N] Non [S] Suspendre [?] Aide (la valeur par défaut est « Y ») :

Si vous spécifiez N ou S, le service n'est pas redémarré.
Non Oui Le service est redémarré.
Oui Non Le service n'est pas redémarré.
Oui Oui Le service n'est pas redémarré.

Voir aussi

Vue d’ensemble des groupes de disponibilité Always On (SQL Server)
SERVERPROPERTY (Transact-SQL)