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

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

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

СоветСовет

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

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

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

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

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

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

ПримечаниеПримечание

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

На следующем рисунке показана группа доступности, которая содержит максимальное число реплик доступности: одну первичную реплику и четыре вторичные.

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

В этом разделе.

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

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

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

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

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

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

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

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

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

  • См. также

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

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

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

Важное примечаниеВажно!

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

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

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

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

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

ПримечаниеПримечание

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

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

  • Режим асинхронной фиксации

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

  • Режим синхронной фиксации

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

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

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

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

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

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

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

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

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

      Важное примечаниеВажно!

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

    ПримечаниеПримечание

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

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

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

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

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

СоветСовет

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

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

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

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

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

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

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

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

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

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

ПримечаниеПримечание

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

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

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

См. также

Значок стрелки, используемый со ссылкой «В начало»[В начало]

См. также

Основные понятия

Режимы доступности (группы доступности AlwaysOn)

Отработка отказа и режимы отработки отказа (группы доступности AlwaysOn)

Обзор сведений об инструкциях Transact-SQL для групп доступности AlwaysOn (SQL Server)

Обзор командлетов PowerShell для групп доступности AlwaysOn (SQL Server)

предварительными требованиями, и ограничениями и рекомендациями для групп доступности AlwaysOn (SQL Server)

Создание и настройка групп доступности (SQL Server)

Активные вторичные реплики: Доступ к вторичным репликам только для чтения (группы доступности AlwaysOn)

Активные вторичные реплики: Резервное копирование на вторичных репликах (группы доступности AlwaysOn)

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