Microsoft SQL Server 2016

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 12:13, 2 июня 2017.
Microsoft SQL Server
Разработчики: Microsoft
Выпущена: 24 апреля 1989, as SQL Server 1.0
Постоянный выпуск: SQL Server 2016 / 1 июня 2016
Состояние разработки: Active
Написана на: C, C++
Операционная система: Microsoft Windows, Windows Server, Linux (beta in March 2016, "availability in mid-2017")
Локализация: English, Chinese, French, German, Italian, Japanese, Korean, Portuguese (Brazil), Russian, Spanish and Indonesian
Тип ПО: Relational database management system
Лицензия: Proprietary software
Веб-сайт www.microsoft.com/sqlserver/

Microsoft SQL Server - СУБД, разработанная в Microsoft. Microsoft поддерживает около десятка различных версий Microsoft SQL Server, рассчитанных на решение различных конечных задач и различные рабочие нагрузки: от простых одиночных приложений до крупных проектов с доступом через интернет и большим количеством одновременно активных пользователей.

Возможности отказоустойчивости

Microsoft SQL Server предоставляет возможности для объединения нескольких экземпляров SQL Server в отказоустойчивый кластер. Данный механизм носит название SQL Server Clustering. SQL Server Clustering не может использоваться самостоятельно и должен быть организован поверх предварительно настроенного кластера общего назначения - Windows Server Failover Cluster.

Что может SQL Server Failover Cluster

  • Предоставлять прозрачный интерфейс для клиентских приложений. Все приложения, работающие с одиночным экземпляром SQL Server, автоматически способны корректно работать с SQL Server Failover Cluster
  • Содержать нескольно экземпляров SQL Server с синхронизированным состоянием - один основной и несколько вторичных
  • Мониторить состояние всех узлов кластера и обнаруживать выход из строя любого из узлов
  • В случае выхода из строя основного экземпляра SQL Server переходить в failover-режим и переводить нагрузку на один из второстепенных экземпляров

Чего НЕ может SQL Server Faliover Cluster

  • Гарантировать сохранность данных. SQL Server Falover Cluster гарантирует восстановление после выхода из строя сервиса SQL Server, но не хранилища данных (которое, как правило, организуется отдельно в виде SAN)
  • Осуществлять горизонтальное масштабирование. Стандартный вариант использования SQL Server Falover Cluster предполагает взаимодествие с БД только через один сервер, и переход на второй только в случае отказа первого
  • 100% uptime. Процесс failover'а занимает ненулевое время, в течение которого сервер остается недоступным.

Принцип работы

Windows Failover Cluster использует shared-хранилище, как правило - SAN. Именно в этом хранилище должны размещатся системные и пользовательские базы данных. Это позволяет кластеру в любое время перемещать активный SQL сервер на любой узел по запросу администратора или в случае возникновения проблем. Существует только одна копия данных.

Кроме хранилища, в кластер входит несколько узлов с установленным сервисом SQL Server, объединенные в отказоустойчивый кластер. В каждый момент времени только один узел является активным и обрабатывает все входящие запросы. Остальные узлы используются, если первый узел вышел из строя. Вне зависимости от того, какой именно узел кластера выполняет в данный момент роль активного экземпляра SQL Server, сетевое имя, SQL Agent jobs, Liked Servers и Logins будут сохраняться.

SQLFailoverCluster01.png

В случае, если активный узел SQL Server выходит из строя, механизм Windows Server Failover Cluster обнаруживает это и запускает сервис SQL Server на дополнительном узле. Запущенный сервис подключается к той же самой базе данных и загружает разделяемые с другими узлами кластера данные о состоянии. Все незавершенные транзакции от предыдущего активного узла остаются незавершенными и откатываются.

SQLFailoverCluster 02.png

Развертывание

Ниже будет рассмотрен процесс развертывания кластера из двух узлов SQL Server. Для этого будут использованы 3 экземпляра Windows Server - непосредственно 2 узла, а так же сервер, выполняющий роль контроллера домена Active Directory, а так же DNS, DHCP и iSCSI-цели (используется для организации сетевого хранилища).

Этап 0: Настройка среды

  1. Все три системы должны находиться в одной сети и быть видны друг другу. Кроме того, они должны быть объединены в один домен Active Directory.
  2. На всех узлах, на которых будут распологаться экземпляры SQL Server, необходимо установить Роль Failover Clustering.
  3. Необходимо создать Windows Server Failover Cluster. Для этого на одном из узлов с установленной Ролью Failover Clustering необходимо перейти в Tools > Failover Cluster Manager > Create Cluster и в соответствующем wizard'е добавить в кластер все узлы.
  4. Failover Cluster Manager запустит автоматические тесты конфигурации системы, прохождение каждого из которых без ошибок (warning'и допускаются) является необходимым условием работы кластера.

Этап 1: Настройка iSCSI SAN и Windows Server Clustering

  1. Необходимо установить Роль iSCSI Target для сервера, выступающего хранилищем. В данном примере этот сервер совпадет с контроллером домена.
  2. Необходимо создать iSCSI Virtual Disk. Для его размещения необходимо предварительно выделить пустой том на каком-либо физическом носителе (в случае использования виртуальных машин - подмонтировать новый диск).
  3. Для узлов с SQL Server необходмо настроить сервис iSCSI Initiator.
  4. Для созданного iSCSI-диска необходимо настроить iSCSI Target, указав в качестве разрешенных инициаторов узлы кластера SQL Server.
  5. Перевести диск в онлайн-режим и на узлах кластера подключить все инициаторы к цели iSCSI.
  6. Подмонтировать сетевой диск к узлам кластера (в виде диска, или в виде директории на файловой системе)

Этап 2: Настройка SQL Server Failover Cluster

  1. Рекомендуется завести в домене специального пользователя, имеющего права доступа к ресурсам кластера и запускающего его под своим именем.
  2. Необходимо добавить созданный на прошлом этапе диск в диски кластера ( через Failover Cluster Manager ) и перевести его в режим Cluster Shared Volume.
  3. Запустить установщик MS SQL Server и выбрать пункт "Создать новый SQL кластер".
  4. При создании кластера необходимо указать пути на кластерном диске(-ах), по которым система будет хранить данные базы и логи и ввести credentials пользователя для управления БД.
  5. Запустить установщик на всех остальных узлах кластера и добавить их в кластер