我们已经成功地将数据从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运行在Windows2003 R2 Server上,MySQL服务器运行在CentOS 5服务器上,这两个服务器位于不同的数据中心,并通过OpenVPN相互通信。
在MySQL方面还需要做些什么吗?对MSSQL方面有什么建议吗?我已经尝试重新启动DTC以及重新启动服务器。
谢谢
发布于 2011-07-12 15:58:50
最终解决了这个问题。请参阅此堆栈溢出文章中的帖子:SQL Server 2000 - Linked Server
发布于 2012-05-31 04:21:02
如果使用显式命令"EXECUTE",请确保链接服务器没有打开任何事务。例如:
BEGIN TRANSACTION
SP_CALL_LINKED_SERVER
...在SP_CALL_LINKED_SERVER中,您不能调用任何事务(例如:...EXECUTE (LINKED_SERVER)...)如果之前的事务仍在进行中
https://stackoverflow.com/questions/6647951
复制相似问题