伺服器組態不能肯定的 xact 解析
適用於:Azure SQL Database Azure SQL 受控執行個體 Azure VM 上的 SQL Server
使用 in-doubt xact resolution
選項可控制 Microsoft Distributed Transaction Coordinator (MS DTC) 無法解析之交易的預設結果。 無法解析交易的原因,可能與 MS DTC 停機,或在復原時出現未知的交易結果等狀況有關。
下表列出解析不確定的交易時,可能出現的結果值。
結果值 | 描述 |
---|---|
0 |
無假設結果。 如果 MS DTC 有無法解析的未決交易,復原即會失敗。 |
1 |
假設為認可。 假設任何 MS DTC 未決交易都為已提交。 |
2 |
假設為中止。 假設任何 MS DTC 未決交易都為已中止。 |
若要將停機時間降到最低,系統管理員可將此選項設為「假設為認可」或「假設為中止」,如以下範例所示。
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'in-doubt xact resolution', 2; -- presume abort
GO
RECONFIGURE;
GO
sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO
或者,系統管理員也可以採用預設值 (無假設結果) 並允許復原失敗,以便記錄 DTC 失敗,如以下範例所示。
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'in-doubt xact resolution', 1; -- presume commit
GO
RECONFIGURE
GO
ALTER DATABASE pubs SET ONLINE -- run recovery again
GO
sp_configure 'in-doubt xact resolution', 0 -- back to no assumptions
GO
sp_configure 'show advanced options', 0
GO
RECONFIGURE
GO
in-doubt xact resolution
選項為進階選項。 若使用 sp_configure
系統預存程序來變更設定,只有當 show advanced options
設為 1
時,才能變更 in-doubt xact resolution
。 設定會立即生效,伺服器不必重新啟動。
注意
在與分散式交易有關的所有 SQL Server 執行個體上讓此選項的設定維持一致,有助於避免資料不一致。