Размещение БД Microsoft SQL в группе доступности AlwaysOn

AlwaysOn — решение Microsoft SQL Server, которое даёт одну из следующих возможностей:
  1. Распределять нагрузку через группы доступности с целью обеспечения высокой доступности и возможности аварийного восстановления, см. подробнее в разделе "Настройка группы доступности".

  2. Создавать отказоустойчивый кластер. Функциональность отказоустойчивых кластеров AlwaysOn в Docsvision напрямую не поддерживается, подробнее см. подробнее в разделе "Создание отказоустойчивых кластеров с функцией AlwaysOn".

Включение поддержки AlwaysOn в Docsvision описано в документации Консоли управления Docsvision, см. раздел Распределение нагрузки.

Для использования функции распределения нагрузки AlwaysOn в Docsvision требуется лицензионная опция Docsvision Кластер AlwaysOn. Использование функции без лицензии приведёт к ошибке. Лицензия не требуется для функциональности "отказоустойчивый кластер AlwaysOn".

Требования для использования AlwaysOn

Требования для использования AlwaysOn:
  • Отказоустойчивый кластер Windows (WSFC) — Microsoft SQL Server AlwayOn настраивается в кластере Windows, при этом экземпляры SQL Server могут быть без кластеризации.

  • Microsoft SQL SQL Server 2016 или выше с редакцией Enterprise Edition — должен быть установлен на каждом узле кластера.

  • Наличие Active Directory.

Полный список требований приведён на сайте Microsoft.

Настройка группы доступности

Чтобы настроить группу доступности:
  1. Создайте отказоустойчивый кластер Windows Server. В кластер должен быть включён узел с установленным Microsoft SQL Server с БД Docsvision.

    Инструкция по настройке кластера Windows Server приводится в первой части статьи SQL Server 2016 Step by Step: Creating AlwaysOn Availability Group.

  2. Установите Microsoft SQL Server на другие узлы кластера.

    • У всех экземпляров Microsoft SQL Server должны быть настроены одинаковые параметры сортировки SQL Server (Collation).

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

    • При установке нужно указать доменную учётную запись для запуска службы Microsoft SQL Server (можно настроить после установки). Данная учётная запись должна быть включена в локальную группу безопасности Администраторы. Рекомендуется для всех узлов указывать одну учётную запись.

    • Вытеснение файлов в Filestream хранилище в базе данных Docsvision и FileStream хранилище во внешней базе данных Microsoft SQL Server поддерживается только для СУБД Microsoft SQL и только, когда сервер Docsvision работает под ОС Windows. При работе сервера под ОС Linux функциональность недоступна.

  3. Выполните следующие шаги 4 — 6 на всех узлах.

  4. В настройках брандмауэра разрешите подключения на порт 5022 (требуется для работы AlwaysOn).

  5. В настройках Microsoft SQL Server включите использование протоколов Shared Memory, Named Pipes и TCP/IP.

    Настройки протоколов в конфигурации Microsoft SQL Server
    Рисунок 1. Настройки протоколов в конфигурации Microsoft SQL Server
  6. Убедитесь, что в настройках службы SQL Server (в SQL Server Configuration Manager), в т.ч. и на основном сервере, указана одна (рекомендуется) доменная учётная запись для запуска службы. Если указана локальная учётная запись — измените.

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

    • У учётной записи должен быть доступ к SQL Server других узлов (обычно обеспечивается использованием общей доменной записи для всех экземпляров SQL Server).

      Настройки службы SQL Server
      Рисунок 2. Настройки службы SQL Server
  7. На всех узлах в настройках службы Microsoft SQL Server (в SQL Server Configuration Manager) включите поддержку AlwaysOn.

    Настройка поддержки AlwaysOn в конфигурации службы Microsoft SQL Server
    Рисунок 3. Настройка поддержки AlwaysOn в конфигурации службы Microsoft SQL Server
  8. Создайте полную резервную копию БД Docsvision (и сателлитных БД, если используются).

  9. Выполните шаги 10 — 17, чтобы создать группу доступности AlwaysOn с помощью Microsoft SQL Server Management Studio на основном сервере Microsoft SQL.

  10. Вызовите команду New Availability Group Wizard из контекстного меню узла Always On High Availability.

    Команда создания группы доступности
    Рисунок 4. Команда создания группы доступности

    Будет запущен мастер.

    Мастер создания группы доступности
    Рисунок 5. Мастер создания группы доступности, начальная страница
  11. На странице Specify Options укажите название группы. Например, DocsvisionDBs. Другие параметры изменять не требуется.

    Мастер создания группы доступности
    Рисунок 6. Мастер создания группы доступности, указать название группы доступности
  12. На странице Select Databases выберите БД Docsvision, которые нужно включить в группу доступности.

    Мастер создания группы доступности
    Рисунок 7. Мастер создания группы доступности, выбор БД для группы

    Если архивные данные, системные данные и/или журналы вытеснены из базы данных Docsvision, рекомендуется данные БД также включить в группу доступности.

    Внешние (сателлитные) БД имеют названия:
    • Название-БД-Docsvision_Archive — для архивных данных.

    • Название-БД-Docsvision_Metadata — для системных данных.

    • Название-БД-Docsvision_Log — для журналов работы.

  13. На странице Specify Replicas настройте параметры реплик.

    • Добавьте сервера Microsoft SQL, на которых будут располагаться реплики: нажмите кнопку Add Replica…​ и укажите параметры подключения к серверу.

    Для всех экземпляров серверов:
    • Установите флаг Automatic Failover (Up to 3).

    • Availability Mode переключите в Synchronous commit.

    • Readable Secondary переключите в Yes.

      Мастер создания группы доступности
      Рисунок 8. Мастер создания группы доступности, выбор экземпляров серверов
      Не изменяйте настройки на вкладке Listener.
  14. На странице Select Data Synchronization оставьте переключатель в значении Automatic seeding (доступность варианта зависит от версии Microsoft SQL Server).

    Мастер создания группы доступности
    Рисунок 9. Мастер создания группы доступности, выбор настроек синхронизации данных
  15. При переходе на страницу Validation будет выполнена проверка создания группы доступности.

    Мастер создания группы доступности
    Рисунок 10. Мастер создания группы доступности, проверка создания группы
    Проигнорируйте предупреждение Checking the listener configuration.
  16. На странице Summary нажмите Finish, чтобы создать группу доступности.

  17. Завершите работу мастера.

    Состояние группы доступности можно посмотреть на панели мониторинга.
    Панель мониторинга группы доступности
    Рисунок 11. Панель мониторинга группы доступности

    Дополнительная информация по настройке группы доступности AlwaysOn приведена в интернете.

Создание отказоустойчивых кластеров с функцией AlwaysOn

Для использования функциональности "отказоустойчивый кластер AlwaysOn" дополнительная опция лицензии не требуется.

Включать флаг Использовать AlwaysOn также не требуется.

Отказоустойчивый кластер AlwaysOn напрямую не поддерживается. Использование данной функциональности технически возможно, но вызовет ряд трудностей.

В Docsvision из соображений быстродействия часть таблиц БД вынесены из основной базы и хранятся в TempDB. TempDB используется для хранения большинства временных данных, включая курсоры представлений, результаты поисков, и т.п. При необходимости данный режим по умолчанию может быть изменён.

Если требуется сократить ручное вмешательство при аварийных переключениях и сохранить между узлами данные из tempdb, используйте другие варианты конфигурации баз данных:
  • Разместите резервные данные в сателлите _Metadata. В таком случае потребуется также настроить отражение этой базы вместе с основной базой.

  • Включите режим размещения всего в основной базе (такая конфигурация использовалась до версии 5.4 включительно).

Обратите внимание, что это менее производительные режимы, которые приведут к снижению производительности!