ITPub博客

首页 > > > 事务复制:进程无法在“XX计算机名”上执行“sp_replcmds”。

事务复制:进程无法在“XX计算机名”上执行“sp_replcmds”。

作者:飘絮絮絮丶 时间:2023-03-21 10:24:13 0 删除 编辑

最近闲来无事,决定研究下事务复制

配置完事务复制,启动SQL serverAgent 后,查看同步状态,发现提示错误

错误消息:

  • 进程无法在“XX计算机名”上执行“sp_replcmds”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20011)
    获取帮助: help/MSSQL_REPL20011
  • 无法作为数据库主体执行,因为主体 "dbo" 不存在、无法模拟这种类型的主体,或您没有所需的权限。 (源: MSSQLServer,错误号: 15517)
    获取帮助: help/15517
  • 进程无法在“XX计算机名”上执行“sp_replcmds”。 (源: MSSQL_REPL,错误号: MSSQL_REPL22037)
    获取帮助: help/MSSQL_REPL22037

排查原因:

运行以下语句,查看每个数据库实例是否都有所有者

select name, suser_sname(owner_sid)from sys.databases;

解决办法:

方法一:(亲测有效)

右键单击了数据库->属性 ,并在“常规”选项卡中验证了所有者设置正确。 但是,在“文件”选项卡中,未设置所有者。一旦设置好数据库拥有者,复制运行没有问题。

方法二:

ALTER AUTHORIZATION ON DATABASE::[<dbname>] TO [sa]

例:

alter authorization on database::[test2] to [node3\administrator]

方法三:

USE [<dbname>] GO sp_changedbowner 'sa'


参考大神链接:

SQL Server 2008 复制 遇到: 进程无法执行 'sp_replcmds' 命令

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3142854/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-09-09

  • 博文量
    2646
  • 访问量
    42219