Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique fournit des informations pour vous aider à résoudre les problèmes classiques liés à la configuration des instances de serveur pour les groupes de disponibilité Always On. Les problèmes de configuration classiques incluent les groupes de disponibilité Always On désactivés, les comptes sont configurés de manière incorrecte, 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 une commande de base de données de jointure échoue (erreur SQL Server 35250).
Remarque
Vérifiez que vous respectez les conditions préalables requises pour les groupes de disponibilité Always On. Pour plus d’informations, consultez Conditions préalables, restrictions et recommandations pour les groupes de disponibilité AlwaysOn (SQL Server).
Dans cette rubrique :
| Section | Descriptif |
|---|---|
| Les groupes de disponibilité AlwaysOn ne sont pas activés | Si une instance de SQL Server n’est pas activée pour les groupes de disponibilité Always On, l’instance ne prend pas en charge la création du groupe de disponibilité et ne peut pas héberger de réplicas 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 du système | Résume les alternatives permettant de 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’un échec de jointure de bases de données secondaires à un groupe de disponibilité, car la connexion au réplica principal n’est pas active. |
| Le routage en lecture seule ne fonctionne pas correctement | |
| Tâches associées | Contient la liste des rubriques orientées tâches dans la documentation en ligne de SQL Server 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 des groupes de disponibilité AlwaysOn (SQL Server).
Comptes
Les comptes sous lesquels SQL Server est en cours d'exécution doivent être configurés correctement.
Les comptes possèdent-ils les autorisations appropriées ?
Si les partenaires s'exécutent sous le même compte utilisateur de domaine, les connexions utilisateur correctes 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ée.
Si deux instances de serveur s’exécutent en tant que comptes différents, la connexion à chaque compte doit être créée en maître sur l’instance de serveur distant, 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).
Si SQL Server s’exécute en tant que compte intégré, tel que le système local, le service local ou le service réseau ou un compte non-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, consultezUtiliser 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.
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 la vue 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).
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; GOPour les problèmes de configuration des groupes de disponibilité Always On difficiles à expliquer, nous vous recommandons d’inspecter chaque instance de serveur 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.
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_endpointsPour 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); GOPour plus d’informations, consultez ALTER ENDPOINT (Transact-SQL).
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 du système
Pour le nom système d’une instance de serveur dans une URL de point de terminaison, vous pouvez utiliser n’importe quel nom qui identifie sans ambiguïté le système. L’adresse du serveur peut être un nom système (si les systèmes se trouvent dans le même domaine), un nom de domaine complet ou une adresse IP (de préférence, une adresse IP statique). L’utilisation du nom de domaine pleinement qualifié est garantie de fonctionner. 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. Cela est particulièrement important si les instances de serveur se trouvent dans des domaines différents qui ne font pas confiance les uns aux autres (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 du point de terminaison ne peut pas être atteinte ou n’existe pas, et suggère de vérifier le nom de l’adresse réseau et de réémettre 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 échec de jointure de bases de données secondaires au groupe de disponibilité, car la connexion au réplica principal n’est pas active.
Résolution :
Vérifiez le paramètre de pare-feu pour voir si les ports de communication entre les instances de serveur permettant la communication entre le réplica principal et le réplica secondaire (port 5022 par défaut).
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 de valeurs de configuration suivants et corrigez-les si nécessaire.
| Sur... | Action | Commentaires | Lien | |
|---|---|---|---|---|
|
Réplique principale actuelle | Assurez-vous que l'écouteur du groupe de disponibilité est en ligne. |
Pour vérifier si l’écouteur est 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) MODIFIER GROUPE DE DISPONIBILITÉ (Transact-SQL) |
|
Réplique primaire actuelle | Assurez-vous que le READ_ONLY_ROUTING_LIST ne contienne que des instances de serveur hébergeant une réplique secondaire lisible. |
Pour identifier les réplicas secondaires lisibles : sys.availability_replicas (colonne secondary_role_allow_connections_desc ) Pour afficher 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.listes_de_routage_en_lecture_seule_de_disponibilité (Transact-SQL) MODIFIER GROUPE DE DISPONIBILITÉ (Transact-SQL) |
|
Chaque réplique dans le 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 |
|
Chaque réplica dans la liste_de_routage_en_lecture_seule | Dans le 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 les propriétés du serveur (SQL Server) Configurer un serveur pour écouter un port TCP spécifique (Gestionnaire de configuration SQL Server) |
|
Chaque réplica dans le 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 read_only_routing_url pour AlwaysOn sys.availability_replicas (Transact-SQL) MODIFIER GROUPE DE DISPONIBILITÉ (Transact-SQL) |
|
Système client | Vérifiez que le pilote client prend en charge le routage en lecture seule. | - | Connectivité du client AlwaysOn (SQL Server) |
Tâches associées
Création et configuration des groupes de disponibilité (SQL Server)
Préparer manuellement une base de données secondaire pour un groupe de disponibilité (SQL Server)
Contenu associé
Afficher les événements et journaux pour un cluster de basculement
Applets de commande de cluster de basculement Get-ClusterLog
Blog de l’équipe SQL Server AlwaysOn : Blog officiel de l’équipe SQL Server AlwaysOn
Voir aussi
Sécurité du transport pour la mise en miroir de bases de données et les groupes de disponibilité AlwaysOn (SQL Server)Conditions préalables à la configuration réseau du client, restrictions et recommandations pour les groupes de disponibilité AlwaysOn (SQL Server)