Обзор групп доступности AlwaysOn (SQL Server)

В этом разделе рассматриваются основные понятия групп доступности Always On, которые являются центральными для настройки одной или нескольких групп доступности в SQL Server 2014 г. и управления ими. Сводные сведения о преимуществах групп доступности и общие сведения о терминологии Always On групп доступности см. в разделе Группы доступности AlwaysOn (SQL Server).

Группа доступности поддерживает среду отработки отказа для дискретного набора пользовательских баз данных, известных как базы данных доступности, которые совместно выполняют переход на другой ресурс. Группа доступности поддерживает набор первичных баз данных и восьми наборов соответствующих вторичных баз данных. Базы данных-получатели не являются резервными копиями. Продолжайте регулярно создавать резервные копии баз данных и их журналов транзакций.

Совет

Можно создать резервную копию базы данных-источника любого типа. Кроме того, также можно создавать резервные копии журналов и полные резервные копии баз данных-получателей. Дополнительные сведения см. в разделе Активные вторичные экземпляры: резервное копирование во вторичных репликах (группы доступности AlwaysOn).

Каждый набор баз данных доступности размещается с помощью реплики доступности. Существует два типа реплик доступности: одна первичная реплика, которая размещает основные базы данных, и до восьми вторичных реплик, каждая из которых размещает набор вторичных баз данных и серверов как потенциальных объектов отказа для группы доступности. Группа доступности выполняет переход на другой ресурс на уровне реплики доступности. Реплика доступности обеспечивает избыточность только на уровне базы данных: для набора баз данных из одной группы доступности. Отработка отказа не вызывается проблемами баз данных, например обозначением базы данных как подозрительной в связи с потерей файла данных или повреждением журнала транзакций.

Первичная реплика делает базы данных-источники доступными для соединений с клиентами для чтения и записи. Кроме того, в процессе, называемом синхронизацией данных, который происходит на уровне базы данных, первичная реплика отправляет записи журнала транзакций каждой базы данных-источника в каждую базу данных-получатель. В каждой вторичной реплике кэшируются записи журнала транзакций (фиксируется журнал), а затем эти записи применяются в соответствующей базе данных-получателе. Синхронизация данных выполняется между базой данных-источником и каждой подключенной базой данных-получателем независимо от остальных баз данных. Поэтому приостановка или сбой базы данных-получателя не затрагивает другие базы данных-получатели, а приостановка или сбой базы данных-источника не затрагивает остальные базы данных-источники.

Также можно настроить одну или несколько вторичных реплик для поддержки доступа только для чтения к базам данных-получателям и настроить какую-либо вторичную реплику для резервного копирования в базы данных-получатели.

Для развертывания Always On групп доступности требуется кластер отказоустойчивой кластеризации Windows Server (WSFC). Все реплики доступности в заданной группе доступности должны располагаться на разных узлах одного кластера WSFC. Единственное исключение состоит в том, что при переносе в другой кластер WSFC группа доступности может временно находится в двух кластерах.

Группа ресурсов WSFC создается для каждой создаваемой группы доступности. Кластер WSFC отслеживает данную группу ресурсов для оценки работоспособности первичной реплики. Кворум для групп доступности Always On основан на всех узлах в кластере WSFC независимо от того, размещает ли данный узел кластера какие-либо реплики доступности. В отличие от зеркального отображения базы данных, в Always On группах доступности нет роли следящего сервера.

Примечание

Сведения о связи SQL Server компонентов AlwaysOn с кластером WSFC см. в статье Отказоустойчивая кластеризация Windows Server (WSFC) с SQL Server.

Ниже показана группа доступности, которая содержит одну первичную реплику и четыре вторичные реплики. Поддерживаются до 8 вторичных реплик, в том числе одна первичная реплика и две вторичные реплики с синхронной фиксацией.

Группа доступности с пятью репликами

Базы данных доступности

Чтобы можно было добавить базу данных в группу доступности, база данных должна быть в сети, быть доступной для чтения и записи и существовать на экземпляре сервера, на котором располагается первичная реплика. При добавлении база данных присоединяется к группе доступности как база данных-источник, оставаясь доступной для клиентов. База данных-получатель не существует до тех пор, пока резервные копии новой базы данных-источника не будут восстановлены на экземпляр сервера, на котором размещается вторичная реплика (с помощью инструкции RESTORE WITH NORECOVERY). Новая база данных-получатель находится в состоянии RESTORING до тех пор, пока не войдет в состав группы доступности. Дополнительные сведения см. в разделе Начало перемещения данных в базе данных-получателе AlwaysOn (SQL Server).

Присоединение переводит базу данных-получатель в режим ONLINE и инициирует синхронизацию данных с соответствующей базой данных-источником. Синхронизация данных — это процесс, в ходе которого изменения в базе данных-источнике воспроизводятся в базе данных-получателе. В процессе синхронизации данных база данных-источник отправляет записи журнала транзакций в базу данных-получатель.

Важно!

База данных доступности в Transact-SQL, Powershell и управляющих объектах SQL Server (SMO) иногда называется репликой базы данных. Например, термин "реплика базы данных" используется в именах динамических административных представлений AlwaysOn, возвращающих сведения о базах данных доступности: sys.dm_hadr_database_replica_states и sys.dm_hadr_database_replica_cluster_states. Однако в электронной документации по SQL Server термин «реплика» обычно относится к репликам доступности. Например, фразы «первичная реплика» и «вторичная реплика» всегда относятся к репликам доступности.

Реплики доступности

Каждая группа доступности определяет набор из двух или более партнеров по обеспечению отработки отказа, известных как реплики доступности. Реплики доступности являются компонентами группы доступности. На каждой реплике доступности размещается копия баз данных доступности в группе доступности. Для данной группы доступности реплики доступности должны находиться на разных экземплярах SQL Server, работающих на разных узлах кластера WSFC. На каждом из этих экземпляров сервера необходимо включить AlwaysOn.

Данный экземпляр может размещать только одну реплику доступности для отдельной группы доступности. Однако каждый экземпляр можно использовать на нескольких групп доступности. Данный экземпляр сервера может быть изолированным экземпляром или экземпляром кластера отработки отказа SQL Server. Если требуется обеспечить избыточность на уровне сервера, используйте экземпляры кластера отработки отказа.

Каждая реплика доступности получает роль — первичную роль или вторичную роль, которая наследуется базами данных доступности этой реплики. Роль данной реплики определяет, размещает ли она базы данных, доступные для чтения и записи, или базы данных только для чтения. Одна реплика, известная как первичная реплика, получает первичную роль и размещает базы данных, доступные для чтения и записи, которые известны как базы данных-получатели. По крайней мере одна из остальных реплик, называемая вторичной репликой, получает вторичную роль. Вторичная реплика размещает базы данных только для чтения, называемые базами данных-получателями.

Примечание

Если роль реплики доступности не определена, например, во время отработки отказа, ее базы данных временно пребывают в состоянии NOT SYNCHRONIZING. Их роль устанавливается в значение RESOLVING до тех пор, пока роль реплики доступности не будет разрешена. Если реплика доступности разрешается в основную роль, ее базы данных становятся базами данных-источниками. Если реплика доступности разрешается во вторичную роль, ее базы данных становятся базами данных-получателями.

Режимы доступности

Режим доступности — это свойство каждой реплики доступности. Режим доступности определяет, ждет ли первичная реплика перед фиксацией транзакций для базы данных, чтобы данная вторичная реплика записала записи журнала транзакций на диск (записала журнал на диск). Always On группы доступности поддерживают два режима доступности: режим асинхронной фиксации и режим синхронной фиксации.

  • Asynchronous-commit mode

    Реплика доступности, которая использует этот режим доступности, называетсярепликой асинхронной фиксации. В режиме асинхронной фиксации первичная реплика фиксирует транзакции, не ожидая подтверждения, что вторичная реплика асинхронной фиксации записала журнал на диск. Режим асинхронной фиксации минимизирует задержку транзакций в базах данных-получателях, но позволяет им не успевать за базами данных-источниками, что создает риск возможной потери данных.

  • Synchronous-commit mode

    Реплика доступности, которая использует этот режим доступности, называется репликой синхронной фиксации. В режиме синхронной фиксации, прежде чем фиксировать транзакции, первичная реплика синхронной фиксации ждет, чтобы вторичная реплика синхронной фиксации подтвердила, что запись журнала на диск завершена. В режиме синхронной фиксации после синхронизации базы данных-получателя с базой данных-источником зафиксированные транзакции полностью защищены. Эта защита достигается за счет повышения задержки транзакций.

Дополнительные сведения см. в разделе Режимы доступности (группы доступности AlwaysOn).

Типы отработки отказа

В рамках контекста сеанса между первичной репликой и вторичной репликой, первичная и вторичная роли становятся потенциально взаимозаменяемыми в процессе, который называется отработка отказа. Во время отработки отказа вторичная реплика принимает первичную роль и становится новой первичной репликой. Новая первичная реплика переводит свои базы данных в режим «в сети» в качестве баз данных-источников и выполняет откат всех незафиксированных транзакций. Когда прежняя первичная реплика становится доступной, она принимает вторичную роль и становится вторичной репликой. Прежние базы данных-источники становятся базами данных-получателями, и синхронизация данных возобновляется.

Существует три вида перехода на другой ресурс: автоматическая отработка отказа, отработка отказа вручную и принудительное обслуживание (с возможной потерей данных). Форма или формы отработки отказа, поддерживаемые определенной вторичной репликой, зависят от режима доступности и, для режима синхронной фиксации, от режима отработки отказа для первичной реплики и целевой вторичной реплики, как будет показано ниже.

  • Режим синхронной фиксации поддерживает две формы плановой отработки отказа вручную и автоматический переход на другой ресурс, если целевой дополнительный реплика в настоящее время синхронизирован с avt1. Поддержка этих форм отработки отказа зависит от свойства режима отработки отказа партнеров по обеспечению отработки отказа. Если режим перехода на другой ресурс имеет значение «вручную» для первичной или вторичной реплики, то для этой вторичной реплики поддерживается только режим перехода на другой ресурс «вручную». Если режим перехода на другой ресурс имеет значение «автоматический» как для первичной, так и для вторичной реплики, то эта вторичная реплика поддерживает как автоматический, так и переход на другой ресурс вручную.

    • Переход на другой ресурс вручную (без потери данных)

      Переход на другой ресурс вручную происходит вслед за тем, как администратор баз данных выполняет команду перехода на другой ресурс, после чего синхронизируемая вторичная реплика принимает первичную роль (с гарантированной защитой данных), а первичная реплика — вторичную роль. Для перехода на другой ресурс вручную требуется, чтобы первичная реплика и целевая вторичная реплика работали в режиме синхронной фиксации, при этом вторичная реплика уже должна быть синхронизирована.

    • Автоматический переход на другой ресурс (без потери данных)

      Автоматический переход на другой ресурс возникает в ответ на сбой, в результате которого синхронизируемая вторичная реплика принимает первичную роль (с гарантированной защитой данных). Когда прежняя первичная реплика становится доступной, она принимает вторичную роль. Для автоматического перехода на другой ресурс требуется, чтобы первичная реплика и целевая вторичная реплика работали в режиме синхронной фиксации, а режим отработки отказа имел значение «Автоматический». Помимо этого, вторичная реплика уже должна быть синхронизирована, иметь WSFC-кворум и отвечать условиям, указанным в гибкой политике перехода на другой ресурсдля группы доступности.

      Важно!

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

    Примечание

    Заметьте, что если команда принудительной отработки отказа выполняется в синхронизированной вторичной реплике, то она работает так же, как в случае запланированного перехода на другой ресурс вручную.

  • В режиме асинхронной фиксации единственная возможная форма отработки отказа — это принудительный переход на другой ресурс вручную (с возможной потерей данных), который обычно называется принудительная отработка отказа. Принудительная отработка отказа считается формой перехода на другой ресурс вручную, поскольку она может быть инициирована только вручную. Принудительная отработка отказа является вариантом аварийного восстановления. Это единственная форма отработки отказа, которая возможна в случае, если целевая вторичная реплика не синхронизирована с первичной репликой.

Дополнительные сведения см. в разделе Отработка отказа и режимы отработки отказа (группы доступности AlwaysOn).

Клиентские соединения

Можно обеспечить клиентское соединение с первичной репликой данной группы доступности, создав прослушиватель группы доступности. Прослушиватель группы доступности предоставляет набор ресурсов, который закрепляется за определенной группой доступности и направляет клиентские соединения на соответствующую реплику доступности.

Прослушиватель группы доступности связан с уникальным DNS-именем, которое является виртуальным сетевым именем (VNN), одним или несколькими виртуальными IP-адресами (VIP) и номером TCP-порта. Дополнительные сведения см. в разделе Прослушиватели групп доступности, возможность подключения клиентов и отработка отказа приложений (SQL Server).

Совет

Если в группе доступности имеется только две реплики доступности и в ней не разрешен доступ только для чтения к вторичной реплике доступности, клиенты смогут подключаться к первичной реплике доступности с помощью строк подключения к зеркальному отображению базы данных. Этот подход может быть полезен временно после переноса базы данных из зеркального отображения базы данных в Always On группы доступности. Прежде чем добавлять другие вторичные реплики, потребуется создать прослушиватель группы доступности, группу доступности и обновить приложения так, чтобы они использовали сетевое имя прослушивателя.

Активные вторичные реплики

Always On группы доступности поддерживают активные вторичные реплики. Активные вторичные функции поддерживают следующее.

  • Проведение операций резервного копирования со вторичными репликами.

    Вторичные реплики поддерживают создание резервных копий журнала и резервных копий только для копирования всей базы данных, файлов и файловых групп. Можно настроить группу доступности, указав предпочтение, где следует выполнять резервное копирование. Важно понимать, что приоритет не определяется в SQL Server, поэтому не влияет на выполнение нерегламентированного резервного копирования. Интерпретация данного приоритета зависит от логики, при ее наличии, которая внесена в задания резервного копирования для каждой из баз данных в указанной группе доступности. Для отдельной реплики доступности можно указать приоритет выполнения резервного копирования на данной реплике по отношению к другим репликам из той же группы доступности. Дополнительные сведения см. в разделе Активные вторичные серверы: резервное копирование на вторичных репликах (группы доступности AlwaysOn).

  • Доступ только для чтения к одной или нескольким вторичным репликам (доступные для чтения вторичные реплики)

    Любая реплика доступности может быть настроена на получение доступа только для чтения ко своим локальным базам данных (при выполнении вторичной роли), хотя некоторые операции поддерживаются не полностью. Кроме того, если требуется предотвратить выполнение на первичной реплике рабочих нагрузок в режиме только чтения, то при выполнении реплик в первичной роли для них можно настроить доступ только на чтение и запись. Дополнительные сведения см. в разделе Активные вторичные реплики для чтения (группы доступности AlwaysOn).

    Если в группе доступности имеется прослушиватель группы доступности и одна или несколько доступных для чтения вторичных реплик, то SQL Server может направлять запросы на установку соединения (с целью считывания данных) к одной из них (маршрутизация только для чтения). Дополнительные сведения см. в разделе Прослушиватели групп доступности, возможность подключения клиентов и отработка отказа приложений (SQL Server).

Период времени ожидания сеанса

Период времени ожидания сеанса — это свойство реплики доступности, которое определяет, как долго соединение с другой репликой доступности может оставаться неактивным до закрытия соединения. Первичные и вторичные реплики проверяют связь друг с другом, чтобы подтвердить собственную активность. Получение сообщения проверки связи от другой реплики до истечения периода времени ожидания указывает на то, что соединение все еще открыто и экземпляры сервера поддерживают связь. После получения сообщения проверки связи реплика доступности сбрасывает счетчик времени ожидания сеанса для данного соединения.

Ограничение времени ожидания сеанса исключает неограниченное продолжение работы реплики, ожидающей сообщения проверки связи от другой реплики. Если в течение периода ожидания от другой реплики не приходит сообщение проверки связи, то реплика прекращает ожидание. Соединение закрывается, и реплика переходит в состояние DISCONNECTED. Даже если для отключенной реплики настроен режим синхронной фиксации, транзакции не будут ожидать ее повторного подключения и повторной синхронизации.

По умолчанию период времени ожидания сеанса каждой реплики доступности составляет 10 секунд. Это значение задается пользователем и не может быть меньше 5 секунд. Обычно рекомендуется установить период времени ожидания 10 секунд и более. При установке значения меньше 10 секунд в сильно загруженной системе возникает вероятность ошибочного сообщения об ошибке.

Примечание

В роли разрешения период времени ожидания сеанса не применяется, поскольку проверка связи не выполняется.

Автоматическое восстановление страниц

Каждая реплика доступности пытается автоматически восстановиться с учетом поврежденных страниц в локальной базе данных, разрешая определенные типы ошибок, которые предотвращают чтение страницы данных. Если вторичная реплика не может прочитать страницу, реплика запрашивает свежую копию страницы с первичной реплики. Если первичная реплика не может прочесть страницу, реплика направляет запрос получения свежей копии для всех вторичных реплик и получает страницу от первой ответившей реплики. Если этот запрос завершился успешно, то нечитаемая страница заменяется копией, в результате чего ошибка обычно устраняется.

Дополнительные сведения см. в статье Автоматическое восстановление страниц (для групп доступности и зеркального отображения баз данных).

Связанные задачи

См. также

См. также:

Режимы доступности (группы доступности AlwaysOn)Режимы отработки отказа и отработки отказа (группы доступности AlwaysOn)Обзор инструкций Transact-SQL для групп доступности AlwaysOn (SQL Server)Общие сведения о командлетах PowerShell для групп доступности AlwaysOn (SQL Server)Поддержка высокой доступности для In-Memory баз данныхOLTPПредварительные требования, ограничения и рекомендации для групп доступности AlwaysOn (SQL Server)Создание и настройка групп доступности (SQL Server)Активные вторичные реплики: доступные для чтения вторичные реплики (группы доступности AlwaysOn)Активные вторичные серверы: резервное копирование на вторичных репликах (группы доступности AlwaysOn)Прослушиватели групп доступности, подключение клиентов и Отработка отказа приложений (SQL Server)