Пошаговое развертывание AlwaysOn - MS SQL 2012

Пошаговое развертывание AlwaysOn - MS SQL 2012

До появления Microsoft SQL Server 2012 и механизма AlwaysOn, администраторы БД имели только одну не совсем удобную технолонию зеркалирования баз данных в SQL Server от Microsoft (Database Mirroring). Причем (как показала практика тестирования, и об этом не написано в документации) - это НЕ синхронная репликация базы и логов транзакций.

Если вкратце - то мы изучали поведение базы данных при интенсивной записи и различных неисправностях. Какие сбои мы смотрели:

  • Штатное выключение мастер-сервера без уведомления зеркального сервера.
  • Нештатное выключение мастер-сервера.

Как ни странно, именно штатное выключение показало, что есть некоторое различие между зеркалируемыми базами.

Поэтому я бы не советовал использовать Database Mirroring в продуктивных решениях, а обратил бы внимание на технологию AlwaysOn.

Вкратце об AlwaysOn

SQL 2012 AlwaysOn - удобное решение, обеспечивающее отказоустойчивость базы данных без необходимости иметь Shared Storage. Настройка AlwaysOn достаточно проста, и на самом деле большая часть работы заключается в настройке Failover Cluster на базе Windows 2008 R2/2012. Ведь именно с этих операционных систем появилась возможно строить кластеры с сетевой папкой (Witness Share) для обеспечения кворума.

Аналогичное решение вы уже могли попробовать при работе с Exchange 2010/2013/2016 - Database Availability Group (DAG). Как видите, даже название намекает (AlwaysOn Availability Group) - по сути, это одно и то же.

Обратите внимание на требования для работы AlwaysOn:

  • Вам будет нужна редакция SQL Server 2012 Enterprise.
  • Windows Server Failover Cluster (WSFC) - решение работает на базовой функции Windows Server.
  • Одинаковая кодировка на уровне SQL-сервера для всех участников группы доступности.

Устанавливаем Failover Cluster для SQL 2012 AlwaysOn

  1. В первую очередь, надо установить компонент для операционной системы - WSFC (Windows Server Failover Cluster). Ничего сложного нет, идем в обычную оснастку Server Manager и устанавливаем эту Feature. Никаких подводных камней или особенностей тут нет. Эту службу устанавливаем на оба сервера.

    Установка Windows Server Failover Cluster

  2. Настраиваем теперь сам кластер. Запустите Failover Cluster Manager из консоли Server Manager.
  3. В оснастке Failover Cluster Manager нажмите ссылку\кнопку Validate Configuration… (она есть в разных местах - точно найдете).
  4. На шаге мастера Select Servers or a Cluster добавляем два наших сервера, которые мы будем конфигурировать как реплики.

    Настройка Windows Server Failover Cluster для SQL 2012 AlwaysOn

  5. На шаге Testing Options выбираем Run all tests (recommended).

    Настройка Windows Server Failover Cluster для SQL 2012 AlwaysOn
    В результатах тестирования вы скорее всего получите предупреждения касательно сетевых настроек и разделяемого хранилища. Предупреждение о сетевых настройках говорит о том, что у вас нет выделенных интерфейсов для работы кластера. В принципе, ничего страшного здесь нет. По поводу разделяемого хранилища (Shared Storage) - тоже не стоит беспокоиться, т.к. мы будем использовать сетевую папку.

    Настройка Windows Server Failover Cluster для SQL 2012 AlwaysOnНастройка Windows Server Failover Cluster для SQL 2012 AlwaysOn

  6. На шаге Access Point for Administering the Cluster указываем имя и IP-адрес для кластера.

    Настройка Windows Server Failover Cluster для SQL 2012 AlwaysOn
    Имя кластера, которое вы тут укажете, НЕ нужно самостоятельно прописывать в DNS. Мастер настройки сделает это самостоятельно, а также самостоятельно создаст объект компьютера в Active Directory. Если вы сделаете это заранее вручную - то получите ошибку при создании кластера.
  7. На шаге Confirmation снимите чекбокс Add all eligible storage to the cluster и нажмите Next.

    Настройка Windows Server Failover Cluster для SQL 2012 AlwaysOn
    После создания кластера вы увидите еще одно предупреждение о том, что для кластера не настроен диск-свидетель. Ничего страшного, мы совсем скоро настроим сетевую папку в качестве свидетеля для кворума.

    Настройка Windows Server Failover Cluster для SQL 2012 AlwaysOn

  8. Приступаем к настройке свидетеля. Запускаем Failover Cluster Manager, открываем наш новый кластер, выбираем More Actions и далее выбираем Configure Cluster Quorum Settings….

    Настройка Windows Server Failover Cluster для SQL 2012 AlwaysOn

  9. Запускается мастер Configure Cluster Quorum. Жмем Select the quorum witness.

    Настройка Windows Server Failover Cluster для SQL 2012 AlwaysOn

  10. Выбираем тип свидетеля - сетевая папка.

    Настройка Windows Server Failover Cluster для SQL 2012 AlwaysOn

  11. Указываем путь к нашей папке. Тут надо отдельно сказать о том, что папку вы должны создать самостоятельно. Папка должна находится на 3-м сервере, который не является членом кластера.

    Сетевые разрешения выставляем такие: Everyone - Full Access.
    Разрешения NTFS должны включать: пользователя, который запустил мастер настройки кластера, а также объекты компьютеров - кластера и его членов. В нашем случае это: alwayson-tst-1, alwayson-tst-2, alwayson-tst-cl.

    Настройка Windows Server Failover Cluster для SQL 2012 AlwaysOn

  12. Проверьте настройки на шаге Confirmation и нажмите Next.

    Настройка Windows Server Failover Cluster для SQL 2012 AlwaysOn
    Поздравляю, кластер создан, свидетели настроены. Можете просмотреть настройки и статус, убедиться, что все зелененькое.
    Далее переходим к созданию группы доступности AlwaysOn.

 

Создание AlwaysOn Availability Group

Перед тем как мы начнем, вы конечно установите MS SQL Server 2012. Обязательно убедитесь, что для служб SQL-сервера на каждом сервере созданы отдельные служебные учетные записи и службы работают от имени этих учетных записей. Если вы уже установили сервера и они работают из-под системных учетных записей (System), то придется переделывать. Легче всего - переустановить. Если это невозможно, обратите внимание на мою статью об этой задаче: Изменение сервисной учетной записи для MS SQL Server 2012 и последующие трудности.

Если вы этого не сделаете, то на шаге 5 (Specify Replicas) вы получите вот такое предупреждение:

Создание AlwaysOn Availability Group для SQL Server 2012

А если вы нажмете Yes, то на этапе создания группы и добавления базы данных в группу, получите ошибку присоединения базы: "Joining <availability database> to availability group <availability group> at <replica>.".

Что ж, начем.

  1. Включаем поддержку AlwaysOn на SQL-серверах. Открываем SQL Server Configuration Manager, и в свойствах службы сервера выбираем чекбокс Enable AlwaysOn Availability Groups. После этого перезагружаем службы SQL.

    Создание AlwaysOn Availability Group для SQL Server 2012

  2. Открываем SQL Server Management Studio, подключаемся к одному из наших SQL-серверов. В Object Exporer идем в папку AlwaysOn High Availability. Щелкаем правой кнопкой на Availability Groups и выбираем New Availability Group Wizard…. Запускается мастер создания группы доступности.

    Создание AlwaysOn Availability Group для SQL Server 2012

  3. На шаге Specify Availability Group Name указываем имя группы. Выбираем любое удобное для нас имя. Это исключительно имя объекта, ни на что в дальнейшем влиять не будет.

    Создание AlwaysOn Availability Group для SQL Server 2012

  4. На шаге Select Databases выбираем базу данных, которая будет добавлена в группу доступности.

    Создание AlwaysOn Availability Group для SQL Server 2012

  5. На шаге Specify Replicas выполняем несколько действий. На вкладке Replicas добавляем второй SQL-сервер в конфигурацию. Automatic Failover - указываем по желанию (я в моем случае отключил). Synchronous Commit - лучше указать, т.к. именно это указывает на синхронный режим репликации, т.к. наиболее безопасный способ репликации с точки зрения защищенности данных от сбоя.

    Создание AlwaysOn Availability Group для SQL Server 2012

  6. Вторая необходимая вкладка на шаге Specify Replicas - это Listener. Тут мы создаем точку доступа к нашей группе доступности. Именно по этому адресу наши приложения будут получать доступ к базам данных из Availability Group.

    Создание AlwaysOn Availability Group для SQL Server 2012

  7. На шаге Select Initial Data Synchronization указываем Full и указываем папку для первичной репликации базы данных между серверами. Доступ к сетевой папке должны иметь учетные записи, под которыми запущены и работают службы SQL-серверов.

    Создание AlwaysOn Availability Group для SQL Server 2012

  8. Дальнейшие шаги мастера New Availability Group не требуют вмешательства. В результате вы должны получить новую работающую группу AlwaysOn.

 

На этом будем считать нашу задачу выполненной. За вами - дальнейшие тесты по работоспособности вашего нового кластера.

windows server (ru), windows server 2012 (ru), ms sql server (ru), sql 2012 (ru)

  • Просмотров: 18942
Добавить комментарий

Комментарии  
SQL
Добрый день!
У меня вопрос.
Имеется два сервера SQL_server1 и SQL_server2.
На SQL_server1 уже долгое время находятся много баз.
на SQL_server2 только установил SQL.
Нужно ли перекидывать базы на пустой SQL сервер?
Или после настройки синхронизируется всё?
RE: SQL
Цитирую Александр Воробьев:
Добрый день!
У меня вопрос.
Имеется два сервера SQL_server1 и SQL_server2.
На SQL_server1 уже долгое время находятся много баз.
на SQL_server2 только установил SQL.
Нужно ли перекидывать базы на пустой SQL сервер?
Или после настройки синхронизируется всё?


Здравствуйте!

Насколько я помню, перекидывать не надо. Настройка always on подразумевает синхронизацию.

Related Articles