Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Berichtdetails
| Attribute | Waarde |
|---|---|
| Productnaam | SQL Server |
| Gebeurtenis-id | 18752 |
| Bron van gebeurtenis | MSSQLSERVER |
| Onderdeel | SQL Server-database-engine (databankmotor van SQL Server) |
| Symbolische naam | |
| Berichttekst | Slechts één logboeklezeragent of aan logboek gerelateerde procedure (sp_repldone, sp_replcmds en sp_replshowcmds) kan tegelijk verbinding maken met een database. Als u een logboekgerelateerde procedure hebt uitgevoerd, verwijdert u de verbinding waarvoor de procedure is uitgevoerd of voert u sp_replflush uit via die verbinding voordat u de Log Reader-agent start of een andere procedure uitvoert die betrekking heeft op logboeken. |
Explanation
Meer dan één huidige verbinding probeert een van de volgende uit te voeren: sp_repldone, sp_replcmds of sp_replshowcmds. De opgeslagen procedures sp_repldone (Transact-SQL) ensp_replcmds (Transact-SQL) zijn opgeslagen procedures die door de Log Reader Agent worden gebruikt om informatie over gerepliceerde transacties in een gepubliceerde database te vinden en bij te werken. De opgeslagen procedure sp_replshowcmds (Transact-SQL) wordt gebruikt om bepaalde soorten problemen met transactionele replicatie op te lossen.
Deze fout wordt onder de volgende omstandigheden gecreëerd:
Als de Log Reader Agent voor een gepubliceerde database draait en een tweede Log Reader Agent probeert te draaien tegen dezelfde database, wordt de fout geactiveerd voor de tweede agent en verschijnt deze in de agentgeschiedenis.
In een situatie waarin het lijkt alsof er meerdere agenten zijn, is het mogelijk dat een van hen het resultaat is van een weesproces.
Als de Log Reader Agent voor een gepubliceerde database wordt gestart en een gebruiker voert sp_repldone, sp_replcmds of sp_replshowcmds uit tegen dezelfde database, wordt de fout geactiveerd in de applicatie waar de opgeslagen procedure is uitgevoerd (zoals sqlcmd).
Als er geen Log Reader Agent draait voor een gepubliceerde database en een gebruiker voert sp_repldone, sp_replcmds of sp_replshowcmds uit en sluit vervolgens de verbinding waarover de procedure is uitgevoerd niet, wordt de fout geactiveerd wanneer de Log Reader Agent probeert verbinding te maken met de database.
Gebruikersactie
De volgende stappen kunnen je helpen het probleem op te lossen. Als een stap het mogelijk maakt dat de Log Reader Agent zonder fouten kan starten, is het niet nodig om de resterende stappen te voltooien.
Controleer de geschiedenis van de Log Reader-agent op andere fouten die aan deze fout kunnen bijdragen. Voor informatie over het bekijken van agentstatus en foutgegevens in Replication Monitor, zie Bekijk informatie en voer taken uit met Replication Monitor.
Controleer de output van sp_who (Transact-SQL) op specifieke procesidentificatienummers (SPID's) die verbonden zijn met de gepubliceerde database. Sluit alle verbindingen die mogelijk sp_repldone,sp_replcmds of sp_replshowcmds lopen.
Herstart de log reader agent. Voor meer informatie, zie Start en Stop een Replicatieagent (SQL Server Management Studio).
Herstart de SQL Server Agent-service (breng deze offline of online in een cluster) op de Distributor. Als er een mogelijkheid is dat een geplande taak sp_repldone, sp_replcmds of sp_replshowcmds heeft uitgevoerd vanuit een andere SQL Server-instantie, herstart dan ook de SQL Server Agent voor die instanties. Voor meer informatie, zie Start, Stop of Pauzeer de SQL Server Agent Service.
Voer sp_replflush (Transact-SQL) uit bij de uitgever in de publicatiedatabase en start vervolgens de Log Reader Agent opnieuw.
Als de fout blijft optreden, verhoog dan de logging van de agent en specificeer je een uitvoerbestand voor het logboek. Afhankelijk van de context van de fout kan dit de stappen voorafgaand aan de fout en/of aanvullende foutmeldingen opleveren.