Поделиться через


Конфигурация сервера: разрешение xact без сомнения

Применимо к:SQL ServerAzure SQL Managed InstanceSQL Server на виртуальных машинах Azure

in-doubt xact resolution Используйте параметр для управления результатом транзакций по умолчанию, которые не удается разрешить координатор распределенных транзакций Майкрософт (MS DTC). Неспособность разрешать транзакции может быть связана с временем простоя MS DTC или неизвестным результатом транзакции во время восстановления.

В следующей таблице перечислены возможные значения результатов для разрешения сомнительных транзакций.

Значение результата Description
0 Без предположения. Восстановление завершается ошибкой, если MS DTC не может устранить какие-либо неуверенные транзакции.
1 Предположить фиксацию. Предполагается, что любые транзакции MS DTC с сомнениями фиксируются.
2 Предположить прерывание. Предполагает, что любые транзакции MS DTC с сомнениями прерваны.

Чтобы свести к минимуму вероятность увеличения времени простоя, администратор может выбрать с помощью этого параметра либо предположительную фиксацию, либо предположительное прерывание, как показано в приведенном ниже примере.

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'in-doubt xact resolution', 2; -- presume abort
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'show advanced options', 0;
GO

RECONFIGURE;
GO

Кроме того, администратор может не менять значение по умолчанию (без предположения) и допустить сбой восстановления, то есть, как показано в приведенном ниже примере, он будет узнавать о сбое DTC.

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'in-doubt xact resolution', 1; -- presume commit
GO

RECONFIGURE;
GO

ALTER DATABASE pubs SET ONLINE -- run recovery again
;
GO

EXECUTE sp_configure 'in-doubt xact resolution', 0 -- back to no assumptions
;
GO

EXECUTE sp_configure 'show advanced options', 0;
GO

RECONFIGURE;
GO

Этот in-doubt xact resolution параметр является дополнительным вариантом. Если для изменения параметра используется системная sp_configure хранимая процедура, можно изменить in-doubt xact resolution только в том случае, если show advanced options задано значение 1. Параметр вступает в силу сразу без перезапуска сервера.

Примечание.

Согласованная конфигурация этого параметра во всех экземплярах SQL Server, участвующих в любых распределенных транзакциях, помогает избежать несоответствий данных.