Проблема: Як я можу запустити розподіленого координатора транзакцій (DTC) на всіх серверах групи AlwaysOn Availability Group (AG)? Мені НЕ потрібно підтримувати транзакції над подіями відмови / перемикання.
Налаштування: у мене є кластер Windows Failover (WSFC) з трьома серверами Windows 2008 R2, де всі вони працюють під керуванням SQL 2012. Два сервери знаходяться в одному центрі обробки даних і є частиною кластера AliloOn Failover (FCI), тоді як третій сервер знаходиться в другий центр обробки даних. WSFC - це кластер з кількома підмережами. Ось ескіз налаштування:
Мені вдалося встановити і налаштувати DTC для роботи між двома вузлами FCI, оскільки вони знаходяться в одній підмережі і діляться сховищем. Я налаштував пару АГ, і вони працювали чудово. На цьому екрані зображено DTC, встановлений на FCI:
Цей знімок екрана показує, що я можу налаштувати DTC на одному з вузлів FCI (залежно від того, який із них активний):
Я хотів би перенести додаток, що використовує DTC, на цей кластер і використовувати AG. Я читав, що DTC не підтримується з AG ( Reference ). Мені не вдалося знайти спосіб налаштування DTC на третьому вузлі у другому центрі обробки даних. Коли я намагаюся налаштувати DTC на третьому вузлі, він здається недоступним, як показано на цьому скріншоті:
У списку безкоштовних програм PDF Brent Ozar для груп доступності він перераховує:
Встановлення кластера ...
29. Якщо залучений FCI, налаштуйте DTC згідно з рішеннями розділу планування.
У коментарях до SQL Server 2012 групи AlwaysOn доступності Rock Brent говорить, що "... нічого не змінюється, коли АГ граються. Просто пам’ятайте, що бази даних групи доступності не підтримують послідовність транзакцій, коли вони не вдавалися разом до іншої репліки. .. "
Таким чином, здається, що DTC можна використовувати в групах доступності до тих пір, поки ви розумієте, що транзакції не будуть підтримуватися при перемиканні AG. Мені це не потрібно для підтримки транзакцій з вузлів FCI. Мені просто знадобиться DTC, доступний для використання додатком у випадку катастрофічної катастрофи (де я втратив основний центр обробки даних).
Як налаштувати DTC на третьому вузлі? Або це так, що мені просто не пощастило, коли справа стосується використання АГ та додатку, який потребує DTC?
ОНОВЛЕННЯ: Рішення, на якому я вирішив, полягає у використанні доставки журналів. Однак, у випадку відмови, мені все одно потрібен DTC, щоб він був доступний у Node3. Я виявив, що він стає доступним, видаляючи кластерний екземпляр MSDTC-MSSQLSERVERCLU DTC, який поділяється між Node1 та Node2. Після видалення я можу встановити і налаштувати екземпляр LocalDTC на Node3. Після цього я можу знову встановити кластерний екземпляр MSDTC-MSSQLSERVERCLU. Виконання послідовності встановлення в такому порядку, здається, працює. Я так мало бігав зараз і не виявив жодних поганих наслідків. Схоже, це також буде працювати для роботи групи AlwaysOn Availability. Я розумію, що розподілені транзакції не зберігатимуться в аварійному режимі, мені просто знадобляться нові, щоб працювати після відмови. Але я не маю