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 de configuration des instances de serveur pour Groupes de disponibilité AlwaysOn. Problèmes courants de configuration : Groupes de disponibilité AlwaysOn est désactivé, les comptes sont incorrectement configurés, le point de terminaison de mise en miroir de bases de données n'existe pas, le point de terminaison est inaccessible (erreur SQL Server 1418), l'accès réseau n'existe pas et échec d'une commande de jointure de base de données (erreur SQL Server 35250).

[!REMARQUE]

Assurez-vous que les conditions préalables requises pour Groupes de disponibilité AlwaysOn sont réunies. Pour plus d'informations, consultez Conditions préalables requises, 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 Groupes de disponibilité AlwaysOn, elle ne prend pas en charge la création de groupe de disponibilité et ne peut héberger aucun réplica de disponibilité.

Comptes

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âche dans la documentation en ligne de SQL Server 2012 qui sont particulièrement appropriée au dépannage d'une configuration de 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é AlwaysOn doit être activée sur chacune des instances de SQL Server 2012. 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 de connexion 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, consultez Configurer 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 comme compte qui n'appartient pas au domaine, vous devez utiliser des certificats pour l'authentification de 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).

Icône de flèche utilisée avec le lien Retour en haut[Haut de la page]

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 les problèmes de configuration Groupes de disponibilité AlwaysOn qu'il est difficile d'expliquer, nous vous conseillons d'examiner chaque instance de serveur pour déterminer si elle est à l'é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 possède une autorisation CONNECT pour un point de terminaison, sur 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
    

Icône de flèche utilisée avec le lien Retour en haut[Haut de la page]

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 lors de l'ajout ou lors de 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 ne peut pas être atteinte ou n'existe pas, et il suggère de vérifier le nom de l'adresse réseau puis de réexécuter la commande. Pour plus d'informations, consultez MSSQLSERVER_1418.

Icône de flèche utilisée avec le lien Retour en haut[Haut de la page]

É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

Link

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 des réplicas secondaires accessibles en lecture :

    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 le gestionnaire de configuration de 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

Configurer un serveur pour écouter 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 correct (FQDN) et le numéro de port.

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)

Icône de flèche utilisée avec le lien Retour en hautHaut

Tâches associées

Icône de flèche utilisée avec le lien Retour en haut[Haut de la page]

Contenu connexe

Icône de flèche utilisée avec le lien Retour en haut[Haut de la page]

Voir aussi

Concepts

Sécurité du transport de la mise en miroir de bases de données et des groupes de disponibilité AlwaysOn (SQL Server)

Conditions préalables requises, restrictions et recommandations pour les groupes de disponibilité AlwaysOn (SQL Server)

Autres ressources

Configuration du réseau client