【发布时间】:2019-01-30 01:49:33
【问题描述】:
- 我在 Azure 中有一个 SQL 数据库
- 然后从本地 SQL Server 为 SQL Db 创建链接服务器
- 我在本地 SQL db 中的 SP 中使用 Azure SQL db 中存在的表
此设置工作正常,除非 MSDTC 服务正在运行。
当“DTC”服务运行时,我得到以下异常
顶级异常消息:System.ServiceModel.FaultException:链接服务器“Azure_SQLDb”的 OLE DB 提供程序“SQLNCLI11”报告错误。提供者报告一个或多个参数无效。 无法执行该操作,因为链接服务器“Azure_SQLDb”的 OLE DB 提供程序“SQLNCLI11”无法开始分布式事务。 链接服务器“Azure_SQLDb”的 OLE DB 提供程序“SQLNCLI11”返回消息“参数不正确。”。
我不需要 Azure 链接服务器来处理任何 DTC 事务,因此我尝试在链接服务器属性中禁用此选项以查看它是否有帮助,但没有帮助。
我了解到我们无法将 MSDTC 连接到 azure SQL db,这对我来说很好,因为我的本地 db 和 azure sql db 之间不会有任何事务涉及。
当有与 azure sql db 的链接服务器连接时,我希望有一个解决方案来运行在我的服务器计算机上运行的 DTC 服务。
【问题讨论】:
-
请指定您正在运行什么查询以及在何处运行。在 Azure SQL DB 中,它应该能够从 SQL Server DB 中进行选择(假设网络连接等)。对于 SQL Server,如果它是最后一个提交者,您应该能够将 SQL Azure 作为单个更新点的“DTC”。主要的技术要求是目前这两者之间没有 MSDTC 协调。你在运行什么命令?插入/更新/删除与选择可能的事项
-
我正在对本地 SQL 数据库中存在的 SP 中的天蓝色数据库表运行选择查询。
-
您是否考虑使用 SQL 数据同步将该表复制到本地?
标签: sql-server azure-sql-database msdtc