Основной принцип отказоустойчивости это когда сущность нашего сервиса заключена в кластер, который имеет несколько реплик в зеркале, то есть имеет главную и дополнительную ноду (сервер), которая перехватит работу сервиса в случае выхода из строя главной ноды.
Для организации отказоустойчивости базы данных мы будем использовать три сервера с предустановленной операционной системой Microsoft Windows Server 2019 Standard, на которых мы развернем Microsoft SQL 2022 Enterprise Edition с функцией групповой доступности Always On.
Первое, что нам необходимо сделать, это завести все наши сервера в домен и выполнять все настройки из-под доменного администратора.
Следующим этапом мы настроем кластер отказоустойчивости на серверах (Windows Server Failover Cluster (WSFC)).
Для развертывания кластера нам необходимо на всех наших серверах установите необходимый компонент с помощью Windows PowerShell:
Install-WindowsFeature –Name Failover-Clustering –IncludeManagementTools
После чего может потребоваться перезагрузка сервера.
Далее настройка кластера будет осуществляется на одном из серверов, который мы будем считать главным.
С помощью диспетчера серверов открываем Диспетчер отказоустойчивости кластеров.
В диспетчере нажимаем правой клавишей мыши и выбираем создать кластер.
Перед нами откроется мастер создания кластеров.
В следующем окне нам необходимо добавить все сервера, на которые мы устанавливали диспетчер отказоустойчивого кластера.
Далее нам будет предложена проверка конфигураций.
После прохождения всех тестов нам предложат выбрать имя для нашего кластера.
В следующем окне просто снимите галочку с пункта добавления всех доступных хранилищ в кластер.
На этом установка кластера завершена, переходим к настройке.
Проверяем, что узлы кластера собраны.
После открываем свойства сети и задаем общий статический ip адрес кластеру.
Теперь нам нужно настроить свидетеля кворума, который будет определять лидера (главную ноду) после отключения главного сервера.
Мы будем использовать файлового свидетеля, который будет размещается на отдельном сетевом ресурсе, не входящий в наш кластер. Для хранения свидетеля я выбрал контроллер домена.
Еще раз убеждаемся, что кластер работает правильно.
И переходим непосредственно к установке Microsoft SQL 2022 Enterprise Edition.
Установку производим на том же главном сервере, где осуществляли настройку кластера.
Запускаем установщик и выбираем пункт «Новая установка отказоустойчивого кластера SQL Server»
Далее вводим ключ продукта. Можно развернуть и Microsoft SQL 2022 Standard Edition, но он имеет ряд ограничений, например, таких как количество серверов в кластере, только два.
После ввода ключа, ставим галочку «У меня есть только лицензия SQL Server» и жмем “Далее” до окна выбора компонентов. Выбираем компоненты необходимые для работы базы данных.
Следующим этапом выбираем общее имя для наших серверов баз данных. И жмем “Далее” до окна Конфигурация сети кластера.
В конфигурации сети снимаем галочку с DHCP и задаем общий статический ip адрес для нашего кластера SQL.
В окне Конфигурация сервера необходимо добавить доменного администратора в пункты «Агент SQL Server» и «Ядро СУБД SQL Server».
В следующем окне на первой вкладке добавляем пароль для пользователя sa и добавляем текущего пользователя, администратора домена, который также будет обладать привилегированными правами при работе с базой данных.
На вкладке Каталоги данных добавляем пути к сетевому ресурсу, где будет храниться наша общая база данных. Кроме сетевого ресурса имеется возможность использовать пулы дисков, создаваемые в отказоустойчивом кластере, но данная функция доступна только в операционных системах семейства Windows Server DataCenter.
Соглашаемся с проверкой.
И приступаем к установке.
После завершения установки переходим к двум оставшимся серверам и запускаем установщик Microsoft SQL 2022 Enterprise Edition. Выбираем пункт «Дополнительные узлы в отказоустойчивый кластер SQL Server».
Жмем «Далее» на всех открывающихся пактах установки, установщик сам определит необходимые параметры для подключения к кластеру баз данных, единственный момент в окне Конфигурация сервера необходимо будет прописать пароли для доменного администратора.
Следующим этапом нам необходимо настроить сервера для удаленного подключения к серверу баз данных.
Создаем правило в Брандмауэр. Для этого заходим в Панель управления – Система и безопасность.
И выбираем Брандмауэр Защитника Windows
Открываем «Дополнительные параметры»
Переходим на вкладку «Правила для входящих подключений» и нажимаем «Создать правило…»
Выбираем «Для порта» и вписываем порт 1433, далее разрешаем подключение для всех профилей.
Пишем название правила и нажимаем «Готово»
Настройка порта в SQL Server.
Открываем меню «Пуск» и запускаем SQL Server 2022 Configuration Manager.
Далее переходим в меню Протоколов и на пункте TCP/IP открываем свойства.
Включаем нужные нам сетевые интерфейсы.
Перезагружаем SQL Server и отказоустойчивый кластер баз данных готов.