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.
Les comptes possèdent-ils les autorisations appropriées ?
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é.
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).
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).
[Haut de la page]
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 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).
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
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.
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).
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
[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.
[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 :
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).
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 |
---|---|---|---|---|
Réplica principal actuel |
Assurez-vous que l'écouteur du groupe de disponibilité est en ligne. |
Pour vérifier si l'écouteur en ligne :
Pour redémarrer un écouteur hors connexion :
|
||
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. |
|
sys.availability_replicas (Transact-SQL) |
|
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 |
|
Chaque réplica de read_only_routing_list |
Dans le gestionnaire de configuration de SQL Server, vérifiez que :
|
— |
Afficher ou modifier des propriétés de serveur Configurer un serveur pour écouter un port TCP spécifique (Gestionnaire de configuration SQL Server) |
|
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 |
|
Système client |
Vérifiez que le pilote client prend en charge le routage en lecture seule. |
— |
Haut
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)
Résoudre une opération d'ajout de fichier ayant échoué (groupes de disponibilité AlwaysOn)
[Haut de la page]
Contenu connexe
Afficher les événements et journaux pour un cluster de basculement
Applets de commande de cluster de basculement Get-ClusterLog
Blog de l'équipe de SQL Server AlwaysOn : Blog officiel de l'équipe de SQL Server AlwaysOn
[Haut de la page]