Partage via


MSSQLSERVER_21879

S’applique à : SQL Server

Détails

Attribut Valeur
Nom du produit SQL Server
ID de l’événement 21879
Source de l’événement MSSQLSERVER
Composant SQLEngine
Nom symbolique SQLErrorNum21879
Texte du message Impossible d'interroger le serveur redirigé '%s' pour le serveur de publication d'origine '%s' et la base de données du serveur de publication '%s' pour déterminer le nom du serveur distant ; erreur %d, message d'erreur '%s'.

Explication

sp_validate_redirected_publisher utilise un serveur lié temporaire créé pour se connecter au serveur de publication redirigé afin de découvrir le nom du serveur distant. L'erreur 21879 est retournée lorsque la requête de serveur lié échoue. L'appel pour demander le nom du serveur distant est généralement la première utilisation qui est faite du serveur lié temporaire, donc si des problèmes de connectivité existent, ils sont susceptibles d'apparaître d'abord lors de cet appel. Cet appel distant s’exécute simplement en sélectionnant @@servername sur le serveur distant.

Le serveur lié utilisé pour interroger le serveur de publication redirigé utilise le mode de sécurité, le nom de connexion et le mot de passe fournis quand sp_adddistpublisher a été appelé pour le serveur de publication d’origine.

  • Si l’authentification SQL Server a été utilisée (mode de sécurité 0), la connexion et le mot de passe spécifiés sont utilisés pour se connecter au serveur distant.

  • Si l'authentification Windows a été utilisée (mode de sécurité 1) une connexion approuvée est utilisée pour la connexion.

    • Si sp_validate_redirected_publisherest appelé explicitement par un utilisateur, la connexion Windows sous laquelle l’utilisateur s’exécute est utilisée pour la connexion.

    • Si sp_validate_redirected_publisher est appelé par un agent de réplication à partir de sp_get_redirected_publisher, la connexion Windows associée à l’agent est utilisée.

L’erreur 21879 peut indiquer que sp_validate_redirected_publisher a été appelé à l’aide d’une connexion qui n’est pas connue sur le serveur de publication cible redirigé.

Action de l’utilisateur

Assurez-vous que la connexion d’authentification SQL Server ou la connexion Authentification Windows est valide à tous les réplicas du groupe de disponibilité et dispose d’une autorisation suffisante pour accéder aux tables de métadonnées d’abonnement (syssubscriptions et sysmergesubscriptions) dans la base de données de l’éditeur.

Il existe des considérations spéciales quand l’erreur 21879 est retournée à partir d’un appel à sp_get_redirected_publisher initié par un agent de réplication s’exécutant sur un nœud autre que le serveur de distribution ; par exemple, un agent de fusion s’exécutant sur un abonné. Si Authentification Windows est utilisé pour la connexion au serveur de publication redirigé, SQL Server doit être configuré pour que l’authentification Kerberos soit établie. Lorsque Authentification Windows est utilisé et que SQL Server n’est pas configuré pour l’authentification Kerberos, l’erreur 18456 indiquant que la connexion « NT AUTHORITY\ANONYMOUS LOGON » a échoué, est reçue par un agent de fusion s’exécutant sur un abonné. Il existe trois moyens possibles de résoudre ce problème :

  • Configurez SQL Server pour l’authentification Kerberos. Consultez l’authentification Kerberos et SQL Server dans la documentation en ligne de SQL Server.

  • Utilisez sp_changedistpublisher pour changer le mode de sécurité associé au serveur de publication d’origine dans MSdistpublishers, ainsi que pour spécifier un nom de connexion et un mot de passe à utiliser pour la connexion.

  • Spécifiez le paramètre de ligne de commande BypassPublisherValidation sur la ligne de commande de l’agent de fusion pour ignorer la validation quand sp_get_redirected_publisher est appelé sur le serveur de distribution.