【SQL SERVER】链接数据库“无法启动分布式事务”的问题及解决
admin
2023-08-02 15:43:11
0

问题描述

当在SQL SERVER数据库里配置了Linded Server(链接数据库)时,就有可能有通过链接数据库调用其他服务器上的数据库的存储过程的需求,可是在还没有进行配置之前就会报出这样的错误:“该伙伴事务管理器已经禁止了它对远程/网络事务的支持,无法启动分布式事务”、“未将服务器配置为RPC”。在网上搜索了下,结合自己的情况整理了一下。


Linked-Server-RPC-8


Linked-Server-RPC-9

解决方法

数据库服务器属性设置

在本地数据库与远程数据库都对数据库服务器属性进行设置,勾选【需要将分布式事务用户服务器到服务器的通信】。


Linked-Server-RPC-1

启动MSDTC服务

在本地数据库的服务器与远程数据库的服务器上开启如下服务:
MSDTC服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(Distributed Transaction Coordinator)服务。

打开135端口

在本地数据库的服务器与远程数据库的服务器上开启此端口。
MSDTC服务依赖于RPC(Remote Procedure Call (RPC))服务,RPC使用135端口,保证RPC服务启动,如果服务器有防火墙,保证135端口不被防火墙挡住。(这里我在Win Server 2008 r2里开启进出站端口规则,没起作用,就直接关掉防火墙然后解决了)

MSDTC设置

在本地数据库的服务器与远程数据库的服务器上设置如下:
打开“控制面板——管理工具――组件服务”,以此打开“组件服务――计算机——我的电脑——本地DTC”,右键属性,切换到【安全】选项卡,设置下面这些东东。


Linked-Server-RPC-2


Linked-Server-RPC-3

配置RPC

如果报“未将服务器配置为RPC”的错误,需要右键配置的链接服务器,打开属性窗口,切换到【服务器选项】选项卡,将RPC,RPC Out更改为true.


Linked-Server-RPC-4

这里我在改的时候报出这样的错误:“不允许对系统目录进行即系更新”。于是乎在网上搜罗解决方法,但是看着都挺麻烦,我的方法挺简单。


Linked-Server-RPC-5

右键链接数据库,【编写链接服务器脚本为】,【CREATE到】,【新查询编辑器窗口】,在出现的脚本中找到这两句,把false改成true,然后运行这两句命令就可以了。


Linked-Server-RPC-6


Linked-Server-RPC-7

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...