Распределение нагрузки при помощи AlwaysOn

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

В системе Docsvision группа доступности AlwaysOn используется, чтобы снизить нагрузку на сервера баз данных за счет переадресации некоторых операций чтения к репликам. Docsvision самостоятельно выбирает самую новую реплику для работы, а если такой нет, получает данные с мастера.

Реплики используются при следующих операциях:
  • При получении данных карточек.

  • При выполнении отчёта с признаком "Только чтение".

  • При выполнении поисковых запросов.

  • При получении представлений.

Чтобы использовать данные возможности, нужно:
  1. Настроить AlwaysOn в Microsoft SQL Server.

  2. Включить поддержку AlwaysOn в системе Docsvision.

Настройка группы доступности выполняется после создания БД Docsvision (её нужно будет выбрать при настройке).

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

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

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

  • Microsoft SQL Server 2014 или выше с редакцией 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 (можно настроить после установки). Данная учётная запись должна быть включена в локальную группу безопасности Администраторы. Рекомендуется для всех узлов указывать одну учётную запись.

  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 в Docsvision

  1. Откройте Консоль настройки Docsvision

  2. Перейдите в раздел Настройки сервера  Базы данных.

  3. Выберите настраиваемую базу данных, для которой необходимо включить режим AlwaysOn, и нажмите кнопку Настройки. Будет открыто окно Свойства и управление базой данных.

    БД должна быть включена в группу доступности AlwaysOn с ролью Primary.

  4. Перейдите на вкладку AlwaysOn.

  5. Установите флаг Использовать AlwaysOn.

    Настройки AlwaysOn в Консоли настройки Docsvision
    Рисунок 12. Настройки AlwaysOn в Консоли настройки Docsvision
  6. Из списка доступных реплик, выберите реплики, которые могут использоваться сервером Docsvision.

    Основной сервер в списке не отображается.

  7. Нажмите на кнопку OK.

После сохранения настроек выбранные реплики появятся в СУБД Microsoft SQL в таблице "dvsys_replica_servers".

Для проверки настроек репликации можно использовать стандартное представление сервера Microsoft SQL "sys.dm_hadr_database_replica_states".

При отказе primary-сервера Microsoft SQL и назначении роли secondary-сервера Microsoft SQL на primary в группе доступности, необходимо самостоятельно переподключить Docsvision на работу с новым primary-сервером Microsoft SQL (автоматический переход не осуществляется).