MSSQL_ENG018752

消息详细信息

产品名称

SQL Server

产品版本

10.50

产品内部版本号

 

事件 ID

18752

事件源

MSSQLSERVER

组件

SQL Server 数据库引擎

符号名称

消息正文

一次只能有一个日志读取器代理或日志相关过程(sp_repldone、sp_replcmds 和 sp_replshowcmds)连接到某个数据库。如果执行了一个日志相关过程,那么在启动日志读取器代理或者执行另一个日志相关过程之前,请删除执行第一个过程时所用的连接,或者在该连接上执行 sp_replflush。

说明

有多个当前连接正在尝试执行以下任一日志相关过程:sp_repldonesp_replcmdssp_replshowcmds。存储过程 sp_repldone (Transact-SQL)sp_replcmds (Transact-SQL) 是日志读取器代理用来在已发布数据库中查找和更新已复制事务的相关信息的存储过程。存储过程 sp_replshowcmds (Transact-SQL) 用于解决事务性复制的特定类型的问题。

在以下情形下将引发此错误:

  • 如果某个已发布数据库的日志读取器代理正在运行,而另一个日志读取器代理试图在同一个数据库上运行,则对第二个代理引发此错误,并且此错误将出现在代理历史记录中。

    有时看起来像是有多个代理,则可能其中一个代理是执行孤立进程的结果。

  • 如果启动了已发布数据库的日志读取器代理,而用户在同一个数据库上执行 sp_repldonesp_replcmdssp_replshowcmds,则在执行存储过程的应用程序(如 sqlcmd)中将引发此错误。

  • 如果已发布数据库的日志读取器代理不在运行状态,而用户在执行 sp_repldonesp_replcmdssp_replshowcmds 后没有关闭用于执行此过程的连接,则当日志读取器代理尝试连接到数据库时将引发此错误。

用户操作

以下步骤可以帮助您解决这个问题。如果任何一个步骤能正确启动日志读取器代理,则没有必要完成剩余的步骤。