天天看点

SqlServer 无法为可更新的订阅设置发布服务器登录名 sp_link_publication

没有截图:

创建可更新订阅,正常创建了发布,在订阅端创建订阅,最后一步提示完成,却出现了警告:

无法为可更新的订阅设置发布服务器登录名。可能需要使用 sp_link_publication 直接在订阅服务器计算机上设置它。

突然想起来这个发布和订阅的数据库都是其他库还原过来的,应该是账号问题:

在发布数据库和订阅数据库都执行:

发现警告中提示的数据库用户(repllinkproxy)是孤立的,也就是没有关联到本地的登录账户(repllinkproxy)

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

还有一种方法:

在创建订阅的最后一步,使用现有的连接服务器名称作为连接,也可能有上面的错误提示!

解决方法是在订阅服务器中执行以下脚本设置连接安全信息:

若出现以下错误:

 链接服务器"DB"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "该事务管理器已经禁止了它对远程/网络事务的支持。"。

消息 7391,级别 16,状态 2,第 1 行

无法执行该操作,因为链接服务器 "DB" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务。

解决方法是:右键服务器链接,在服务器选项中,把 “为RPC启用针对分布式事务的升级” 改为 “false”,再重新执行上面的语句。或者sql脚本执行