Автор: Вячеслав
Технология AlwaysOn в MS SQL Server предназначена на повышения доступности ваших баз данных, еще один шаг к отказоустойчивости системы. Появилась она с версии MS SQL Server 2012 и предрекала в будущем замену технологии зеркалирования. Но уже сейчас видим, что в MS SQL Server 2014 присутствуют технология зеркалирование и технология AlwaysOn. Что очень радует.
В технологии AlwaysOn присутствуют элементы сразу несколько технологий высокой доступности сервера MSSQL Server:
- Кластеризация
AlwaysOn как и кластер MS SQL Server имеет общее имя и IP- адрес для экземпляров MS SQL Server , так же технология AlwaysOn работает как кластерная служба Windows. Для подключения клиентов к базе данных необходимо указать только один IP адрес.
- Зеркалирование
В технологии AlwaysOn за основу взята технология зеркалирования MS SQL Server. Присутвует первичная реплика и до 4(3 в синхронном режиме) вторичных реплик(в MS SQL Server 2014 до 8 реплик). Возможен режим работ реплик: асинхронный и синхронный.
- Доставка журналов (log shipping)
На вторичные реплики при инициализации база данных доставляется как при log shipping –е, т.е автоматически делается полная резервная копия и журнал транзакций на общий ресурс и автоматически восстанавливается на вторичной реплике. Вторичные реплики доступны для чтения данных, как и при доставке журналов.
Небольшой перечень преимуществ технологии AlwaysOn:
— поддерживается автоматический переход на вторичные реплики
— вторичные реплики возможно использовать для чтения данных
— вторичные реплики возможно использовать для снятия резервных копий без создания нагрузки на первичную реплику
— поддерживается автоматическое восстановление страниц
-нет необходимости использования общего дискового пространства для баз данных (для гео-кластеров это исключает использование лицензии для репликации СХД к примеру на оборудование HP)
Итак, изучив немного теории и узнав преимущества технологии MS SQL Server
AlwaysOn, постараемся его настроить.
Необходимые требования:
1)Windows кластер (WSFC) — MS SQL Server AlwayOn настраивается на windows кластере
2)MS SQL Server редакции Enterprise, который должен быть установлена на каждом узле Windowsкластера(WSFC).
3)Наличие AD. Без этого и WSFC не настроите.
4) На установленных MS SQL Server-ах должны быть настроены одинаковые параметры сортировки
Более подробно об ограничениях и возможностях написано на сайте MSDN.
После установки MS SQL Server, необходимо включить поддержку AlwaysOn High Availability Groups на узлах кластера: открываем SQL Server Configuration Manager, выбираем вкладку «AlwaysOn High Availability » , активируем параметр «AlwaysOn High Availability Groups».
Заодно здесь проверяем еще раз, работает ли MS SQL Server под доменной учетной записью.
Теперь создадим саму группу AlwaysOn.
Открываем вкладку AlwaysOn High Availability, щелкаем правой кнопкой на «Availability Groups» выбираем «New Availability Group Wizard».
Указываем название группы доступности:
Под данным именем будет работать кластерная группа AlwaysOn , а так же служить именем для управлением доступности.
В следующем окне , выбираем базы , которые будут включены в группу доступности. Если базу данных нельзя включить в группу, то справа будет описана причина невозможности включения в группу.
Далее необходимо включить реплики в группу AlwaysOn их настройки:
На данном изображении указаны, что сервер srv1\sql2012 является первичной репликой, srv2\sql2012 -вторичная реплика, настроена автоматическая обработка отказов(Failover) в обоих направлениях, режим работы синхронный и реплики доступны для чтения.
Во вкладке «Endpoints» указываются настройки конечных точек зеркалирования , их порты и возможность шифрования передаваемых данных:
В следующей вкладке указываются настройки возможности снятия резервных копий:
Желательно указать возможность снятия с любой реплики, либо наоборот ограничить снятия резервной копии с важной реплики или там , где ограничен канал передачи резервной копии.
Следующая вкладка, очень важная — указывается имя прослушивателя, т.е сетевое имя к которому будут подключаться пользователи, его порт и IP адрес.
Необходимо указать имя прослушивателя и присвоит ему свободный IP адрес, желательно статистический не DHCP адрес. Порт так же лучше указать стандартный MS SQL server-ый 1433, либо в целях безопасности другой.
Если ноды Windows кластера находятся в разных подсетях, то нужно указать два IP адреса.
В следующем окне указываем сетевое имя каталога, куда будут создаваться копии баз данных для инициализации группы доступности AlwaysOn.
Возможно указать, что резервные копии там есть, либо вообще пропустить данный пункт.
В следующем окне идет проверка указанных параметров
После этого создается группа доступности.
Группа доступности AlwaysOn создана
Предупреждение указанное на скриншоте, сообщает о неточной конфигурации права голоса кворума.
Данное сообщение появляется при настройке AlwayOn на серверах на ОС Windows2008r2. Для решения данной неточности необходимо скачать обновлении KB2494036. Его нужно установить на всех нодах WFCS . а установить параметры голосов на одной из нод.
Только в описании указано устанавливать параметр голоса 0, но у меня с данным параметром на заработало, а заработало с параметром 1. В результате на запрос :
SELECT member_name, member_state_desc, number_of_quorum_votes
FROM sys.dm_hadr_cluster_members;
Параметр number_of_quorum_votes должен показывать 1 для всех нод и свидетеля кластера. В Window 2012 данные параметры устанавливаются сразу .
Так же еще одно важное замечание , при создание имя прослушивателя группы доступности AlwaysOn (в примере это “alwayslistener1”), регистрируется DNS имя компьютера в оснастке AD в каталоге Computers. Для этого кластерное имя должно имеет полные права на создание объекта в данном каталоге. Права выставляются в консоли ADSI
После создания группы доступности, у нас в консоли кластера появился сервис нашей группы доступности:
Но, не управляйте группой доступностью AlwaysOn через оснастку кластерной службы.
Управление группой AlwaysOn происходит в MS SQL Server Management Studio, правая кнопка на объекте «AlwaysOn High Availablity» выбрать «ShowDashboard»
Основные параметры:
1 – Название группы доступности
2 – Имя прослушивателя
3 – Статус группы доступности
4 – Тип Failover –а
5 – Статус первичной реплики
6 – Статусы баз данных в группе доступности
7 — Переключение на вторичную реплику
upd. 13.07.2016
еще одно важный шаг был пропущен.
Чтобы использовать вторичные реплики только для чтения для коннектов с параметром подключения
applicationintent=readonly
необходимо настроить роутинг.
На каждой реплики группы доступности AlwaysOn выполняет скрипт:
ALTER AVAILABILITY GROUP [srv_alwaysOn Group]
MODIFY REPLICA ON
‘srv1’ WITH
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=(‘srv2,’srv1’)));
ALTER AVAILABILITY GROUP [srv_alwaysOn Group]
MODIFY REPLICA ON
‘srv2′ WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N’TCP://srv1.domain.net:1433’));
После этого можно проверить коннект только для чтения, запускаем MS SQL Management Studio, указываем прослушиватель и открываем меню Options, добавляем строку
Initial Catalog=DB NAME;ApplicationIntent=ReadOnly;
где «DB NAME» — это база данных которая находится в группе доступности с репликой для чтения.
После успешного подключения проверяем нахождения нашего коннекта:
select SERVERPROPERTY (‘ComputerNamePhysicalNetBIOS’)
в результате должны получить имя сервера с вторичной репликой.
С основными моментами настройки группы доступности AlwaysOn разобрались. В следующей статье опишу основные операции с группой доступности AlwaysOn.
Высокой доступности Вам!