【问题标题】:Azure Linked SQL server from on Premise SQL Server - MSDTC exceptionAzure Linked SQL Server from on Premise SQL Server - MSDTC 异常
【发布时间】:2019-01-30 01:49:33
【问题描述】:
  1. 我在 Azure 中有一个 SQL 数据库
  2. 然后从本地 SQL Server 为 SQL Db 创建链接服务器
  3. 我在本地 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


【解决方案1】:

@dks 您遇到的问题不正常 - 通常只有当您的应用程序尝试启动分布式事务以协调状态更改时才会发生这种情况。 (有时应用程序使用分布式事务来协调应用程序和数据层之间的状态更改,因此您的情况可能正在发生这种情况)。如果您从 EF 或类似设备运行,请检查以确保它没有代表您启动 DTC。

无论如何,我建议您使用最新的 OLEDB 提供商。去年 Microsoft 推出了更新的提供程序,您可以在此处下载:

https://www.microsoft.com/en-us/download/details.aspx?id=56730

【讨论】:

    【解决方案2】:

    Azure SQL 数据库不支持分布式事务。

    SQL 数据库中的分布式事务

    SQL 数据库不支持分布式事务,即多个事务管理器(多个资源)的事务。有关详细信息,请参阅Distributed Transactions (ADO.NET)。这意味着 SQL 数据库不允许 Microsoft 分布式事务协调器 (MS DTC) 委托分布式事务处理。因此,您不能使用 ADO.NET 或 MSDTC 提交或回滚跨多个 SQL 数据库或 SQL 数据库和本地 SQL Server 组合的单个事务。

    更多详情,您可以在这里查看:Handling Transactions in Windows Azure SQL Database。 参考blob:Distributed transaction similar to MSDTC between SQL Server azure and MSMQ\queue azure.

    我认为没有任何解决方案可以帮助你。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2015-11-05
      • 1970-01-01
      • 2015-05-28
      • 2011-01-13
      • 2017-06-01
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多