MSDTC в всегда в группах доступности

Компания, в которой я работаю, хотела бы использовать архитектуру групп доступности всегда в нашем приложении, поддерживаемом SQL Server. У нас есть 3 базы данных сразу после установки, и одна из них разделена по конфигурации, в настоящее время мы используем MSDTC для координации транзакций между ними, т. е. если фиксация в базах данных A и B и фиксация A завершаются успешно, сбой на B означает откат на А и В, а не просто Б.

Мы столкнулись с проблемой, когда увидели эту статью

Насколько я понимаю, это в основном означает, что MSDTC не поддерживается в режиме группы Всегда в наличии. Я не мог найти замену этому в SQL Server 2012

Итак, мои вопросы:

  1. Какие у нас есть варианты (изменение продукта / кода на полке или с открытым исходным кодом)?
  2. Как конкретно влияет запуск MSDTC в этом параметре (полные сбои / пропущенные транзакции)?

Заранее спасибо, ваша помощь очень ценится. жук

1 ответ

Решение

Недавно я задавал похожий вопрос по адресу: https://dba.stackexchange.com/questions/47108/alwayson-ag-dtc-with-failover

> Какие у нас есть варианты (изменение продукта / кода на полке или с открытым исходным кодом)?

Я думаю, у вас есть два варианта:

  1. Измените свое приложение так, чтобы оно не нуждалось в DTC.
  2. Измените настройки базы данных, чтобы она не использовала группы доступности.

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

Мой вывод заключается в том, что это возможно, чтобы это работало. Но это не просто сделать, и это ставит вас в неподдерживаемую ситуацию, что для нас неприемлемо. Поэтому я планирую посмотреть на использование доставки журналов и перейти от горячего резервирования (с зеркалированием) или горячего резервирования (с доставкой журналов).

Как конкретно влияет запуск MSDTC в этом параметре (полные сбои / пропущенные транзакции)?

Если вы решите использовать DTC с группами доступности или зеркалированием, вы рискуете получить поврежденные / несогласованные данные в сценарии отработки отказа. Статья, которую вы цитировали, дает хороший пример того, как это может произойти.

Следует признать, что с доставкой журналов может возникнуть та же проблема. Аргумент, который я планирую выдвинуть, заключается в том, что с доставкой журналов у нас будет возможность перейти к определенному моменту времени, и мы можем быть уверены, что мы перейдем только к моменту времени, когда мы знаем, что все согласовано.

Коммерческое приложение, которое мы используем, не поддерживает высокую доступность. Это наша попытка сделать его очень доступным.

Другие вопросы по тегам