Поделиться через


Общие сведения о группах доступности AlwaysOn (SQL Server)

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

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

Подсказка

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

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

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

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

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

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

Замечание

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

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

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

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

Чтобы можно было добавить базу данных в группу доступности, база данных должна быть в сети, быть доступной для чтения и записи и существовать на экземпляре сервера, на котором располагается первичная реплика. При добавлении база данных присоединяется к группе доступности как основная база данных, оставаясь доступной для клиентов. Соответствующая вторичная база данных не существует до тех пор, пока резервные копии новой основной базы данных не будут восстановлены в экземпляр сервера, размещающего вторичную реплику (с помощью инструкции 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 до тех пор, пока роль реплики доступности не будет определена. Если реплика доступности переходит в основную роль, ее базы данных становятся основными базами данных. Если реплика доступности переходит во вторичную роль, ее базы данных становятся вторичными базами данных.

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

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

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

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

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

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

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

Типы переключения

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

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

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

    • Планируемое ручное переключение (без потери данных)

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

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

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

      Это важно

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

    Замечание

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

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

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

Клиентские подключения

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

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

Подсказка

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

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

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

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

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

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

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

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

период Session-Timeout

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

Период завершения сеанса предотвращает неограниченное ожидание получения пинга одной репликой от другой. Если пинг не получен от другой реплики в течение времени ожидания сеанса, реплика истекает. Ее подключение закрыто, и реплика переходит в состояние ОТКЛЮЧЕННО. Даже если отключённая реплика настроена для режима синхронной фиксации, транзакции не станут дожидаться её повторного подключения и синхронизации.

По умолчанию тайм-аут сеанса для каждой реплики доступности составляет 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)