问题描述
当在 SQL SERVER 数据库里配置了 Linded Server(链接数据库)时,就有可能有通过链接数据库调用其他服务器上的数据库的存储过程的需求,可是在还没有进行配置之前就会报出这样的错误:“该伙伴事务管理器已经禁止了它对远程/网络事务的支持,无法启动分布式事务”、“未将服务器配置为 RPC”。在网上搜索了下,结合自己的情况整理了一下。
解决方法
数据库服务器属性设置
在本地数据库与远程数据库都对数据库服务器属性进行设置,勾选【需要将分布式事务用户服务器到服务器的通信】。
启动 MSDTC 服务
在本地数据库的服务器与远程数据库的服务器上开启如下服务:
MSDTC 服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动 MSDTC(Distributed Transaction Coordinator)服务。
打开 135 端口
在本地数据库的服务器与远程数据库的服务器上开启此端口。
MSDTC 服务依赖于 RPC(Remote Procedure Call (RPC))服务,RPC 使用 135 端口,保证 RPC 服务启动,如果服务器有防火墙,保证 135 端口不被防火墙挡住。(这里我在 Win Server 2008 r2 里开启进出站端口规则,没起作用,就直接关掉防火墙然后解决了)
MSDTC 设置
在本地数据库的服务器与远程数据库的服务器上设置如下:
打开“控制面板——管理工具――组件服务”,以此打开“组件服务――计算机——我的电脑——本地 DTC”,右键属性,切换到【安全】选项卡,设置下面这些东东。
配置 RPC
如果报“未将服务器配置为 RPC”的错误,需要右键配置的链接服务器,打开属性窗口,切换到【服务器选项】选项卡,将 RPC,RPC Out 更改为 true.
这里我在改的时候报出这样的错误:“不允许对系统目录进行即系更新”。于是乎在网上搜罗解决方法,但是看着都挺麻烦,我的方法挺简单。
右键链接数据库,【编写链接服务器脚本为】,【CREATE 到】,【新查询编辑器窗口】,在出现的脚本中找到这两句,把 false 改成 true,然后运行这两句命令就可以了。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于