Масштабирование операций чтения в СУБД Microsoft SQL Server
с использованием возможностей технологии AlwaysOn

Кукарцев К.С. (КНИТУ-КАИ)

Технология Microsoft SQL Server AlwaysOn
Технология AlwaysON – решение для репликации данных для обеспечения высокой доступности баз данных Microsoft SQL Server. Впервые была представлена в версии SQL Server 2012 (11.x).
Основные термины:
1. База данных доступности (Availability Database) - база данных, хранящаяся в MSSQL, которая будет реплицирована в группе доступности.
2. Реплика доступности (Availability Replica) – локальный сервер с SQL Server, входящий в группу доступности (Availability Group), обслуживает локальную копию каждой из баз данных, определенную в группе доступности.
3. Группа доступности (Availability Group) – набор из нескольких узлов (реплик доступности), ответственные за обеспечение доступности и целостности реплицированных баз данных.
4. Балансировщик входящий запросов (Availability Group Listener) - виртуальная точка входа, к которой подключается пользователи, и которая в дальнейшем определяет, к какой из реплик будет направлен запрос пользователя
Технология AlwaysOn работает поверх кластера высокой доступности (Windows Server Failover Clustering WSFC) на базе Windows Server, либо без него в некоторых режимах.
Список особенностей системы:
1. До 9 реплик доступности в рамках кластера AlwaysOn
2. Синхронный и асинхронный режим при обмене информациями между первичными и вторичными репликами
3. Автоматическое\Ручное переключение ролей в случае аварии
4. Несколько режимов работы: режим высокой доступности (Failover HA), режим горизонтального масштабирования на чтение (Read-scale AlwaysOn)
5. Режимы резервного копирования: полная копия с основной реплики, полная копия с вторичных реплик, резервная копия транзакций (Transaction Log)
6. Сжатие и шифрование баз данных
7. Полное управление AlwaysOn кластером с помощью графического интерфейса (SQL Management Studio), либо с помощью диалекта SQL (T-SQL), а также PowerShell

Механизм работы AlwaysOn в качестве горизонтально масштабируемого хранилища на чтение
Все узлы добавляются в отказоустойчивый кластер WSFC (желательно, чтобы был поднят локальный домен). Далее посредством оснастки SQL Management Studio или T-SQL настраивается группа доступности и в нее добавляются реплики доступности. После определяется, какие конкретные базы данных будут реплицированы. Также важно определить Балансировщик входящий запросов, на который будут приходить запросы, а далее распределяться по репликам. Таким образом, для работы с базой данных, пользователь должен подсоединиться к одному из адресов, определенных для балансировщика, а также в параметрах подключения указать опцию ApplicationIntent=ReadOnly. Данная опция ограничит сессию пользователя на выполнение операций исключительно чтения, что обезопасит вторичные реплики, и они смогут полностью обслуживать запросы.

Анализ выбора технологии AlwaysOn в качестве горизонтально масштабируемого хранилища на чтение
Microsoft SQL Server - коммерческое решение, имеющее долгую историю и богатый опыт эксплуатации, данное программное обеспечение высоко оценено всеми видами бизнеса. Несмотря на то, что существуют множество других решений с возможностью более гибкого масштабирования, предлагаемых NoSQL базами данных, люди не готовы отказаться от надежности классических реляционных СУБД.
Исторически Microsoft SQL Server развивалась именно как реляционная СУБД, на данный момент вобрав в себя множество и других возможностей, к примеру, таких как встроенные механизмы аналитики и машинного обучения. Основными причинами, почему MSSQL можно посоветовать для использования в качестве горизонтально масштабируемого хранилища на чтение, можно определить следующие пункты:
1. Встроенные механизмы масштабирования - режим Read-Scale AlwaysOn Availability Group изначально имеет необходимые инструменты для увеличения надежности и производительности базы данных при добавлении новых вторичных реплик
2. Высокая производительность СУБД - MSSQL входит в состав лидеров рынка по производительности операций обработки данных в базах данных
3. Интеграция в существующую инфраструктуру - MSSQL хорошо интегрируется в корпоративную среду, которая в большей степени строится на технологиях корпорации Microsoft. В случае использования Linux-based окружения, MSSQL может быть запущена под ОС Linux.
4. Дружелюбный и понятный интерфейс – в критические моменты, когда высокая вероятность простоя данных, пользователям необходим инструмент, с помощью которого можно понять, что происходит с системой, а также начать шаги к восстановлению. Все необходимые операции для работы с кластером можно выполнить в графическом интерфейсе SQL Management Studio, а если необходимо более гибкое управление, то доступен T-SQL.

МАТЕРИАЛЫ ДОКЛАДА

ВИДЕО ДОКЛАДА: