SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)相关的知识,希望对你有一定的参考价值。

原文:SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)

在可更新订阅中,在订阅设置更新方法,将 “排队更新” 设置为 “立即更新”

技术分享图片


接着在订阅数据库更新表数据,出错:

消息 21079,级别 16,状态 1,过程 sp_getpublisherlink,第 52 行
没有发布服务器的 RPC 安全信息,或该信息无效。请用 sp_link_publication 指定该信息。
消息 20512,级别 16,状态 1,过程 sp_MSreplraiserror,第 8 行
可更新的订阅: 正在回滚事务。
消息 3609,级别 16,状态 1,第 1 行
事务在触发器中结束。批处理已中止。


查看该存储过程 sp_getpublisherlink ,确认抛出错误的语句 raiserror(21079, 16, 1)raiserror(21079, 16, 3),其中主要为表 MSsubscription_properties 没有求分发代理程序的参数信息行。 (可以直接查表MSsubscription_properties 或执行存储过程 sp_helpsubscription_properties 查看有没有信息)


按提示,执行存储过程 sp_link_publication 添加相关信息:(参考sp_link_publication

--设置在连接到发布服务器时立即更新订阅的同步触发器所使用的配置和安全信息
sp_link_publication
  @publisher = 'publisher' 
, @publisher_db = 'publisher_db' 
, @publication = 'publication' 
, @security_mode =  2 --2:使用现有的通过 sp_link_publication 创建的用户定义的链接服务器登录名


执行失败,错误信息如下:

链接服务器"publisher"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "该伙伴事务管理器已经禁止了它对远程/网络事务的支持。"。
消息 7391,级别 16,状态 2,第 1 行
无法执行该操作,因为链接服务器 "publisher" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务。


没有启用分布式事务,启用就是了!嘿嘿!~以下在每台服务器都做相同操作:

1. 启用MSDTC相关服务器

控制面板 ——》管理工具——》服务:

Distributed Transaction Coordinator

Remote Procedure Call(RPC)

Security Accounts Manager

 

 

2.启用本地协调器

开始——》管理工具——》服务组件(或者运行:dcomcnfg.exe

 

控制台根节点——》组件服务——》计算机——》我的电脑(右键属性)

点击“MSDTC”选项,确认勾选使用本地协调器

 技术分享图片

控制台根节点——》组件服务——》计算机——》我的电脑

(继续点击)Distributed Transaction Coordinator——》本地DTC(右键属性)

 技术分享图片

3. MSDTC使用135端口

确认开启135端口或关闭防火墙或用services.msc打开服务启动TCP/IP NetBios Helper服务

 

重启服务Distributed Transaction Coordinator并把延迟启动改为自动

 


此时在执行,完成后即可使用分布式事务,在订阅服务器可同步提交到发布服务器。

--设置在连接到发布服务器时立即更新订阅的同步触发器所使用的配置和安全信息
sp_link_publication
  @publisher = 'publisher' 
, @publisher_db = 'publisher_db' 
, @publication = 'publication' 
, @security_mode =  2 --2:使用现有的通过 sp_link_publication 创建的用户定义的链接服务器登录名



更多参考:

sp_link_publication (Transact-SQL)

管理分布式事务




























以上是关于SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2005 和 Windows 事件日志

29-SQLServer中Windows用户和sa用户都登录不上的解决办法

怎么连接sqlserver数据库

系统监视器

登录sql时 window身份验证登录和sqlserver验证登录有啥区别?

软件分享免费多线程下载神器,可完全替代IDM(支持Mac&Windows)