Cluster SQL Server Express не только возможен, но и уже активно работает в продуктивной среде наших заказчиков.
Недавно закончили тестирование конфигурации Cluster SQL Server Express (Кластеризация SQL Server Express) в одной из больших сетей питания. Обратите внимание, что данная конфигурация не поддерживается Microsoft и по мимо того, что необходимо будет выполнять дополнительные действия для установки, всегда могут появиться непредвиденные ошибки. Наш заказчик готов был пойти на риск и только по этой причине мы готовы были установить данное решение.
За время тестирования и эксплуатации боев в работе решения не обнаружено, но есть особенности, которые необходимо понимать (о них я скажу немного позже).
В интернете есть несколько вариантов реализации данного решения, но ни один из них нам не показался интересным, поэтому мы их немного изменили под наши нужды.
Нам понадобится:
- Windows Cluster.
- Требуемое число серверов, которые будут нодами кластера. В нашем случае будет 2 ноды
- Диск/ки, которые будут отданы кластеру для обеспечения отказоустойчивости. Учите, что диски должны быть отданы всем нодам кластера, но в один и тот же момент времени такой диск может быть активен только на одной из них.
- Дистрибутив установки SQL Server Express.
Cluster SQL Server Express по пунктам:
- Как известно SQL Server Cluster устанавливается на готовый Windows Cluster, который может состоять из различного числа Node. По этой причине первым шагом будет установка Windows Cluster
- После установки Windows Cluster необходимо добавить в него требуемое число Node (серверов). Ни в коем случае не подключайте требуемый диск к кластеру на данном этапе. Если вы это сделаете, то stand-alone установка не даст вам установить экземпляр на данный диск.
- Переводим нужный диск на 1 ноде в online режим. Будем подразумевать что данный диск имеет букву E:\
- Теперь приступаем к установке SQL Server Express. Для этого запускаем установку stand-alone экземпляра на 1 ноде. Устанавливаем бинарные данные на диск C:\…, то есть по-умолчанию, а сам экземпляр устанавливаем на диск E:\. Предположим что имя экземпляра мы выбрали SQLEXPRESS.
- Так как это SQL Server Express, то изначально отключен протокол TCP\IP и не выдан порт для экземпляра, необходимо добавить эти опции. Система протестирована на порте по-умолчанию (1433)
- Раз мы хотим добавить зкемпляр в кластер, то параметры запуска службы должны быть установлены в значение manual, чтобы служба не могла запуститься самостоятельно (В оснастке SQL Server Configuration Manager > правая кнопка мышки на экземпляре > Properties > Service > Start mode = Manual)
- Проверяем что экземпляр работает исправно и выключаем его
- Далее переводим диск E:\ в offline на 1 ноде и в online на 2 ноде
- Перед установкой удаляем все системные БД с диака E:\ (master, msdb, model, tempdb), чтобы экземпляр на 2 ноде смог записать туда свои
- Производим stand-alone установку на 2 ноде. Обязательно указать те же пути, что и на 1 ноде (E:\) и тот же инстанс (SQLEXPRESS).
- Так же производим настройку TCP\IP, порта 1433 и режим запуска Manual
- Проверяем что после перезагрузки экземпляр доступен
- Отключаем экземпляр на 2 ноде, переводим диск E:\ в offline
- Пришла пора заняться кластером. Создаём пустую роль
- Добавляем к пустой роли «Cliend Access Point» (правая кнопка мышки на роли > Add Resouce > Cliend Access Point0). Указываем имя, через которое будут подключаться пользователи и ip-адрес
- Далее добавляем диск в кластер, а после в нашу пустую роль
- Теперь пришла пора добавить службу SQL Server Express в нашу роль (правая кнопка мышки на роли > Add Resouce > Generic Service > выбираем нашу службу SQL Server Express)
- Сейчас нужно добавить зависимости для службы SQL Server Express, чтобы в момент переезда ноды служба не запускалась раньше необходимых ресурсов и как следствие не было ошибки запуска. Это делается путём захода в Properties > Dependencies и добавление туда диска, имени и ip
- Так же настройки failover (поведения при сбое) пустой роли по-умолчанию нам показались не жизнеспособными (1 переезд за 6 часов). Рекомендуем выставить другое значение (правая кнопка мышки на роли > Properties > Failvover > выставляем значение в первых двух окошках)
- С настройками закончили, теперь переводим в online все ресурсы кластера. У нас не все ресурсы смогли запустить с первого раза, так как у учётной записи не хватало прав для регистрации имени кластерного ресурса, но после предоставление прав, службы исправно заработали
- Тестируем кластер на возможности переезда с ноды на ноду
Вернёмся к особенностям работы данного решения:
- Для SQL Server вы работаете не в режиме кластера, а в обычном stand-alone режиме. Поэтому если вы изменили какие-то ключи реестра или настройки в SQL Server Configuration Manager на одной ноде, то не забудьте поменять их и на второй)
- Так же могут быть нюансы с именем сервера, которое записано в @@SERVERNAME, в нашем случае здесь будет прописана 2 нода. Пока мы не столкнулись с проблемами с этим параметром
- Объём памяти и скорость процессора так же стоит учесть
*** *** *** *** *** *** *** *** *** *** *** ***
Полезные Скрипты
Рубрика Проверь себя
Ссылка на наш канал YouTube