SqlServer & Windows 可更新订阅立即更新启用分布式事务协调
在可更新订阅中,在订阅设置更新方法,将?“排队更新” 设置为 “立即更新” 接着在订阅数据库更新表数据,出错: 消息 21079,级别 16,状态 1,过程 sp_getpublisherlink,第 52 行 查看该存储过程?sp_getpublisherlink ,确认抛出错误的语句?raiserror(21079,16,1) 和raiserror(21079,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" 返回了消息 "该伙伴事务管理器已经禁止了它对远程/网络事务的支持。"。 没有启用分布式事务,启用就是了!嘿嘿!~以下在每台服务器都做相同操作: 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',@security_mode = 2 --2:使用现有的通过 sp_link_publication 创建的用户定义的链接服务器登录名 更多参考: sp_link_publication (Transact-SQL) 管理分布式事务 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |