Многоуровневый SQL-сервер с группами высокой доступности

У нас есть два сервера (SQL-ATL01, SQL-ATL02), которые составляют отказоустойчивый кластер, каждый из которых работает как часть группы высокой доступности SQL Server (HAG). Каждый сервер имеет две сетевые карты. Одна из них - это карта 10Gbit, которая напрямую подключена к другому серверу и используется для синхронизации HAG в подсети 192.168.99.x. Другая - 1 Гбит карта, которая используется для подключения серверов БД к коммутатору для связи с серверами приложений в подсети 10.0.0.x. Слушатель указывает на подсеть 192.168.99.x.

Мы хотим добавить третий сервер (SQL-NYC01) в другое физическое местоположение в кластер и запустить его как часть реплики Async для HAG, но VPN только маршрутизирует трафик в подсети в сети 1Gbit.

Есть ли способ настроить отказоустойчивый кластер и группу высокой доступности, чтобы сказать это:

  • Отправить синхронный трафик реплики для SQL-ATL01 <-> SQL-ATL02 через 192.168.99.x
  • Отправить асинхронный трафик реплики для (SQL-ATL01, SQL-ATL02) <-> SQL-NYC01 более 10.0.0.x

Или нам нужно, чтобы весь трафик реплики поступал в один и тот же IP-адрес/подсеть?

Ответ 1

Есть способ сделать это, иначе это будет серьезным недостатком.

Перед началом работы вы должны создать резервные копии и восстановить БД, чтобы вы могли использовать начальный тип синхронизации данных, будет JOIN ONLY (поскольку у вас есть только 1Gbit-узел).

join only - начать синхронизацию, если вы уже создали резервные копии и восстановили на всех вторичных репликах

Чтобы облегчить мне жизнь, я предполагаю некоторые IP-адреса, которые вы можете легко адаптировать:

sync node: SQL-ATL01 192.168.99.1
sync node: SQL-ATL02 192.168.99.2
async node: SQL-NYC01 10.0.0.10
  1. Перейдите в свойства SQL Server (на SQL-ATL01) и щелкните правой кнопкой мыши по серверной службе sql и щелкните по свойствам - там найдите вкладку AlwaysOn High Availability и проверьте, есть ли в группе доступности AlwaysOn ячейки checbox Enable (вы увидите, выше. После изменения этого свойства вам необходимо перезапустить службы SQL. Сделайте это для обеих реплик SQL-ATL02 и SQL-NYC01.
  2. Теперь запустите студию управления SQL Server и подключитесь к первичной реплике, которая, вероятно, является SQL-ATL01 (на основе ее имени). Щелкните правой кнопкой мыши на AlwaysOn High Availability и выберите мастер (первый вариант). Вы увидите окно мастера, в котором вы увидите обзор, что вы можете сделать - вы можете нажать следующую кнопку.
  3. Сначала вы укажете имя группы доступности, например, SQLAG (AG как группа доступности)
  4. Затем вам нужно указать базы данных, которые будут включены. Выберите тот, который вы хотите.
  5. Теперь перейдем к ядру (укажите реплики). Здесь мы будем работать с вкладками Replicas и Listener.

    Начиная с Replicas вам нужно добавить свои реплики (я пишу только важные/измененные столбцы):

╔═══╦═══════════════════╦═════════════════╦═════════════════════╦══════════════════════╗
║   ║ Server Instance   ║ Initial Role    ║ Automatic Failover  ║   Synchronous commit ║
╠═══╬═══════════════════╬═════════════════╬═════════════════════╬══════════════════════╣
║ 1 ║ SQL-ATL01         ║ Primary         ║ Checked             ║ Checked              ║
║ 2 ║ SQL-ATL02         ║ Secondary       ║ Checked             ║ Checked              ║
║ 3 ║ SQL-NYC01         ║ Secondary       ║ Unchecked           ║ Unchecked            ║
╚═══╩═══════════════════╩═════════════════╩═════════════════════╩══════════════════════╝

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

  1. Теперь на вкладке Listener Нажмите "Создать прослушиватель группы доступности". Вы должны указать DNS-имя для Listener, например, SQLAGListener, выбрать порт (по умолчанию - 1433) и сетевой режим → Static IP.

Теперь нажмите кнопку " add где вы выбираете свои подсети и IP-адрес:

╔═══╦═════════════════╦═════════════════════════════╗
║   ║ Subnet          ║ IP Address                  ║
╠═══╬═════════════════╬═════════════════════════════╣
║ 1 ║ 192.168.99.0/24 ║ 192.168.99.1 192.168.99.2   ║
║ 2 ║ 10.0.0.0/24     ║ 10.0.0.10                   ║
╚═══╩═════════════════╩═════════════════════════════╝

Затем нажмите Далее.

  1. Первоначальная синхронизация данных Как указано в начале, так как у вас есть узел 1 Гбит/с, я бы рекомендовал использовать Join only.

Возможные варианты:

Полный - запуск синхронизации после создания и восстановления резервных копий
Присоединиться - начать синхронизацию, если вы уже создали резервные копии и восстановили все вторичные реплики
Пропустить синхронизацию исходных данных - это используется, если вам все еще нужно создать резервную копию и восстановить копии

  1. Далее будет проверка, которая проверит все ваши настройки. Нажмите "Далее", чтобы перейти к общей странице
  2. Последняя - это страница "Результаты", где вы увидите все проверки, такие как настройка конечных точек, запуск "AlwaysOn_health", создание группы доступности SQLAG, создание группы доступности SQLAGListener и т.д.

Следующий шаг ВАЛИДАЦИЯ

Вы должны увидеть в своей студии управления SQL Server на каждом узле AlwaysOn HA каждый узел SQLAG (SQL-ATL01 (первичный), SQL-ATL02 (вторичный), SQL-NYC01 (вторичный)).

Если вы расширите его, например, SQL-ATL01 вы увидите все реплики в репликах доступности и выбранных базах данных в Базах данных доступности и настроенном прослушивателе (SQLAGListener) в Listeners Group доступности.

Вы также можете проверить диспетчер отказоустойчивых кластеров.

Где вы увидите сконфигурированный прослушиватель SQLAGListener: первичный узел 192.168.99.1 будет показан как онлайн, а остальные - в автономном режиме.

Чтобы просмотреть текущее состояние узлов, вы также можете щелкнуть правой кнопкой мыши по SQLAG (Primary) и показать панель управления. Это может быть сделано для каждого узла и может использоваться для тестирования/просмотра текущего состояния, если вам нужно это сделать.

редактировать

Вы также должны проверить конфигурацию, если ничего не пропустите.