MSSQL_ENG018752MSSQL_ENG018752

Dettagli messaggioMessage Details

Nome prodottoProduct Name SQL ServerSQL Server
ID eventoEvent ID 1875218752
Origine eventoEvent Source MSSQLSERVERMSSQLSERVER
ComponenteComponent Motore di database di SQL ServerSQL Server Database Engine
Nome simbolicoSymbolic Name
Testo del messaggioMessage Text A un database può connettersi un solo agente di lettura log o una sola procedura correlata ai log (sp_repldone, sp_replcmds e sp_replshowcmds) alla volta.Only one Log Reader Agent or log-related procedure (sp_repldone, sp_replcmds, and sp_replshowcmds) can connect to a database at a time. Se è stata eseguita una procedura correlata ai log, eliminare la connessione utilizzata per eseguire la procedura oppure eseguire sp_replflush tramite tale connessione prima di avviare l'agente di lettura log o di eseguire un'altra procedura relativa ai log.If you executed a log-related procedure, drop the connection over which the procedure was executed or execute sp_replflush over that connection before starting the Log Reader Agent or executing another log-related procedure.

SpiegazioneExplanation

È in corso da parte di più connessioni il tentativo di eseguire una delle procedure seguenti: sp_repldone, sp_replcmdso sp_replshowcmds.More than one current connection is trying to execute any of the following: sp_repldone, sp_replcmds, or sp_replshowcmds. Le stored procedure sp_repldone (Transact-SQL) e sp_replcmds (Transact-SQL) vengono usate dall'agente di lettura log per trovare e aggiornare le informazioni sulle transazioni replicate in un database pubblicato.The stored procedures sp_repldone (Transact-SQL) and sp_replcmds (Transact-SQL) are stored procedures used by the Log Reader Agent to locate and update information about replicated transactions in a published database. La stored procedure sp_replshowcmds (Transact-SQL) viene usata per la risoluzione di alcuni tipi di problemi relativi alla replica transazionale.The stored procedure sp_replshowcmds (Transact-SQL) is used to troubleshoot certain types of issues with transactional replication.

Questo errore viene generato nelle circostanze seguenti:This error is raised in the following circumstances:

  • Se l'agente di lettura log di un database pubblicato è in esecuzione e un secondo agente di lettura log tenta l'esecuzione sullo stesso database, per il secondo agente viene generato l'errore, che appare nella cronologia dell'agente.If the Log Reader Agent for a published database is running and a second Log Reader Agent attempts to run against the same database, the error is raised for the second agent and appears in the agent history.

    In una situazione in cui compaiono più agenti, è possibile che uno di loro sia il risultato di un processo orfano.In a situation where it appears there are multiple agents, it is possible that one of them is the result of an orphaned process.

  • Se l'agente di lettura log di un database pubblicato viene avviato e un utente esegue sp_repldone, sp_replcmdso sp_replshowcmds sullo stesso database, viene generato l'errore nell'applicazione in cui è stata eseguita la stored procedure (ad esempio sqlcmd).If the Log Reader Agent for a published database is started and a user executes sp_repldone, sp_replcmds, or sp_replshowcmds against the same database, the error is raised in the application where the stored procedure was executed (such as sqlcmd).

  • Se l'agente di lettura log di un database pubblicato viene avviato e un utente esegue sp_repldone, sp_replcmdso sp_replshowcmds e non chiude la connessione su cui è stata eseguita la procedura, quando l'agente di lettura log tenta di connettersi al database viene generato l'errore.If no Log Reader Agent is running for a published database and a user executes sp_repldone, sp_replcmds, or sp_replshowcmds and then does not close the connection over which the procedure was executed, the error is raised when the Log Reader Agent attempts to connect to the database.

Azione dell'utenteUser Action

I passaggi seguenti possono contribuire alla risoluzione del problema.The following steps can help you to troubleshoot the problem. Se uno dei passaggi consente l'avvio senza errori dell'agente di lettura log, non è necessario completare i passaggi rimanenti.If any step allows the Log Reader Agent to start without errors, there is no need to complete the remaining steps.

  • Verificare nella cronologia dell'agente di lettura log la presenza di eventuali altri errori che potrebbero contribuire a questo errore.Check the history of the Log Reader agent for any other errors that could be contributing to this error. Per informazioni sui dettagli di stato e di errore dell'agente di visualizzazione in Monitoraggio replica, vedere Visualizzare le informazioni ed eseguire attività relative agli agenti associati a una pubblicazione (Monitoraggio replica).For information about viewing agent status and error details in Replication Monitor, see View Information and Perform Tasks for the Agents Associated With a Publication (Replication Monitor).

  • Verificare nell'output di sp_who (Transact-SQL) la presenza di numeri di identificazione di processo (SPID) connessi al database pubblicato.Check the output of sp_who (Transact-SQL) for specific process identification numbers (SPIDs) that are connected to the published database. Chiudere le connessioni che potrebbero aver eseguito sp_repldone, sp_replcmdso sp_replshowcmds.Close any connections that might have run sp_repldone, sp_replcmds, or sp_replshowcmds.

  • Riavviare l'agente di lettura log.Restart the Log Reader Agent. Per altre informazioni, vedere Avviare e arrestare un agente di replica (SQL Server Management Studio).For more information, see Start and Stop a Replication Agent (SQL Server Management Studio).

  • Riavviare il servizio SQL ServerSQL Server Agent (metterlo offline oppure online in un cluster) sul server di distribuzione.Restart the SQL ServerSQL Server Agent service (bring it offline or online in a cluster) on the Distributor. Se vi è una possibilità che un processo pianificato abbia eseguito sp_repldone, sp_replcmdso sp_replshowcmds da altre istanze di SQL ServerSQL Server , riavviare l' SQL ServerSQL Server Agent anche per queste istanze.If there is possibility that a scheduled job could have executed sp_repldone, sp_replcmds, or sp_replshowcmds from any other SQL ServerSQL Server instance, restart the SQL ServerSQL Server Agent for those instances as well. Per altre informazioni, vedere Avviare, arrestare o sospendere il servizio SQL Server Agent.For more information, see Start, Stop, or Pause the SQL Server Agent Service.

  • Eseguire sp_replflush (Transact-SQL) nel server di pubblicazione sul database di pubblicazione e quindi riavviare l'agente di lettura log.Execute sp_replflush (Transact-SQL) at the Publisher on the publication database, and then restart the Log Reader Agent.

  • Se l'errore continua a verificarsi, aumentare il livello di dettaglio per la registrazione delle operazioni dell'agente e specificare un file di output per il log.If the error continues to occur, increase the logging of the agent and specify an output file for the log. A seconda del contesto dell'errore, in questo modo si potrebbero ottenere ulteriori informazioni sui passaggi che conducono all'errore e/o messaggi di errore aggiuntivi.Depending on the context of the error, this could provide the steps leading up to the error and/or additional error messages.

Vedere ancheSee Also

Guida di riferimento a errori ed eventi (replica) Errors and Events Reference (Replication)
Agente lettura log repliche Replication Log Reader Agent