我尝试对链接服务器运行 SQL,但出现以下错误:
BEGIN DISTRIBUTED TRANSACTION
SELECT TOP 1 * FROM Sessions
OLE DB provider "SQLNCLI" for linked server "ASILIVE" returned message "No transaction is active.".
Msg 7391, Level 16, State 2, Line 3
The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "ASILIVE" was unable to begin a distributed transaction.
提供者返回两个错误:
错误#1:
Number: $80040E14
Source: Microsoft OLE DB Provider for SQL Server
Description: OLE DB provider "SQLNCLI" for linked server "ASILIVE" returned message "No transaction is active.".
HelpFile:
HelpContext: $00000000
SQLState: 01000
NativeError: 7412
Error #2
Number: $80040E14
Source: Microsoft OLE DB Provider for SQL Server
Description: The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "ASILIVE" was unable to begin a distributed transaction.
HelpFile:
HelpContext: $00000000
SQLState: 42000
NativeError: 7391
如何让 Microsoft 更看重功能而不是安全?
或者,至少,我怎样才能让两个 SQL Server 相互通信?
相关问题
-
无法执行该操作,因为 OLE DB 提供程序“SQLNCLI10”...(*链接服务器名称是
(null)
)
-
分布式事务出错? (使用 Oracle 提供程序)
-
无法使用 NHibernate 加入分布式事务 (使用休眠)
-
在 SQL Server 2008 R2 中使用分布式事务时出错 (SQL Server 2008 R2,没有答案)
-
仅通过代码处理分布式事务错误 (由连接池引起)
-
在链接服务器中执行分布式事务协调器时出错 (SQL Server 2008,没有答案)
-
分布式事务出错? (没有接受的答案;唯一的答案没有帮助)
-
如何在事务中使用链接服务器插入远程表? (接受的答案无法解决)
What I have完成是无关紧要的,但我还是会发布它。
-
Ensure Distributed Transaction Coordinator
服务正在两台机器上运行:
-
禁用两台计算机上的所有 MSDTC 安全性:
-
打开链接服务器上的随机选项:
-
咒骂并发誓。
-
砸碎了东西。
-
检查了一个SELECT
可以使用链接服务器:
SELECT * FROM ASILive.CustomerManagementSystem.dbo.Users
....
(763 row(s) affected)
-
检查客户端服务器是否可以ping远程服务器:
C:\Documents and Settings\avatar>ping asicmstest.contoso.com
Pinging asicmstest.contoso.com [10.0.0.40] with 32 bytes of data:
Reply from 10.0.0.40: bytes=32 time<1ms TTL=128
Reply from 10.0.0.40: bytes=32 time<1ms TTL=128
Reply from 10.0.0.40: bytes=32 time<1ms TTL=128
Reply from 10.0.0.40: bytes=32 time<1ms TTL=128
Ping statistics for 10.0.0.40:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
-
检查远程服务器是否可以按名称与发起服务器进行通信:
C:\Documents and Settings\avatar>ping asitestserver.contoso.com
Pinging asitestserver.contoso.com [10.0.0.22] with 32 bytes of data:
Reply from 10.0.0.22: bytes=32 time<1ms TTL=128
Reply from 10.0.0.22: bytes=32 time<1ms TTL=128
Reply from 10.0.0.22: bytes=32 time<1ms TTL=128
Reply from 10.0.0.22: bytes=32 time<1ms TTL=128
Ping statistics for 10.0.0.22:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
-
检查了一下@@SERVERNAME匹配两台服务器上的服务器名称:
SELECT @@SERVERNAME, SERVERPROPERTY('MachineName')
------------- -------------
ASITESTSERVER ASITESTSERVER
and
SELECT @@SERVERNAME, SERVERPROPERTY('MachineName')
---------- ----------
ASIGROBTEST ASIGROBTEST
-
Screamed
-
Issued SET XACT_ABORT ON在发出我的查询之前:
SET XACT_ABORT ON
GO
BEGIN DISTRIBUTED TRANSACTION
SELECT TOP 1 * FROM Sessions
-
Granted Everyone Full Control to:
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer
在两台服务器上。
发现了,远程服务器上的MSDTC是本地服务器的克隆。
从 Windows 应用程序事件日志:
事件类型:错误
事件来源:MSDTC
活动类别:CM
事件ID:4101
日期:2011年9月19日
时间:下午 1:32:59
用户:不适用
计算机:ASITESTSERVER
描述:
本地 MS DTC 检测到
ASICMSTEST 上的 MS DTC 与本地 MS 具有相同的唯一标识
故障码。这意味着两个 MS DTC 将无法通信
与彼此。如果系统之一通常会出现此问题
使用不受支持的克隆工具进行克隆。 MS DTC 要求
使用受支持的克隆工具(例如 SYSPREP)来克隆系统。
从命令运行“msdtc -uninstall”,然后运行“msdtc -install”
提示将解决问题。注意:运行“msdtc -uninstall”将
导致系统丢失所有 MS DTC 配置信息。
有关详细信息,请参阅帮助和支持中心:http://go.microsoft.com/fwlink/events.asp.
Running
msdtc -uninstall
msdtc -install
然后停止并重新启动 SQL Server 服务修复了它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)