我正在尝试从我的计算机(SQL Server 2012)到客户端服务器(SQL Server 2008)运行分布式事务。
我正在尝试运行:
begin distributed transaction
select * from [172.01.01.01].master.dbo.sysprocesses
Commit Transaction
我得到:
OLE DB provider "SQLNCLI11" for linked server "172.01.01.01" returned message "No transaction is active.".
Msg 7391, Level 16, State 2, Line 2
The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "172.01.01.01" was unable to begin a distributed transaction.
我可以在服务器返回数据的情况下对它运行SELECT,所以至少我知道服务器可以互相看到,并且链接服务器存在并且正在运行
现在,网络上有很多与此相关的帖子,但我无法使其正常运行。到目前为止,这是我尝试过的:1.将DTC属性设置为以下(在两台服务器上)
从控制面板->服务(在两个服务器上)重新启动分布式事务处理协调器(MSDTC)。
已卸载和已安装的DTC(在两个服务器上)。
重新启动远程服务器。
关闭两台服务器上的防火墙。
已启用sp_configure'临时分布式查询',1(在两个服务器上)。
我运行了DTCPing,并成功ping通。
链接的服务器属性更改为以下内容:“ >>
还有什么可以尝试的?
更新:从另一台服务器运行事务到172.01.01.01是可行的。因此,问题不在目标服务器上,而是在源机器上。
我正在尝试从我的计算机(SQL Server 2012)到客户端服务器(SQL Server 2008)运行分布式事务。我正在尝试运行:开始从[172.01.01.01]中选择* * ....
如果根据OP的原始帖子在两个SQL服务器上配置了MS分布式事务处理协调器(MSDTC)之后,您仍然显示“ no transaction active”,则应检查每个主机是否可以通过IP到达(假设这就是已使用)已在链接服务器中注册。
我遇到了类似的问题,并按以下步骤解决。 SQL Server中的对象资源管理器的树状结构中有一个节点。在这里,您将找到Serverobjects→LinkedServers→下面是分布式服务器的IP地址列表。
在链接服务器属性窗口中将“启用促进分布式事务的启用”标志设置为false解决了我类似的问题。
在开始的分布式事务上方尝试此SQL
我有类似的问题。经过列出的所有事情都无济于事。我们有一个集群环境,事实证明我们的DBA在集群而不是主服务器上进行服务工作。如果其他所有方法都失败,则值得牢记:-)
Tuve el mismo错误。链接服务器的问题解决方法。