Résoudre des problèmes de configuration des groupes de disponibilité AlwaysOn (SQL Server)

Cette rubrique fournit des informations pour vous aider à résoudre les problèmes courants liés à la configuration d’instances de serveur pour Always On groupes de disponibilité. Les problèmes de configuration classiques incluent Always On groupes de disponibilité est désactivé, les comptes sont mal configurés, le point de terminaison de mise en miroir de bases de données n’existe pas, le point de terminaison est inaccessible (SQL Server l’erreur 1418), l’accès réseau n’existe pas et une commande de jointure de base de données échoue (SQL Server erreur 35250).

Notes

Vérifiez que vous respectez les prérequis Always On groupes de disponibilité. Pour plus d’informations, consultez Prérequis, restrictions et recommandations pour les groupes de disponibilité AlwaysOn (SQL Server).

Dans cette rubrique :

Section Description
Les groupes de disponibilité AlwaysOn ne sont pas activés Si une instance de SQL Server n’est pas activée pour Always On groupes de disponibilité, le instance ne prend pas en charge la création de groupes de disponibilité et ne peut pas héberger de réplicas de disponibilité.
Comptes (Accounts) Traite des conditions nécessaires à la configuration correcte des comptes sous lesquels SQL Server s'exécute.
Points de terminaison Explique comment diagnostiquer les problèmes liés au point de terminaison de mise en miroir de bases de données d'une instance de serveur.
Nom système Résume les solutions possibles pour spécifier le nom système d'une instance de serveur dans une URL de point de terminaison.
Accès réseau Traite de l'exigence selon laquelle chaque instance de serveur qui héberge un réplica de disponibilité doit être autorisée à accéder au port de chacune des autres instances de serveur par le biais du protocole TCP.
Accès au point de terminaison (erreur SQL Server 1418) Contient des informations sur ce message d'erreur SQL Server .
Échec de jointure de base de données (erreur SQL Server 35250) Décrit les causes possibles et la résolution d'une impossibilité de joindre des bases de données secondaires à un groupe de disponibilité du fait que la connexion au réplica principal n'est pas active.
Le routage en lecture seule ne fonctionne pas correctement
Tâches associées Contient une liste de rubriques orientées tâches dans SQL Server documentation en ligne 2014 qui sont particulièrement pertinentes pour résoudre les problèmes de configuration d’un groupe de disponibilité.
Contenu connexe Contient une liste de ressources pertinentes externes à la documentation en ligne de SQL Server .

Les groupes de disponibilité AlwaysOn ne sont pas activés

La fonctionnalité groupes de disponibilité Always On doit être activée sur chacune des instances de SQL Server 2014. Pour plus d’informations, consultez Activer et désactiver les groupes de disponibilité AlwaysOn (SQL Server).

Comptes

Les comptes sous lesquels SQL Server est en cours d'exécution doivent être configurés correctement.

  1. Les comptes possèdent-ils les autorisations appropriées ?

    1. Si les partenaires s'exécutent sous le même compte d'utilisateur de domaine, les noms d'accès d'utilisateur corrects existent automatiquement dans les deux bases de données master . Cela simplifie la configuration de sécurité de la base de données et est recommandé.

    2. Si deux instances de serveur s'exécutent sous des comptes différents, la connexion de chaque compte doit être créée dans la base de données master sur l'instance de serveur distante, et cette connexion doit disposer des autorisations CONNECT pour se connecter au point de terminaison de mise en miroir de bases de données de cette instance de serveur. Pour plus d’informations, consultezConfigurer des comptes de connexion pour la mise en miroir de bases de données ou les groupes de disponibilité AlwaysOn (SQL Server).

  2. Si SQL Server s’exécute en tant que compte intégré, tel que Système local, Service local ou Service réseau, ou un compte non-domaine, vous devez utiliser des certificats pour l’authentification du point de terminaison. Si vos comptes de service utilisent des comptes de domaine au sein du même domaine, vous pouvez choisir d'accorder l'accès CONNECT pour chaque compte de service sur tous les emplacements de réplica ou vous pouvez utiliser des certificats. Pour plus d’informations, consultez Utiliser des certificats pour un point de terminaison de mise en miroir de bases de données (Transact-SQL).

Points de terminaison

Les points de terminaison doivent être correctement configurés.

  1. Vérifiez que chaque instance de SQL Server devant héberger un réplica de disponibilité (chaque emplacement de réplica) dispose d’un point de terminaison de mise en miroir de bases de données. Pour déterminer si un point de terminaison de mise en miroir de bases de données existe sur une instance de serveur donnée, utilisez l’affichage catalogue sys.database_mirroring_endpoints. Pour plus d’informations, consultez Créer un point de terminaison de mise en miroir de bases de données pour l’authentification Windows (Transact-SQL) ou Autoriser un point de terminaison de mise en miroir de bases de données à utiliser des certificats pour les connexions sortantes (Transact-SQL).

  2. Vérifiez les numéros de ports.

    Pour identifier le port actuellement associé au point de terminaison de mise en miroir de bases de données d’une instance de serveur, utilisez l’instruction Transact-SQL suivante :

    SELECT type_desc, port FROM sys.tcp_endpoints;
    GO
    
  3. Pour Always On problèmes d’installation des groupes de disponibilité qui sont difficiles à expliquer, nous vous recommandons d’inspecter chaque serveur instance pour déterminer s’il écoute sur les ports appropriés. Pour plus d’informations sur la vérification de la disponibilité des ports, consultez MSSQLSERVER_1418.

  4. Vérifiez que les points de terminaison sont démarrés (STATE=STARTED). Sur chaque instance de serveur, utilisez l’instruction Transact-SQL suivante :

    SELECT state_desc FROM sys.database_mirroring_endpoints
    

    Pour plus d’informations sur la colonne state_desc, consultez sys.database_mirroring_endpoints (Transact-SQL).

    Pour démarrer un point de terminaison, utilisez l’instruction Transact-SQL suivante :

    ALTER ENDPOINT Endpoint_Mirroring 
    STATE = STARTED 
    AS TCP (LISTENER_PORT = <port_number>)
    FOR database_mirroring (ROLE = ALL);
    GO
    

    Pour plus d’informations, consultez ALTER ENDPOINT (Transact-SQL).

  5. Assurez-vous que la connexion de l'autre serveur possède l'autorisation CONNECT. Pour déterminer qui a une autorisation CONNECT sur un point de terminaison, pour chaque instance de serveur, utilisez l’instruction Transact-SQL suivante :

    SELECT 'Metadata Check';
    SELECT EP.name, SP.STATE, 
       CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id)) 
          AS GRANTOR, 
       SP.TYPE AS PERMISSION,
       CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id)) 
          AS GRANTEE 
       FROM sys.server_permissions SP , sys.endpoints EP
       WHERE SP.major_id = EP.endpoint_id
       ORDER BY Permission,grantor, grantee; 
    GO
    
    

Nom système

Comme nom système d'une instance de serveur dans une URL de point de terminaison, vous pouvez utiliser tout nom qui identifie sans ambiguïté le système. L'adresse de serveur peut être un nom système (si les systèmes sont dans le même domaine), un nom de domaine complet ou une adresse IP (de préférence statique). L'utilisation du nom de domaine complet garantit un fonctionnement correct. Pour plus d’informations, consultez Spécifier l’URL de point de terminaison pendant l’ajout ou la modification d’un réplica de disponibilité (SQL Server).

Accès réseau

Chaque instance de serveur qui héberge un réplica de disponibilité doit être autorisée à accéder au port de chacune de l'autre instance de serveur par le biais du protocole TCP. Ceci est d'autant plus important que les instances de serveur peuvent se trouver dans différents domaines, entre lesquels aucune relation d'approbation n'a été établie (domaines non approuvés).

Accès au point de terminaison (erreur SQL Server 1418)

Ce message SQL Server indique que l’adresse réseau du serveur spécifiée dans l’URL de point de terminaison n’est pas accessible ou n’existe pas, et suggère de vérifier le nom de l’adresse réseau et de réexécuter la commande. Pour plus d’informations, consultez MSSQLSERVER_1418.

Échec de jointure de base de données (erreur SQL Server 35250)

Cette section décrit les causes possibles et la résolution d'un problème de jointure de bases de données secondaires au groupe de disponibilité du fait que la connexion au réplica principal n'est pas active.

Résolution :

  1. Vérifiez le paramètre du pare-feu pour voir s'il permet la communication de port du point de terminaison entre les instances de serveur qui hébergent le réplica principal et le réplica secondaire (port 5022 par défaut).

  2. Vérifiez si le compte de service réseau dispose de l'autorisation de connexion au point de terminaison.

Le routage en lecture seule ne fonctionne pas correctement

Vérifiez les paramètres suivants des valeurs de configuration et corrigez-les si nécessaire.

Sur... Action Commentaires Lien
Case à cocher Réplica principal actuel Assurez-vous que l'écouteur du groupe de disponibilité est en ligne. Pour vérifier si l'écouteur en ligne :

SELECT * FROM sys.dm_tcp_listener_states;

Pour redémarrer un écouteur hors connexion :

ALTER AVAILABILITY GROUP myAG RESTART LISTENER 'myAG_Listener';
sys.dm_tcp_listener_states (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)
Case à cocher Réplica principal actuel Vérifiez que l'option READ_ONLY_ROUTING_LIST contient uniquement les instances de serveur qui hébergent un réplica secondaire accessible en lecture. Pour identifier les réplicas secondaires lisibles : sys.availability_replicas (colonne secondary_role_allow_connections_desc )

Pour consulter une liste de routage en lecture seule : sys.availability_read_only_routing_lists

Pour modifier une liste de routage en lecture seule : ALTER AVAILABILITY GROUP
sys.availability_replicas (Transact-SQL)

sys.availability_read_only_routing_lists (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)
Case à cocher Chaque réplica de read_only_routing_list Assurez-vous que le Pare-feu Windows ne bloque pas le port READ_ONLY_ROUTING_URL. - Configurer un pare-feu Windows pour accéder au moteur de base de données
Case à cocher Chaque réplica de read_only_routing_list Dans Gestionnaire de configuration SQL Server, vérifiez que :

La connectivité à distance SQL Server est activée.

TCP/IP est activé

Les adresses IP sont configurées correctement.
- Afficher ou modifier des propriétés de serveur (SQL Server)

Configurer un serveur pour écouter sur un port TCP spécifique (Gestionnaire de configuration SQL Server)
Case à cocher Chaque réplica de read_only_routing_list Vérifiez que le READ_ONLY_ROUTING_URL (TCP://system-address:port) contient le nom de domaine complet (FQDN) et le numéro de port corrects. - Calcul de l'URL de routage en lecture seule pour AlwaysOn

sys.availability_replicas (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)
Case à cocher Système client Vérifiez que le pilote client prend en charge le routage en lecture seule. - Connectivité client AlwaysOn (SQL Server)

Tâches associées

Contenu associé

Voir aussi

Sécurité du transport pour la mise en miroir de bases de données et les groupes de disponibilité AlwaysOn (SQL Server)Prérequis, restrictions et recommandations de configuration réseau client pour les groupes de disponibilité AlwaysOn (SQL Server)