我试图在两个SQL服务器之间建立一个分布式事务。我的任务是从服务器A获取一些数据,转换它们,保存在服务器B上,并作为更新服务器A的最后一步。
当我执行这个T语句时
BEGIN DISTRIBUTED TRANSACTION TestTran
SELECT
*
FROM dbo.test我发现了一个错误:
OLE DB提供程序"MSOLEDBSQL“用于链接服务器”xx.xx“返回的消息"No transaction是活动的.”。Msg 7391,第16级,国家2,第2线
第一个服务器(服务器A)是server 2008 R2。Microsoft 2008 R2 (SP3) - 10.50.6220.0 (X64)
第二个服务器是Microsoft 2019 (RTM) (KB4517790) - 15.0.2070.41 (X64) 2019年10月28日19:56:59版权(C) 2019 Microsoft Edition (64位) on Windows10Enterprise10.0 (Build 17763:)
在这两个服务器上都配置了MS DTC,如下图所示
这两个防火墙都配置为允许DTC,如下面的防火墙配置图所示
我不确定如何使用DTCPing,因为DTCPing只允许NETBIOS名称。我将服务器IP地址放在主机文件中,但是DTCPing返回一个错误,如下图所示。DTCPing错误
这只是我困难的开始。
我的第二个任务是在服务器A(与上面所示的相同)和另一个我权限非常有限的服务器之间建立一个分布式事务。让我们命名服务器-服务器C。
当我试图建立一个分布式事务时,我得到了以下错误。
OLE DB提供程序"SQLNCLI10“用于链接服务器"XXXX”返回消息“合作伙伴事务管理器已禁用其对远程/网络事务.的支持”。
在我看来,服务器C配置不正确,我需要与本地管理员联系。
当我打电话给本地管理员时,我必须更加具体。
所以,结束吧。对于分布式事务,我有两个困难。
有什么麻烦?提前感谢!
发布于 2021-08-27 12:34:16
DTC似乎不喜欢为链接服务器使用IP地址。上面的DTCPing说明,它需要NetBIOS名称,以及它如何不接受IP地址,给了我一个提示,我需要用它来解决我自己的挑战。
考虑有两个服务器,
两者都在不同的网络上,通过VPN连接,两者之间没有DNS。
要解决这个问题:
https://stackoverflow.com/questions/62250570
复制相似问题