MSSQLSERVER_21879MSSQLSERVER_21879

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

DettagliDetails

Nome prodottoProduct Name SQL ServerSQL Server
ID eventoEvent ID 2187921879
Origine eventoEvent Source MSSQLSERVERMSSQLSERVER
ComponenteComponent SQLEngineSQLEngine
Nome simbolicoSymbolic Name SQLErrorNum21879SQLErrorNum21879
Testo del messaggioMessage Text Impossibile eseguire una query nel server reindirizzato '%s' per il server di pubblicazione originale '%s' e il server di pubblicazione '%s' per determinare il nome del server remoto; errore %d, messaggio di errore '%s.'Unable to query the redirected server '%s' for original publisher '%s' and publisher database '%s' to determine the name of the remote server; Error %d, Error message '%s'.

SpiegazioneExplanation

sp_validate_redirected_publisher usa un server collegato temporaneo creato per connettersi al server di pubblicazione reindirizzato per individuare il nome del server remoto.sp_validate_redirected_publisher uses a temporary linked server that it creates to connect to the redirected publisher in order to discover the name of the remote server. L'errore 21879 viene restituito in caso di errore della query del server collegato.Error 21879 is returned when the linked server query fails. La chiamata per richiedere il nome del server remoto è in genere il primo utilizzo del server collegato temporaneo, pertanto, se ci sono problemi di connettività, è probabile che si presentino prima con questa chiamata.The call to request the remote server name is typically the first use of the temporary linked server, so if there are connectivity problems they are likely to appear first with this call. Questa chiamata remota esegue semplicemente select @@servername sul server remoto.This remote call simply executes select @@servername at the remote server.

Il server collegato usato per eseguire la query sul server di pubblicazione reindirizzato usa la modalità di sicurezza, l'account di accesso e la password forniti quando viene richiamato sp_adddistpublisher per il server di pubblicazione originale.The linked server used to query the redirected publisher uses the security mode, login, and password supplied when sp_adddistpublisher was called for the original publisher.

  • Se l'autenticazione SQL ServerSQL Server è stata utilizzata (modalità di sicurezza 0), l'account di accesso e password specificati vengono utilizzati per connettersi al server remoto.If SQL ServerSQL Server authentication was used (security mode 0) then the login and password specified are used to connect to the remote server.

  • Se è stata utilizzata l'autenticazione di Windows (modalità di sicurezza 1), viene utilizzata una connessione trusted per la connessione.If Windows authentication was used (security mode 1) a trusted connection is used for the connection.

    • Se sp_validate_redirected_publisher viene chiamato in modo esplicito da un utente, l'account di accesso di Windows con cui è in esecuzione l'utente viene usato per la connessione.If sp_validate_redirected_publisher is called explicitly by a user, the Windows login that the user is running under is used for the connection.

    • Se il server di pubblicazione sp_validate_redirected_ viene chiamato da un agente di replica di sp_get_redirected_publisher, viene usato l'account di accesso di Windows associato all'agente.If sp_validate_redirected_publisher is called by a replication agent from sp_get_redirected_publisher, the Windows login associated with the agent is used.

L'errore 21879 può indicare che sp_validate_redirected_publisher è stato chiamato usando un account di accesso non conosciuto sul server di pubblicazione di destinazione reindirizzato.Error 21879 can indicate that sp_validate_redirected_publisher was called using a login that is not known at the redirected target publisher.

Azione dell'utenteUser Action

Assicurarsi che l'account di accesso dell'autenticazione SQL ServerSQL Server o l'account di accesso di autenticazione di Windows sia valido su tutte le repliche del gruppo di disponibilità e disponga di autorizzazioni sufficienti per accedere alle tabelle di metadati delle sottoscrizioni (syssubscriptions e sysmergesubscriptions) nel database del server di pubblicazione.Make certain that the SQL ServerSQL Server authentication login or the Windows authentication login is valid at all of the availability group replicas and has sufficient authorization to access the subscription metadata tables (syssubscriptions and sysmergesubscriptions) in the publisher database.

È opportuno prendere alcune precauzioni quando l'errore 21879 viene restituito da una chiamata all'oggetto sp_get_redirected_publisher iniziato da un agente di replica in esecuzione su un nodo diverso dal database di distribuzione; ad esempio, un agente di merge in esecuzione su un Sottoscrittore.There are special considerations when error 21879 is returned from a call to sp_get_redirected_publisher that is initiated by a replication agent running on a node other that the distributor; such as a merge agent running at a subscriber. Se l'autenticazione di Windows viene utilizzata per la connessione al server di pubblicazione reindirizzato, SQL ServerSQL Server deve essere configurato per l'autenticazione Kerberos per stabilire la corretta connessione.If Windows authentication is used for the connection to the redirected publisher, SQL ServerSQL Server must be configured for Kerberos authentication for the connection to be successfully established. Quando viene utilizzata l'autenticazione di Windows e SQL ServerSQL Server non è configurato per l'autenticazione Kerberos, l'errore 18456 che indica il mancato accesso 'NT AUTHORITY\ANONYMOUS LOGON' viene ricevuto da un agente di merge in esecuzione su un sottoscrittore.When Windows authentication is used and SQL ServerSQL Server is not configured for Kerberos authentication, error 18456 indicating that the 'NT AUTHORITY\ANONYMOUS LOGON' login failed, is received by a merge agent running at a subscriber. Vi sono tre possibili modi di risoluzione di questo problema:There are three possible ways to address this issue:

  • Configurare SQL ServerSQL Server per l'autenticazione Kerberos.Configure SQL ServerSQL Server for Kerberos authentication. Vedere Autenticazione Kerberos e SQL Server nella documentazione online di SQL ServerSQL Server.See Kerberos Authentication and SQL Server in SQL ServerSQL Server Books Online.

  • Usare sp_changedistpublisher per modificare la modalità di sicurezza associata al server di pubblicazione originale in MSdistpublishers, nonché per specificare un account di accesso e una password da usare per la connessione.Use sp_changedistpublisher to change the security mode associated with the original publisher in MSdistpublishers, as well as to specify a login and password to use for the connection.

  • Specificare il parametro della riga di comando BypassPublisherValidation sulla riga di comando dell'agente di merge per ignorare la convalida quando sp_get_redirected_publisher viene chiamato sul database di distribuzione.Specify the command line parameter BypassPublisherValidation on the merge agent command line to bypass validation when sp_get_redirected_publisher is called at the distributor.