【问题标题】:Distributed Transactions between MSSQL 2000 & MySQL Stopped WorkingMSSQL 2000 和 MySQL 之间的分布式事务停止工作
【发布时间】:2012-10-20 16:23:12
【问题描述】:

我们已经成功地将数据从 MySQL 从属数据库复制到 MSSQL 数据库。 MySQL 服务器是一个链接服务器。我已经尝试使用我的 MySQL 提供的 ODBC 连接器的 v3.51 和 v5.1.8。

简单地尝试使用 OPENQUERY 从 MySQL 中的表插入 MSSQL 中的临时表会导致以下错误:

Server: Msg 7391, Level 16, State 1, Line 1
The operation could not be performed because the OLE DB provider 'MSDASQL' was unable to begin a distributed transaction.
[OLE/DB provider returned message: [MySQL][ODBC 3.51 Driver]Optional feature not supported]
OLE DB error trace [OLE/DB Provider 'MSDASQL ' ITransactionJoin::JoinTransaction returned 0x8004d00a].

当 MySQL 主从之间的复制失败时,开始发生此错误。此问题已得到修复,但上述错误仍然存​​在。

MSSQL Server 在 Windows 2003 R2 Server 上运行,MySQL 服务器在 CentOS 5 服务器上运行,两台服务器位于不同的数据中心并通过 OpenVPN 相互通信。

在 MySQL 方面还有什么需要做的吗?对 MSSQL 方面有什么建议吗?我已经尝试过重启 DTC 以及重启服务器。

谢谢

【问题讨论】:

    标签: mysql sql-server transactions


    【解决方案1】:

    终于解决了这个问题。请参阅这篇 Stack Overflow 文章中的帖子:SQL Server 2000 - Linked Server

    【讨论】:

      【解决方案2】:

      如果使用显式命令“EXECUTE”,请确保链接服务器没有打开任何事务。为了 示例:

      BEGIN TRANSACTION
        SP_CALL_LINKED_SERVER
      ...
      

      在 SP_CALL_LINKED_SERVER 中,如果之前的事务仍然打开,则不能调用任何事务(例如:...EXECUTE (LINKED_SERVER)...)

      【讨论】:

        猜你喜欢
        • 2011-11-04
        • 1970-01-01
        • 2017-04-06
        • 2015-09-03
        • 2023-03-29
        • 1970-01-01
        • 2010-10-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多