码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2018-01-26 21:05:11      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:article   rem   fonts   指定   term   访问   存储过程   数据库   count   

原文: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)

标签:article   rem   fonts   指定   term   访问   存储过程   数据库   count   

原文地址:https://www.cnblogs.com/lonelyxmas/p/8360762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!