原文: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)的更多相关文章

  1. 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。

    今天写ASP.NET程序,在网页后台的c#代码里写了个事务,事务内部对一张表进行批量插入,对另外一张表进行查询与批量插入. 结果第二张表查询后foreach迭代操作时报错:已禁用对分布式事务管理器(M ...

  2. MSDTC启用——分布式事务

    一.前言 最近在做一个项目的时候使用了.NET中的System.Transactions(分布式事务),当项目开发完成以后,调用的时候遇到了MSDTC的问题,在查阅了相关资料后将这个问题解决了,大致的 ...

  3. Sql Server中启用分布式事务小结

    1.web服务器与数据库服务器同时启动msdtc服务 2. 2台服务器做出如下配置: 控制面板->管理工具->组件服务->计算机->我的电脑->本地DTC .Net示例: ...

  4. SQLSERVER分布式事务使用实例

    实例一 尊重原著作:本文参考自http://www.jb51.net/article/43540.htm --BEGIN DISTRIBUTED TRANSACTION [transactionnam ...

  5. SQLServer之创建分布式事务

    分布式事务创建注意事项 指定一个由 Transact-SQL 分布式事务处理协调器 (MS DTC) 管理的 Microsoft 分布式事务的起点. 执行 BEGIN DISTRIBUTED TRAN ...

  6. SqlServer 使用脚本创建分发服务及事务复制的可更新订阅

    原文:SqlServer 使用脚本创建分发服务及事务复制的可更新订阅 [创建使用本地分发服务器] /************************[使用本地分发服务器配置发布]*********** ...

  7. SqlServer 可更新订阅升级字段队列数据丢失原因

    原文:SqlServer 可更新订阅升级字段队列数据丢失原因 之前简单描述过数据冲突发生的原因:SQLServer可更新订阅数据冲突的一个原因 ,但具体内部原理是怎么丢失的还不清楚,今天补充说明.可更 ...

  8. SQLServer 可更新订阅数据在线架构更改(增加字段)方案

    原文:SQLServer 可更新订阅数据在线架构更改(增加字段)方案 之前一直查找冲突发布和订阅数据不一致的原因,后来发现多少数据库升级引起,因为一直以来都是在发布数据库增加字段,订阅也会自动同步.在 ...

  9. SQLServer 可更新订阅数据冲突的一个原因

    原文:SQLServer 可更新订阅数据冲突的一个原因 可更新订阅为什么有冲突? 可更新订阅中,当升级增加一个字段时,通常在发布服务器的发布数据库中增加,对表增加字段后,发布自动同步到订阅数据库中(复 ...

随机推荐

  1. ITFriend创业败局(序):简要概述我的第一次创业经历

    是时候, 面对过去,继续踏上未来之路了.    是时候,该给自己一个交待了,给ITFriend创业合伙人.ITFriend用户.关注我的朋友和网友们一个答复了.    是时候,全面认真总结过去的经历. ...

  2. Eclipse Che安装入门和使用(一)

    Eclipse Che序列博文如下: 安装和调试篇:Eclipse Che安装入门和使用(一) Web进阶篇:Eclipse Che开发Spring Web应用(入门) (二) 本文摘要: Eclip ...

  3. 学习鸟哥的Linux私房菜笔记(6)——过滤器、输入输出及管道

    一.过滤器 Linux中的应用工具分为三种: 交互工具 过滤器 编辑器 能够接受数据,过滤再输出的工具,称之为过滤器 对过滤器和进程,存在着输入源与输出对象 二.输入.输出.重定向 输入:过滤器的数据 ...

  4. WPF 插拔触摸设备触摸失效

    原文:WPF 插拔触摸设备触摸失效 最近使用 WPF 程序,在不停插拔触摸设备会让 WPF 程序触摸失效.通过分析 WPF 源代码可以找到 WPF 触摸失效的原因. 在 Windows 会将所有的 H ...

  5. WPF 通过位处理合并图片

    原文:WPF 通过位处理合并图片 本文告诉大家,在使用 WPF 合并两张图片的处理,可以使用像素之间的与或和异或的方式,对三个颜色的通道进行处理. 先给大家看一下软件的界面 这就是通过将左边的两张图片 ...

  6. CMake 添加头文件目录,链接动态、静态库(添加子文件夹)

    CMake支持大写.小写.混合大小写的命令. 当编译一个需要第三方库的项目时,需要知道: 去哪找头文件(.h),-I(GCC) INCLUDE_DIRECTORIES() 去哪找库文件(.so/.dl ...

  7. win10 uwp 使用 msbuild 命令行编译 UWP 程序

    原文:win10 uwp 使用 msbuild 命令行编译 UWP 程序 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 http:// ...

  8. hdu1845 Jimmy’s Assignment --- 完整匹配

    意甲冠军: 它需要一个特殊的图,以找到最大匹配.该图的特征是:无向图,度的每个节点3.这是一个双边连接组件(the graph is 2-edge-connected (that is, at lea ...

  9. Win7,Vista UAC下应用程序标注为“需要管理员权限”的四种方法(可以修改注册表)

    [转]Vista UAC下应用程序标注为“需要管理员权限”的四种方法 在Microsoft 的UACBlog里对此有过叙述.总结如下: 首先,如果一个程序被识别为管理员程序时,Vista会在它的图标上 ...

  10. Delphi MD5加密

    Delphi MD5加密   1. 引用两个单元        uses   IdHash,IdHashMessageDigest;    2.编写加密函数    function TEncrypti ...