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

简介: 原文:SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC) 在可更新订阅中,在订阅设置更新方法,将 “排队更新” 设置为 “立即更新” 接着在订阅数据库更新表数据,出错: 消息 21079,级别 16,状态 1,过程 sp_getpublisherlink,第 52 行 没有发布服务器的 RPC 安全信息,或该信息无效。
原文: 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)

管理分布式事务



目录
相关文章
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
878 2
|
4月前
|
消息中间件 分布式计算 资源调度
《聊聊分布式》ZooKeeper与ZAB协议:分布式协调的核心引擎
ZooKeeper是一个开源的分布式协调服务,基于ZAB协议实现数据一致性,提供分布式锁、配置管理、领导者选举等核心功能,具有高可用、强一致和简单易用的特点,广泛应用于Kafka、Hadoop等大型分布式系统中。
|
5月前
|
数据采集 消息中间件 NoSQL
分布式爬虫的全局请求间隔协调与IP轮换策略
分布式爬虫的全局请求间隔协调与IP轮换策略
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
298 1
|
算法 Linux
分布式系列教程(14) -分布式协调工具Zookeeper(集群选举策略)
分布式系列教程(14) -分布式协调工具Zookeeper(集群选举策略)
226 0
|
存储 Java 开发工具
分布式系列教程(13) -分布式协调工具Zookeeper(实现分布式配置中心)
分布式系列教程(13) -分布式协调工具Zookeeper(实现分布式配置中心)
287 0
|
Java 开发工具 Maven
分布式系列教程(12) -分布式协调工具Zookeeper(选举与哨兵机制)
分布式系列教程(12) -分布式协调工具Zookeeper(选举与哨兵机制)
176 0
|
存储 NoSQL 算法
分布式系列教程(11) -分布式协调工具Zookeeper(分布式锁实现)
分布式系列教程(11) -分布式协调工具Zookeeper(分布式锁实现)
170 0
|
负载均衡 算法 Java
分布式系列教程(10) -分布式协调工具Zookeeper(负载均衡原理实现)
分布式系列教程(10) -分布式协调工具Zookeeper(负载均衡原理实现)
327 0
|
Java 开发工具 Maven
分布式系列教程(09) -分布式协调工具Zookeeper(Java基本操作)
分布式系列教程(09) -分布式协调工具Zookeeper(Java基本操作)
164 0