SQL Server复制删除发布时遇到错误18752

这篇具有很好参考价值的文章主要介绍了SQL Server复制删除发布时遇到错误18752。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

朋友反馈他无法删除一台SQL Server数据库上的发布,具体情况为删除一个SQL Server Replication的发布时,遇到下面错误

TITLE: Microsoft SQL Server Management Studio
------------------------------

无法删除发布“REPL_ITSMS”。

------------------------------
ADDITIONAL INFORMATION:

执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------

Only one Log Reader Agent or log-related procedure (sp_repldone, sp_replcmds, and sp_replshowcmds) can connect to a database at a time. If you executed a log-related procedure, drop the connection with session ID 75 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.
Only one Log Reader Agent or log-related procedure (sp_repldone, sp_replcmds, and sp_replshowcmds) can connect to a database at a time. If you executed a log-related proceduredrop the connection with session ID 75 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.
Only one Log Reader Agent or log-related procedure (sp_repldone, sp_replcmds, and sp_replshowcmds) can connect to a database at a time. If you executed a log-related proceduredrop the connection with session ID 75 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.
Only one Log Reader Agent or log-related procedure (sp_repldone, sp_replcmds, and sp_replshowcmds) can connect to a database at a time. If you executed a log-related proceduredrop the connection with session ID 75 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.
Only one Log Reader Agent or log-related procedure (sp_repldone, sp_replcmds, and sp_replshowcmds) can connect to a database at a time. If you executed a log-related proceduredrop the connection with session ID 75 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.
在执行 'sp_droppublication' 的过程中出错。调用 'sp_replcmds' 失败,错误代码: '18752',返回代码: '1'
已将数据库上下文更改为 "itsms"。 (Microsoft SQL ServerError18752)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=15.00.4312&EvtSrc=MSSQLServer&EvtID=18752&LinkId=20476

好久没有维护SQL Server数据库了,感觉生疏了很多,检查后发现其实出现这个错误,是因为一次只能有一个日志读取器代理或日志相关过程(sp_repldone、sp_replcmds 和 sp_replshowcmds)连接到某个数据库。 如果执行了一个日志相关过程,那么在启动日志读取器代理或者执行另一个日志相关过程之前,请删除执行第一个过程时所用的连接,或者在该连接上执行 sp_replflush。

其实,官方文档[1]关于错误代码18752有详细的说明,只要详细阅读文档,就能知道如何解决这个错误了。这里特此记录一下。具体如下所示:

说明

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

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

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

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

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

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

用户操作

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

  • 检查日志读取器代理的历史记录,查找可能导致此错误的其他任何错误。 有关在复制监视器中查看代理状态和错误详细资料的信息,请参阅使用复制监视器查看信息和执行任务。

  • 检查 sp_who (Transact-SQL) 的输出,了解连接到已发布数据库的特定进程标识号 (SPID) 。 关闭所有可能运行 sp_repldone、 sp_replcmds或 sp_replshowcmds的连接。

  • 重新启动日志读取器代理。 有关详细信息,请参阅启动和停止复制代理 (SQL Server Management Studio).

  • 在分发服务器上重新启动 SQL Server 代理服务(使之在群集中脱机或联机)。 如果计划的作业有可能在任何其他 实例中执行了sp_repldone 、 sp_replcmds 或 sp_replshowcmds SQL Server ,则也要为那些实例重新启动 SQL Server 代理。 有关详细信息,请参阅启动、停止或暂停 SQL Server 代理服务。

  • sp_replflush (发布服务器上对发布数据库执行 Transact-SQL) ,然后重启日志读取器代理。

  • 如果错误继续出现,请增加代理的日志记录并指定日志的输出文件。 此操作可能会提供找到该错误和/或其他错误消息的步骤,具体取决于错误的上下文。

其实这里的解决方法也很简单,就是执行命令sp_replflush后,就可以正常的删除复制的发布了。

参考资料

[1]

1: https://learn.microsoft.com/zh-cn/sql/relational-databases/replication/mssql-eng018752?view=sql-server-ver16文章来源地址https://www.toymoban.com/news/detail-824584.html

到了这里,关于SQL Server复制删除发布时遇到错误18752的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Sql Server远程连接遇到的问题

    Sql Server远程连接遇到的问题

    如图: 原因:SqlServer和VS的安装顺序 这里是SqlServer和VS的安装顺序问题,VS会默认安装SQL Server 2016LocalDB,将这个卸载,配置管理器刷新一下就可以了。 解决方法:卸载SQL Server 2016LocalDB 卸载刷新后是这样的 PS:还有一点需要注意的是数据库的允许远程连接和MSSQLSERVER协议中的

    2024年02月04日
    浏览(11)
  • SQL Server下载 、卸载、重装遇到的问题

    SQL Server下载 、卸载、重装遇到的问题

    SQL Server下载: 一种直接从官网下载:然后直接安装即可(网上有详细教程) 另一种可以从其他网站上下载,我推荐:https://msdn.itellyou.cn/具体教程可参考https://blog.csdn.net/weixin_46585199/article/details/118073611   SQLServer 卸载: 点击win+r ,然后输入control进入控制面板:控制面板程序程

    2024年02月09日
    浏览(7)
  • nacos新建配置或修改配置时,遇到错误 “发布失败。请检查参数是否正确。”

    nacos新建配置或修改配置时,遇到错误 “发布失败。请检查参数是否正确。”

    在服务器用docker部署nacos时,遇到了这样的问题,其中弹窗提示内容如下: 提示内容为 nacos field ‘encrypted_data_key’ doesn’t have a default value 网上搜了一下这是nacos版本的问题,我使用的版本是nacos2.0.3。在nacos2.1.0以下的版本的MySQL数据库中的相应表是没有’encrypted_data_key’字段

    2024年02月16日
    浏览(10)
  • sql server删除历史数据

    sql server删除历史数据

    datediff函数 : datepart的取值可以是year,quarter,Month,dayofyear,Day,Week,Hour,minute,second,millisecond startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。 删除2023年以前的数据 运行结果如下:

    2024年02月10日
    浏览(12)
  • SQL Server删除重复数据的方法

    在SQL Server中,有多种方法可以删除重复数据。下面将介绍几种常用的方法,并提供相应的源代码示例。 方法一:使用DISTINCT和临时表 使用DISTINCT可以去除重复的行,我们可以将去重后的结果插入到一个临时表中,然后删除然后删除原始表中的数据,最后将临时表中的数

    2024年02月04日
    浏览(8)
  • 记录一下Java JDBC连接微软SQL Server遇到的那些坑

    记录一下Java JDBC连接微软SQL Server遇到的那些坑

    最近忙实习,宅在国内远程办公,然后呢我的西班牙老板又要求我用Java做某个管理系统。由于我的电脑和公司的远程电脑上都装的是SQL Server 2019,为了图方便,我就没有换数据库系统软件,顺便随手建了个库建了个表来测试一下。 表大概长这么一个样子:  插入了一些数据

    2024年02月04日
    浏览(11)
  • SQL Server中的不同数据删除方法

    在SQL Server中,有多种方法可以删除数据。无论是删除单个记录还是删除满足特定条件的多个记录,SQL Server提供了灵活且强大的功能来满足不同的需求。本文将介绍一些常用的SQL Server数据删除方法,并提供相应的源代码示例。 使用DELETE语句删除单个记录: DELETE语句用于删除

    2024年01月21日
    浏览(12)
  • Microsoft SQL Server 2008 R2(Microsoft SQL Server,错误: 2)

    Microsoft SQL Server 2008 R2(Microsoft SQL Server,错误: 2)

    打开SQL Server 2008 R2,连接数据库引擎,出现以下错误: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连

    2024年02月11日
    浏览(46)
  • Sql Server 登录错误:18456

    Sql Server 登录错误:18456

    Sql Server 安装后使用Sql Server身份验证登录。出现错误:18456。如下图所示: 1,使用Windows验证登录,进入登录名,右键点击sa,点击属性。 2,设置登录名是否启用,和是否允许链接到数据引擎。 3,右键数据库连接选择属性,设置安全性中的服务器什么验证。 4,点击左下角的

    2024年02月13日
    浏览(10)
  • 【Vue3】Vite打包发布错误若干问题解决方案,新手遇到的问题都在这里。

    【Vue3】Vite打包发布错误若干问题解决方案,新手遇到的问题都在这里。

    npm run build 在vite.config.js 中加入下面的代码 vite.config.js 完整代码

    2024年02月11日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包