无法执行该操作,因为链接服务器 "xxxxx" 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。
1. 双方启动MSDTC服务
MSDTC服务提供分布式事务服务,如果要在数据库中使用 SQL Server分布式事务,必须在参与的双方服务器启动MSDTC(Distributed Transaction Coordinator)服务。
2. 打开双方135端口
MSDTC服务依赖于RPC(Remote Procedure Call (RPC))服务,RPC使用135端口,保证RPC服务启动,如果服务器有防火墙,保证135端口不被防火墙挡住。
使用“telnet IP 135 ”命令测试对方端口是否对外开放。也可用端口扫描软件(比如Advanced Port Scanner)扫描端口以判断端口是否开放。
3. 保证链接服务器中语句没有访问发起事务服务器的操作
在发起事务的服务器执行链接服务器上的查询、视图或存储过程中含有访问发起事务服务器的操作,这样的操作叫做环回(loopback),是不被支持的,所以要保证在链接服务器中不存在此类操作。
4.在事务开始前加入set xact_abort ON语句
对于大多数 OLE DB 提供程序(包括 SQL Server),必须将隐式或显示事务中的数据修改语句中的 XACT_ABORT 设置为 ON。唯一不需要该选项的情况是在提供程序支持嵌套事务时。
5. 发现由于防火墙限制,无法访问对方135端口
6. 修改host文件,将对方机器名和IP加入
5.MSDTC设置
Vista, Windows 7,Windows Server 2008 MSDTC配置
控制面板(Control Panel)―管理工具(Administrative Tools)―组件服务(Component Service)(或者开始-运行 “Dcomcnfg.exe”)
打开“组件服务(Component Service)―计算机(Computers)”
在“我的电脑(My Computer)”上点击右键,点击“属性(Properties)”
在Local DTC Properties对话框中,点击“安全(Security)”选项卡
控制面板―管理工具―组件服务―计算机―我的电脑―Distributed...―本地DTC―属性
选择“安全选项”卡
选中“网络DTC访问(Network DTC Access)”
在客户端管理(Client and Administration)中
选“允许远程客户端(Allow remote Clients)”
“允许远程管理(Allow Remote Administration)”
在事务管理通讯(Transaction Manager Communication)中
选“允许入站(Allow Inbound)”
“允许出站(Allow Outbound)”
“不要求进行验证(No Authentication Required)”
保证DTC登陆账户为:NT Authority\Network Service
Windows XP, Windows Server 2003 MSDTC 配置
打开“控制面板―性能和维护―管理工具―组件服务”(或者运行“Dcomcnfg.exe”)
打开“组件服务―计算机”
在“我的电脑”上点击右键,点击“属性”
在MSDTC选项卡中,点击“安全配置”按钮。
在安全配置窗口中做如下设置:
选中“网络DTC访问”
在客户端管理中选中“允许远程客户端”“允许远程管理”
在事务管理通讯中选“允许入站”“允许出站”“不要求进行验证”
保证DTC登陆账户为:NT Authority\Network Service
- 大小: 56.3 KB
- 大小: 93.9 KB
- 大小: 38.1 KB
- 大小: 73.1 KB
分享到:
相关推荐
SQL Server 分布式事务服务器的配置 SQL Server 分布式事务服务器的配置是一个复杂的过程,涉及到多个方面的设置和配置。以下是配置的详细步骤和知识点: 1. 启动 MSDTC 服务 MSDTC(Distributed Transaction ...
windows xp 下 安装sqlserver分布式事务(atomikos )所需要的补丁
一、 问题现象 在执行 SQL Server分布式事务时,在SQL Server 2005下收到如下错误: 消息 7391,级别 16,状态 2,过程 xxxxx,第 16 行 无法执行该操作,因为链接服务器 “xxxxx” 的 OLE DB 访问接口 “SQLNCLI” ...
在SQL_SERVER中使用分布式事务全攻略(图解)
在SQL Server中,分布式事务是一种能够跨越多个数据库或者多个服务器的事务处理机制,它允许你在不同的数据源之间执行原子操作。这种事务管理是由分布式事务处理协调器(Microsoft Distributed Transaction ...
以下是对SQL Server分布式查询配置的详细说明: **一、分布式查询的基本概念** 1. **链接服务器**:在SQL Server中,链接服务器是一个对象,用于定义与其他数据库管理系统(如Oracle、DB2或另一个SQL Server实例)...
详解SQL Server分布式查询 SQL Server中的分布式查询(Distributed Query)是指能够访问存放在同一部计算机或不同计算机上的SQL Server或不同种类的数据源。分布式查询与普通查询的区别在于它需要连接多个MSSQL...
【MSSQL 】SQLServer分布式集群Python自动故障转移脚本 #安装依赖 pip install pymssql #windows打包 pyinstaller -w -F mssqlScript.py ######or pyinstaller -F mssqlScript.py #windows运行 ./mssqlScript.exe ...
分布式数据库解决方案探讨 本文探讨了分布式数据库解决方案的实现,通过读写分离和负载均衡技术,降低单台服务器的压力,提高系统的稳定性和扩展性。读写分离的基本原理是让写数据库处理事务性操作,而读数据库处理...
具体做法是在存储过程中定义一系列针对不同数据库的操作,这些操作会被封装在一起作为整体处理,确保了分布式事务的一致性。 ##### 2.4 采用数据库复制技术实现混合式数据分布 为了保证分布式数据库系统的数据一致...
1.web服务器与数据库服务器同时启动msdtc服务 2.... 控制面板->管理工具->组件服务->计算机->我的电脑->本地DTC .Net示例: 添加引用System.Transactions using (TransactionScope scope = new ...
"SQL Server分布式数据库的并发控制和故障恢复" SQL Server是专为分布式客户/服务器环境设计的数据库管理系统,它提供了一套系统的安全保护机制,具有高的安全性、完整性、事务控制和故障恢复的数据控制能力。 SQL...
3. 分布式事务:SQL Server 2000支持通过分布式事务处理(Distributed Transaction Coordinator, DTC)在多个数据库或者不同服务器之间进行协调的事务。这在跨数据库操作或者企业级应用中非常有用。 接下来,我们...
《LINQ to SQL:分布式事务处理》 在.NET框架中,LINQ(Language Integrated Query,语言集成查询)是一项强大的技术,使得开发人员可以使用类似SQL的语法在C#或VB.NET中进行数据查询。其中,LINQ to SQL是.NET ...
解决 SQL Server 数据库中附加数据库的出错问题 ...5. SQL Server 分布式事务的概念与包括事务 这些知识点和编辑推荐将帮助您更好地理解和解决 SQL Server 中的相关问题,并提高您的数据库管理和维护能力。
同时,为了保证跨服务器的事务一致性,Microsoft Distributed Transaction Coordinator (MSDTC) 提供了分布式事务管理服务,确保在一个事务中的操作无论在哪个服务器上都能遵循ACID(原子性、一致性、隔离性和持久性...
例如,SQL Server支持DTC(分布式事务协调器)来协调跨服务器的事务。 另外,事务的性能是分布式事务设计时需要考虑的重要因素。长时间运行的事务可能导致锁资源的占用,影响其他用户对数据的访问。因此,应尽量...