AlwaysOn AG, DTC с аварийным переключением


14

Проблема: Как запустить координатор распределенных транзакций (DTC) на всех серверах группы доступности AlwaysOn (AG)? Мне НЕ нужно поддерживать транзакции по событиям отработки отказа / переключения.

Установка: у меня есть отказоустойчивый кластер Windows (WSFC) с тремя серверами Windows 2008 R2, на которых все они работают под управлением SQL 2012. Два сервера находятся в одном центре обработки данных и являются частью отказоустойчивого кластера AlwaysOn (FCI), а третий сервер находится в второй дата-центр. WSFC - это кластер с несколькими подсетями. Вот эскиз установки: введите описание изображения здесь

Мне удалось установить и настроить DTC для работы между двумя узлами FCI, поскольку они находятся в одной подсети и совместно используют хранилище. Я настроил пару AG, и они работали нормально. Этот снимок экрана показывает код неисправности, установленный на FCI:

введите описание изображения здесь

Этот снимок экрана показывает, что я могу настроить DTC на одном из узлов FCI (какой бы ни был активен): введите описание изображения здесь

Я хотел бы перенести приложение, использующее DTC, на этот кластер и использовать AG. Я читал, что DTC не поддерживается AG ( ссылка ). Я не смог найти способ настроить DTC на третьем узле во втором центре обработки данных. Когда я пытаюсь настроить DTC на третьем узле, он кажется недоступным, как показано на этом снимке экрана:

введите описание изображения здесь

В контрольном списке бесплатных настроек Brent Ozar для групп доступности он перечисляет:

Установка кластера ...

29. Если задействован FCI, настройте код неисправности в соответствии с решениями вашего раздела планирования.

В комментариях к группам доступности SQL Server 2012 AlwaysOn Рок Брент говорит, что «... ничего не меняется, когда AGs находятся в игре. Просто имейте в виду, что базы данных в группе доступности не поддерживают согласованность транзакций при сбое вместе с другой репликой. ..»

Это создает впечатление, что DTC можно использовать в группах доступности, если вы понимаете, что транзакции не будут поддерживаться при переключении AG. Мне не нужно было бы поддерживать транзакции с узлов FCI. Мне просто нужен DTC, доступный для приложения, чтобы использовать его в случае катастрофической катастрофы (когда я потерял свой основной центр обработки данных).

Как настроить DTC на моем третьем узле? Или это тот случай, когда мне просто не повезло, когда речь идет об использовании AGs и приложения, которому требуется DTC?

ОБНОВЛЕНИЕ: решение, которое я выбрал, состоит в том, чтобы использовать Log Shipping. Однако в случае отработки отказа мне все еще нужно, чтобы код DTC был доступен на узле 3. Я обнаружил, что он становится доступным после удаления кластеризованного экземпляра DTC MSDTC-MSSQLSERVERCLU, который используется совместно между Node1 и Node2. После удаления я могу установить и настроить экземпляр LocalDTC на Node3. После этого я могу переустановить кластерный экземпляр MSDTC-MSSQLSERVERCLU. Выполнение последовательности установки в таком порядке похоже на работу. Я бегал вот так некоторое время и не обнаружил никаких побочных эффектов. Кажется, что это также будет работать для запуска группы доступности AlwaysOn. Я понимаю, что распределенные транзакции не будут сохраняться при аварийном переключении AG, мне просто нужны новые, чтобы работать после аварийного переключения. Но у меня нет

Ответы:


15

Илия. Здесь есть два отдельных вопроса:

1. Поддерживается ли DTC группами доступности AlwaysOn?

Как Microsoft пишет большими буквами, нет. Я полностью понимаю, что вы все равно хотите попробовать, но имейте в виду, что вы сейчас внедряете что-то, что Microsoft просто не будет поддерживать, И вместе используете две отдельные нишевые функции (AG и DTC). Если что-то пойдет не так, вы попадете в мир боли. Это просто не то, о чем я когда-либо думал о попытках в производстве.

Имейте в виду, что если ваши менеджеры узнают, что вы развернули что-то, специально написанное Microsoft крупными буквами: «ВЫ НЕ МОЖЕТЕ ЭТО СДЕЛАТЬ», и у вас возникнет какой-либо сбой, когда вам придется обратиться в службу поддержки Microsoft, вы собираетесь есть некрасивое объяснение.

2. Как настроить DTC в кластере с несколькими узлами и несколькими подсетями?

Прочитайте статью Аллана Хирта о настройке DTC с несколькими экземплярами SQL Server в кластере и обязательно прочитайте все ссылки в этом посте.


Отличная информация в посте Аллана Хирта. Ваше предупреждение убедило меня, что мне не повезло, и я не могу этого сделать
Элайджа В. Ганье
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.