我在 Windows Server 2008 R2 上运行了 MS SQL 2008。
一切都是在虚拟机上运行的全新安装。
我可以毫无问题地制作快照发布。但我无法制作事务发布,甚至在尝试配置订阅者之前就收到错误。以下是我做事的方式:
- 我配置了分布。(默认设置)
我启动新出版物向导。
- 事务发布
- 我选择“立即创建快照”
- 我配置了快照代理和日志读取器代理的安全设置(使用 Windows 帐户域管理员)
- 出版物创建成功,没有错误。
- “查看快照代理状态”报告没有错误 - 100%成功。
- 转到复制监视器,错误从这里开始 - 日志读取器代理错误 - “该进程无法在‘SERVERNAME’上执行‘sp_replcmds’...” [见图]
我做错了什么?或者我遗漏了什么?
答案1
来自BOL:
只有 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员才能执行 sp_replcmds。
那么,日志读取器代理以谁的身份运行?也就是说,它如何连接到发布者数据库?如果该用户没有 db_owner 或不是 sysadmin,您将会遇到失败。
答案2
如果订阅者数据库已从备份恢复到不同的实例,请检查域管理员用户是否处于孤立状态。
使用[订阅者] go exec sp_change_users_login'报告' go