【SQL SERVER】链接数据库“无法启动分布式事务”的问题及解决

本贴最后更新于 3364 天前,其中的信息可能已经物是人非

问题描述

当在 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

  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖 • 1 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    346 引用 • 760 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26713 引用 • 111258 回帖 • 1 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    89 引用 • 113 回帖
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 3 关注
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    292 引用 • 4495 回帖 • 665 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 662 关注
  • 倾城之链
    23 引用 • 66 回帖 • 173 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    173 引用 • 541 回帖
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖 • 1 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 611 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 668 关注
  • OnlyOffice
    4 引用 • 18 关注
  • AWS
    11 引用 • 28 回帖 • 3 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    187 引用 • 1021 回帖
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    337 引用 • 324 回帖 • 2 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 116 关注
  • 印象笔记
    3 引用 • 16 回帖 • 1 关注
  • Anytype
    3 引用 • 31 回帖 • 33 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 117 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    85 引用 • 324 回帖
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    53 引用 • 190 回帖 • 1 关注
  • Visio
    1 引用 • 2 回帖
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 688 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 685 关注
  • danl
    187 关注
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖 • 2 关注