該作業未能執行,因為 OLE DB 提供者 'SQLOLEDB' 無法啟動分散式交易。[OLE/DB provider returned message: 新交易無法登記於指定的交易處理器中。]
分散式交易協調器 (MSDTC, Microsoft Distributed Transaction Coordinator) 服務未在**兩台參與機器**上啟動,或機器間無法透過 NetBIOS 名稱解析對方,導致交易管理器無法通訊。
net start msdtc
或「服務」管理工具 → 找到 Distributed Transaction Coordinator → 啟動類型設為「自動」 → 啟動。
編輯 %windir%\system32\drivers\etc\hosts,新增對方 IP 與電腦名稱對應:
192.168.1.10 ServerA
192.168.1.20 ServerB
注意:若環境有 DNS 正常運作,可略過此步;工作群組 (非網域) 環境強烈建議設定。
執行 dcomcnfg → 元件服務 → 電腦 → 我的電腦 → Distributed Transaction Coordinator → 本機 DTC → 右鍵屬性 → 「安全性」頁籤:
-- 測試連結伺服器分散式查詢
BEGIN DISTRIBUTED TRANSACTION;
INSERT INTO ServerB.DB.dbo.Table VALUES (1);
COMMIT TRANSACTION;
分散式交易失敗 90% 以上為 MSDTC 服務未啟或名稱解析失敗。依序啟用服務、設定 Hosts、調整 DTC 安全性,即可恢復正常。生產環境建議納入伺服器基準配置清單 (Baseline)。