我有不止一台带有 SQL Server 数据库的服务器。我想begin transaction
对两个数据库都执行一个操作,以便在出现错误时它会自动回滚。我尝试过链接服务器,这些服务器已经过测试,可以使用 IP 相互连接,并且可以在服务器之间进行选择,包括更新和删除,但是当我尝试开始事务时,会发生错误。
链接服务器“名称”的 OLE DB 提供程序“SQLNCLI11”返回消息“没有活动的事务。”。
无法执行该操作,因为链接服务器“名称”的 OLE DB 提供程序“SQLNCLI11”无法开始分布式事务。
我已经寻找了一个解决方案,并做了几件事,例如将分发事务的启用升级更改为 false,尝试确保服务器相互连接,重新安装链接服务器驱动程序。但还是不行,有谁知道连接失败的原因吗?我使用的是带有 Windows NT 6.2 操作系统的 SQL Server 2012 和带有 Redhat 8.4 的 SQL Server 2019。
有没有另一种方法可以在没有链接服务器的情况下在不同的服务器上进行交易?
分布式事务需要 Microsoft 分布式事务协调器,我认为它不适用于 Linux,但是快速显示它确实可用,并生成了以下关于如何配置它以及支持什么的官方文档。请注意,并非所有驱动程序都受支持,而且您需要高于操作系统和 SQL 的某个最低版本
https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-configure-msdtc?view=sql-server-ver16