Microsoft 分布式事务协调器 (MSDTC) 提供了一种机制来确保跨多个数据源的原子性和一致性。如果您计划跨多个数据源执行显式事务操作,或者如果您正在安装 SQL Server 2005,则需要它。
这同样适用于群集和非群集 SQL Server 安装。
如果您不打算使用分布式事务,则不需要安装 MSDTC。
下面显示了一个分布式事务的示例:
SET XACT_ABORT ON;
BEGIN TRY
BEGIN TRANSACTION
SELECT *
FROM LinkedServerName.master.sys.sysobjects so;
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION
END
END CATCH
如果您确实计划在群集实例上像这样运行 T-SQL,则需要将 MSDTC 安装到单独的 LUN 上,该 LUN 被配置为与 SQL Server 实例本身相同的群集资源组的一部分。不要将它安装到 SQL Server 使用的磁盘上,因为这些磁盘可能会在 MSDTC 服务停止之前的故障转移期间消失。
SQL Server 2012 故障转移群集不需要 MSDTC。但是,如果您计划使用链接服务器,则需要创建群集 MSDTC 资源。好消息是可以在集群已经构建和 SQL Server 安装之后进行设置。
Microsoft 分布式事务协调器 (MSDTC) 提供了一种机制来确保跨多个数据源的原子性和一致性。如果您计划跨多个数据源执行显式事务操作,或者如果您正在安装 SQL Server 2005,则需要它。
这同样适用于群集和非群集 SQL Server 安装。
如果您不打算使用分布式事务,则不需要安装 MSDTC。
下面显示了一个分布式事务的示例:
如果您确实计划在群集实例上像这样运行 T-SQL,则需要将 MSDTC 安装到单独的 LUN 上,该 LUN 被配置为与 SQL Server 实例本身相同的群集资源组的一部分。不要将它安装到 SQL Server 使用的磁盘上,因为这些磁盘可能会在 MSDTC 服务停止之前的故障转移期间消失。
您需要使用 dcomcnfg 实用程序配置分布式事务协调器的安全设置以允许它在网络上进行通信:
有关详细信息,请参阅此 MSDN 博客。
Microsoft 故意使 MSDTC 成为可选安装。
如果他们计划使用分布式事务,则“仅”需要 MSDTC。对于简单的普通普通用法的 SQL Server(我见过的大多数 SQL Server 数据库),不要打扰 MSDTC。
有关详细信息,请参阅http://blogs.msdn.com/b/alwaysonpro/archive/2014/01/15/msdtc-recommendations-on-sql-failover-cluster.aspx。