Préparer l’utilisation d’un groupe de disponibilité SQL Server Always On avec Configuration Manager

S’applique à : Gestionnaire de Configuration (branche actuelle)

Utilisez cet article pour préparer Configuration Manager à utiliser un groupe de disponibilité SQL Server Always On pour la base de données du site. Cette fonctionnalité fournit une solution de haute disponibilité et de récupération d’urgence.

Configuration Manager prend en charge l’utilisation de groupes de disponibilité :

  • Sur les sites principaux et le site d’administration centrale.
  • Localement ou dans Microsoft Azure.

Lorsque vous utilisez des groupes de disponibilité dans Microsoft Azure, vous pouvez augmenter la disponibilité de votre base de données de site à l’aide de groupes à haute disponibilité Azure. Pour plus d’informations sur les groupes à haute disponibilité Azure, consultez Gérer la disponibilité des machines virtuelles.

Importante

Avant de continuer, familiarisez-vous avec la configuration des SQL Server et des groupes de disponibilité. Cet article fait référence à la bibliothèque de documentation SQL Server avec plus d’informations et de procédures.

Scénarios pris en charge

Les scénarios suivants sont pris en charge pour l’utilisation de groupes de disponibilité avec Configuration Manager. Pour plus d’informations et de procédures pour chaque scénario, consultez Configurer des groupes de disponibilité pour Configuration Manager.

Conditions préalables

Les prérequis suivants s’appliquent à tous les scénarios. Si des conditions préalables supplémentaires s’appliquent à un scénario spécifique, elles sont détaillées avec ce scénario.

Configuration Manager comptes et autorisations

Compte d’installation

Le compte que vous utilisez pour exécuter Configuration Manager configuration doit être :

  • Membre du groupe Administrateurs local sur chaque ordinateur membre du groupe de disponibilité.
  • Un sysadmin sur chaque instance de SQL Server qui héberge la base de données du site.

Serveur de site pour répliquer l’accès aux membres

Le compte d’ordinateur du serveur de site doit être membre du groupe Administrateurs local sur chaque ordinateur membre du groupe de disponibilité.

SQL Server

Version

Chaque réplica du groupe de disponibilité doit exécuter une version de SQL Server prise en charge par votre version de Configuration Manager. Lorsqu’ils sont pris en charge par SQL Server, différents nœuds d’un groupe de disponibilité peuvent exécuter différentes versions de SQL Server. Pour plus d’informations, consultez Versions SQL Server prises en charge pour Configuration Manager.

Édition

Utilisez une édition Enterprise de SQL Server.

Compte

Chaque instance de SQL Server peut s’exécuter sous un compte d’utilisateur de domaine (compte de service) ou un compte non-domaine. Chaque réplica d’un groupe peut avoir une configuration différente.

Database

Configurer la base de données sur un nouveau réplica

Effectuez uniquement ces configurations sur un réplica principal. Pour configurer un réplica secondaire, basculez d’abord le réplica principal vers le réplica secondaire. Cette action fait du réplica secondaire le nouveau réplica principal.

Configurez la base de données de chaque réplica avec les paramètres suivants :

  • Activer l’intégration du CLR :

    sp_configure 'show advanced options', 1;  
    GO  
    RECONFIGURE;  
    GO  
    sp_configure 'clr enabled', 1;  
    GO  
    RECONFIGURE;  
    GO
    

    Pour plus d’informations, consultez Intégration du CLR.

  • Définissez Max text repl size sur 2147483647:

    EXECUTE sp_configure 'max text repl size (B)', 2147483647
    
  • Définissez le propriétaire de la base de données sur le compte SA. Vous n’avez pas besoin d’activer ce compte.

  • Activez le paramètre TRUSTWORTHY :

    ALTER DATABASE [CM_xxx] SET TRUSTWORTHY ON;
    

    Pour plus d’informations, consultez la propriété de base de données TRUSTWORTHY.

  • Activez Service Broker :

    ALTER DATABASE [CM_xxx] SET ENABLE_BROKER
    

    Remarque

    Vous ne pouvez pas activer l’option Service Broker sur une base de données qui fait déjà partie d’un groupe de disponibilité. Vous devez activer cette option avant de l’ajouter au groupe de disponibilité.

  • Configurez la priorité Service Broker :

    ALTER DATABASE [CM_xxx] SET HONOR_BROKER_PRIORITY ON;
    ALTER DATABASE [CM_xxx] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE
    

Script de vérification de base de données

Exécutez le script SQL suivant pour vérifier les configurations de base de données pour les réplicas principaux et secondaires. Avant de pouvoir résoudre un problème sur un réplica secondaire, remplacez ce réplica secondaire par le réplica principal.

    SET NOCOUNT ON

    DECLARE @dbname NVARCHAR(128)

    SELECT @dbname = sd.name FROM sys.sysdatabases sd WHERE sd.dbid = DB_ID()

    IF (@dbname = N'master' OR @dbname = N'model' OR @dbname = N'msdb' OR @dbname = N'tempdb' OR @dbname = N'distribution' ) BEGIN
    RAISERROR(N'ERROR: Script is targeting a system database.  It should be targeting the DB you created instead.', 0, 1)
    GOTO Branch_Exit;
    END ELSE
    PRINT N'INFO: Targeted database is ' + @dbname + N'.'

    PRINT N'INFO: Running verifications....'

    IF NOT EXISTS (SELECT * FROM sys.configurations c WHERE c.name = 'clr enabled' AND c.value_in_use = 1)
    PRINT N'ERROR: CLR is not enabled!'
    ELSE
    PRINT N'PASS: CLR is enabled.'

    DECLARE @repltable TABLE (
    name nvarchar(max),
    minimum int,
    maximum int,
    config_value int,
    run_value int )

    INSERT INTO @repltable
    EXEC sp_configure 'max text repl size (B)'

    IF NOT EXISTS(SELECT * from @repltable where config_value = 2147483647 and run_value = 2147483647 )
    PRINT N'ERROR: Max text repl size is not correct!'
    ELSE
    PRINT N'PASS: Max text repl size is correct.'

    IF NOT EXISTS (SELECT db.owner_sid FROM sys.databases db WHERE db.database_id = DB_ID() AND db.owner_sid = 0x01)
    PRINT N'ERROR: Database owner is not sa account!'
    ELSE
    PRINT N'PASS: Database owner is sa account.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_trustworthy_on = 1 )
    PRINT N'ERROR: Trustworthy bit is not on!'
    ELSE
    PRINT N'PASS: Trustworthy bit is on.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_broker_enabled = 1 )
    PRINT N'ERROR: Service broker is not enabled!'
    ELSE
    PRINT N'PASS: Service broker is enabled.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_honor_broker_priority_on = 1 )
    PRINT N'ERROR: Service broker priority is not set!'
    ELSE
    PRINT N'PASS: Service broker priority is set.'

    PRINT N'Done!'

    Branch_Exit:

Configurations du groupe de disponibilité

Membres du réplica

  • Le groupe de disponibilité doit avoir un réplica principal.

  • Utilisez le même nombre et le même type de réplicas dans un groupe de disponibilité que votre version de SQL Server prend en charge.

  • Vous pouvez utiliser un réplica de validation asynchrone pour récupérer votre réplica synchrone. Pour plus d’informations, consultez Options de récupération de base de données de site.

    Avertissement

    Configuration Manager ne prend pas en charge le basculement pour utiliser le réplica de validation asynchrone comme base de données de site. Pour plus d’informations, consultez Modes de basculement et de basculement (Always On groupes de disponibilité).

Configuration Manager ne valide pas l’état du réplica de validation asynchrone pour confirmer qu’il est actuel. L’utilisation d’un réplica de validation asynchrone comme base de données de site peut mettre en danger l’intégrité de votre site et de vos données. Ce réplica peut être désynchronisée par conception. Pour plus d’informations, consultez Vue d’ensemble des groupes de disponibilité SQL Server Always On.

Chaque membre de réplica doit avoir la configuration suivante :

  • Utilisez l’instance par défaut ou une instance nommée.

    Remarque

    N’avez pas de partage de fichiers sur le serveur portant le même nom que le nom de l’instance SQL Server.

  • Le paramètre Connexions dans le rôle principal est Autoriser toutes les connexions.

  • Le paramètre Secondaire accessible en lecture est Oui.

  • Activé pour le basculement manuel

    Remarque

    Configuration Manager prend en charge l’utilisation des réplicas synchrones de groupe de disponibilité quand il est défini sur Basculement automatique. Définissez basculement manuel dans les cas suivants :

    • Vous exécutez Configuration Manager programme d’installation pour spécifier l’utilisation de la base de données de site dans le groupe de disponibilité.
    • Vous installez une mise à jour sur Configuration Manager. (Pas seulement les mises à jour qui s’appliquent à la base de données du site).
  • Tous les membres ont besoin du même mode d’amorçage.Configuration Manager configuration inclut une vérification des prérequis pour vérifier cette configuration lors de la création d’une base de données via l’installation ou la récupération.

    Remarque

    Lorsque le programme d’installation crée la base de données et que vous configurez l’amorçage automatique , le groupe de disponibilité doit disposer des autorisations nécessaires pour créer la base de données. Cette exigence s’applique à une nouvelle base de données ou à une récupération. Pour plus d’informations, consultez Amorçage automatique pour le réplica secondaire.

Emplacement du membre du réplica

Hébergez tous les réplicas dans un groupe de disponibilité local, ou hébergez-les tous sur Microsoft Azure. Un groupe qui inclut un membre local et un membre dans Azure n’est pas pris en charge.

Remarque

Si vous utilisez une machine virtuelle Azure pour le SQL Server, activez l’adresse IP flottante. Pour plus d’informations, consultez Configurer un équilibreur de charge pour un groupe de disponibilité SQL Server Always On dans des machines virtuelles Azure.

Configuration Manager configuration doit se connecter à chaque réplica. Lorsque vous configurez un groupe de disponibilité dans Azure et que le groupe se trouve derrière un équilibreur de charge interne ou externe, ouvrez les ports par défaut suivants :

  • Mappeur de point de terminaison RPC : TCP 135

  • SQL Server Service Broker : TCP 4022

  • SQL sur TCP : TCP 1433

Une fois l’installation terminée, ces ports doivent rester ouverts pour Configuration Manager et l’analyseur de liaison de réplication.

Vous pouvez utiliser des ports personnalisés pour ces configurations. Utilisez les mêmes ports personnalisés par le point de terminaison et sur tous les réplicas du groupe de disponibilité.

Pour SQL Server de répliquer les données entre les sites, créez une règle d’équilibrage de charge pour chaque port dans l’équilibreur de charge Azure. Pour plus d’informations, consultez Configurer des ports de haute disponibilité pour un équilibreur de charge interne.

Auditeur

Le groupe de disponibilité doit avoir au moins un écouteur de groupe de disponibilité. Lorsque vous configurez Configuration Manager pour utiliser la base de données de site dans le groupe de disponibilité, il utilise le nom virtuel de cet écouteur. Bien qu’un groupe de disponibilité puisse contenir plusieurs écouteurs, Configuration Manager ne peut utiliser qu’un seul écouteur. Pour plus d’informations, consultez Créer ou configurer un écouteur de groupe de disponibilité SQL Server.

Chemins d’accès

Lorsque vous exécutez Configuration Manager configuration d’un site pour utiliser la base de données dans un groupe de disponibilité, chaque serveur réplica secondaire doit avoir un chemin d’accès de fichier SQL Server identique au chemin d’accès des fichiers de base de données de site sur le réplica principal actuel. S’il n’existe pas de chemin d’accès identique, le programme d’installation ne parvient pas à ajouter l’instance du groupe de disponibilité comme nouvel emplacement de la base de données du site.

Le compte de service SQL Server local doit disposer de l’autorisation Contrôle total sur ce dossier.

Les serveurs réplicas secondaires nécessitent uniquement ce chemin de fichier lorsque vous utilisez Configuration Manager configuration pour spécifier l’instance de base de données dans le groupe de disponibilité. Une fois la configuration de la base de données de site dans le groupe de disponibilité terminée, vous pouvez supprimer le chemin d’accès inutilisé des serveurs de réplica secondaires.

Par exemple, envisagez le scénario suivant :

  • Vous créez un groupe de disponibilité qui utilise trois serveurs SQL Server.

  • Votre serveur réplica principal est une nouvelle installation de SQL Server 2014. Par défaut, il stocke les fichiers MDF et LDF de base de données dans C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA.

  • Vous avez mis à niveau vos deux serveurs réplicas secondaires vers SQL Server 2014 à partir des versions précédentes. Avec la mise à niveau, ces serveurs conservent le chemin de fichier d’origine pour stocker les fichiers de base de données : C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA.

  • Avant de déplacer la base de données de site vers ce groupe de disponibilité, sur chaque serveur réplica secondaire, créez le chemin d’accès de fichier suivant : C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA. Ce chemin d’accès est un doublon du chemin d’accès utilisé sur le réplica principal, même si les réplicas secondaires n’utilisent pas cet emplacement de fichier.

  • Vous accordez ensuite au compte de service SQL Server sur chaque réplica secondaire un accès en contrôle total à l’emplacement de fichier nouvellement créé sur ce serveur.

  • Vous pouvez maintenant exécuter correctement Configuration Manager configuration du site pour qu’il utilise la base de données du site dans le groupe de disponibilité.

Basculement de sous-réseaux multiples

Vous pouvez activer le mot clé de chaîne de connexion MultiSubnetFailover dans SQL Server. Vous devez également ajouter manuellement les valeurs suivantes au Registre Windows sur le serveur de site :

HKLM:\SOFTWARE\Microsoft\SMS\Identification
HKLM:\SOFTWARE\Microsoft\SMS\SQL Server

MSF Enabled : 1 (DWORD)

Avertissement

L’utilisation de la haute disponibilité du serveur de site et des groupes de disponibilité SQL Server Always On avec basculement à plusieurs sous-réseaux ne fournit pas toutes les fonctionnalités du basculement automatique pour les scénarios de récupération d’urgence.

Si vous devez créer un groupe de disponibilité avec un membre dans un emplacement distant, hiérarchiser en fonction de la latence réseau la plus faible. Une latence réseau élevée peut entraîner des échecs de réplication.

Limitations et problèmes connus

Les limitations suivantes s’appliquent à tous les scénarios.

Options et configurations de SQL Server non prises en charge

  • Groupes de disponibilité de base : introduits avec SQL Server édition Standard 2016, les groupes de disponibilité de base ne prennent pas en charge l’accès en lecture aux réplicas secondaires. La configuration nécessite cet accès. Pour plus d’informations, consultez Groupes de disponibilité SQL Server de base.

  • Instance de cluster de basculement : les instances de cluster de basculement ne sont pas prises en charge pour un réplica que vous utilisez avec Configuration Manager. Pour plus d’informations, consultez SQL Server Always On instances de cluster de basculement.

Serveurs SQL qui hébergent des groupes de disponibilité supplémentaires

Lorsque le SQL Server héberge un ou plusieurs groupes de disponibilité en plus du groupe que vous utilisez pour Configuration Manager, il a besoin de paramètres spécifiques au moment où vous exécutez Configuration Manager configuration. Ces paramètres sont également nécessaires pour installer une mise à jour pour Configuration Manager. Chaque réplica de chaque groupe de disponibilité doit avoir les configurations suivantes :

  • Basculement manuel

  • Autoriser toute connexion en lecture seule

Remarque

Configuration Manager prend en charge l’utilisation des réplicas synchrones de groupe de disponibilité quand il est défini sur Basculement automatique. Définissez basculement manuel dans les cas suivants :

  • Vous exécutez Configuration Manager programme d’installation pour spécifier l’utilisation de la base de données de site dans le groupe de disponibilité.
  • Vous installez une mise à jour sur Configuration Manager. (Pas seulement les mises à jour qui s’appliquent à la base de données du site).

Utilisation de base de données non prise en charge

Configuration Manager prend uniquement en charge la base de données de site dans un groupe de disponibilité

Les bases de données suivantes ne sont pas prises en charge par Configuration Manager dans un groupe de disponibilité :

  • Base de données de création de rapports

  • Base de données WSUS

Base de données préexistante

Vous ne pouvez pas utiliser une base de données créée sur le réplica. Lorsque vous configurez un groupe de disponibilité, restaurez une copie d’une base de données Configuration Manager existante sur le réplica principal.

Erreurs d’installation dans ConfigMgrSetup.log

Lorsque vous exécutez Configuration Manager configuration pour déplacer une base de données de site vers un groupe de disponibilité, elle tente de traiter les rôles de base de données sur les réplicas secondaires du groupe de disponibilité. Le fichier ConfigMgrSetup.log affiche l’erreur suivante :

ERROR: SQL Server error: [25000][3906][Microsoft][SQL Server Native Client 11.0][SQL Server]Failed to update database "CM_AAA" because the database is read-only. Configuration Manager Setup 1/21/2016 4:54:59 PM 7344 (0x1CB0)

Ces erreurs sont sans risque d’être ignorées.

Extension du site

Si vous configurez la base de données de site pour qu’un site principal autonome utilise un groupe de disponibilité, vous ne pouvez pas développer le site pour inclure un site d’administration centrale. Si vous essayez ce processus, il échoue. Pour développer le site, supprimez temporairement la base de données du site principal du groupe de disponibilité.

Vous n’avez pas besoin d’apporter de modifications à la configuration lors de l’ajout d’un site secondaire.

Modifications apportées à la sauvegarde de site

Sauvegarder des fichiers de base de données

Lorsqu’une base de données de site utilise un groupe de disponibilité, exécutez la tâche de maintenance intégrée du serveur de site de sauvegarde pour sauvegarder les paramètres et fichiers Configuration Manager courants. N’utilisez pas les fichiers MDF ou LDF créés par cette sauvegarde. Au lieu de cela, effectuez des sauvegardes directes de ces fichiers de base de données à l’aide de SQL Server.

Vous pouvez toujours utiliser la sauvegarde SQL Server, mais vous ne pouvez pas la restaurer directement sur un cluster SQL Server Always On. Vous devez le restaurer sur un serveur autonome et le déplacer vers SQL Server Always On.

Journal des transactions

Définissez le mode de récupération de la base de données du site sur Complet. Cette configuration est requise pour une utilisation Configuration Manager dans un groupe de disponibilité. Planifiez la surveillance et la maintenance de la taille du journal des transactions de la base de données de site. Dans le mode de récupération complète, les transactions ne sont pas renforcées tant qu’il n’effectue pas une sauvegarde complète de la base de données ou du journal des transactions. Pour plus d’informations, consultez Sauvegarder et restaurer des bases de données SQL Server.

Modifications apportées à la récupération de site

Si au moins un nœud du groupe de disponibilité est toujours fonctionnel, utilisez l’option de récupération de site pour Ignorer la récupération de base de données (utilisez cette option si la base de données du site n’a pas été affectée).

Site Recovery peut recréer la base de données dans un groupe de disponibilité. Ce processus fonctionne avec l’amorçage manuel et automatique.

Conseil

Lorsque vous exécutez l’Assistant Installation/récupération, la page Nouvelle base de données de groupe de disponibilité s’applique uniquement aux configurations d’amorçage manuel. Avec l’amorçage automatique, il n’y a pas de sauvegarde de base de données partagée, de sorte que cette page de l’Assistant n’est pas affichée.

Pour plus d’informations, consultez Sauvegarde et récupération.

Modifications pour la création de rapports

Installer le point de service de création de rapports

Le point Reporting Services ne prend pas en charge l’utilisation du nom virtuel de l’écouteur du groupe de disponibilité. Il ne prend pas non plus en charge l’hébergement de sa base de données dans un groupe de disponibilité.

  • Par défaut, l’installation du point de Reporting Services définit le nom du serveur de base de données du site sur le nom virtuel spécifié en tant qu’écouteur. Modifiez ce paramètre pour spécifier un nom d’ordinateur et une instance d’un réplica dans le groupe de disponibilité.

  • Pour décharger les rapports et augmenter la disponibilité lorsqu’un nœud de réplica est hors connexion, envisagez d’installer des points Reporting Services supplémentaires sur chaque nœud de réplica. Configurez ensuite chaque point Reporting Services pour utiliser son propre nom d’ordinateur. Lorsque vous installez un point de service de création de rapports sur chaque réplica du groupe de disponibilité, les rapports peuvent toujours se connecter à un serveur de point de rapports actif.

Basculer le point Reporting Services utilisé par la console

  1. Dans la console Configuration Manager, accédez à l’espace de travail Surveillance, développez Rapports, puis sélectionnez le nœud Rapports.

  2. Dans le ruban, sélectionnez Options de rapport.

  3. Dans la boîte de dialogue Options de rapport, sélectionnez le point Reporting Services que vous souhaitez utiliser.

Prochaines étapes

Cet article décrit les prérequis, les limitations et les modifications apportées aux tâches courantes que Configuration Manager nécessite lorsque vous utilisez des groupes de disponibilité. Pour connaître les procédures de configuration et de configuration de votre site pour utiliser des groupes de disponibilité, consultez Configurer des groupes de disponibilité.