Типы клиентских подключений к репликам в группе доступности Always On

Область применения: SQL Server (все поддерживаемые версии)

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

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

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

Примечание

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

Типы доступа соединений, поддерживаемые вторичной ролью

Вторичная роль поддерживает три альтернативных варианта клиентского соединения, а именно:

Нет соединений
Пользовательские соединения не разрешены. Базы данных-получатели недоступны для доступа в режиме чтения. Это поведение по умолчанию во вторичной роли.

Соединение с намерением только чтения
Базы данных-получатели доступны только для соединений, для которых свойство соединения Назначение приложения имеет значение ReadOnly (соединения с намерением чтения).

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

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

Дополнительные сведения см. в разделе Настройка доступа только для чтения в реплике доступности (SQL Server).

Типы доступа соединений, поддерживаемые первичной ролью

Первичная роль поддерживает два альтернативных варианта клиентского соединения, а именно:

Разрешены все соединения
К базам данных-источникам разрешено как соединение в режиме «чтение-запись», так и соединение в режиме «только чтение». Это поведение по умолчанию для первичной роли.

Разрешены только соединения в режиме «чтение-запись»
Если свойство соединения Назначение приложения имеет значение ReadWrite либо не задано, соединение разрешено. Соединения, для которых ключевое слово строки подключения Application Intent имеет значение только чтение , не разрешены. Разрешая соединения только в режиме «чтение-запись», можно предотвратить случаи, когда клиенты по ошибке подключают к первичной реплике рабочую нагрузку с намерением чтения.

Дополнительные сведения об этом свойстве соединения см. в разделе Using Connection String Keywords with SQL Server Native Client.

Дополнительные сведения см. в разделе Настройка доступа только для чтения в реплике доступности (SQL Server).

Влияние конфигурации доступа соединения на клиентское соединение

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

Роль реплики Поддержка доступа к соединению в реплике Назначение соединения Результат попытки подключения
Вторичная All С намерением только чтения, чтения-записи или назначение соединения не указано Успешное завершение
Вторичная Нет (поведение по умолчанию вторичной реплики). С намерением только чтения, чтения-записи или назначение соединения не указано Failure
Вторичная Назначение — только чтение С намерением чтения Успешное завершение
Вторичная Назначение — только чтение С намерением чтения-записи или назначение соединения не указано Failure
Основной Все (поведение по умолчанию первичной реплики). С намерением только чтения, чтения-записи или назначение соединения не указано Успешное завершение
Основной Чтение и запись Назначение — только чтение Failure
Основной Чтение и запись С намерением чтения-записи или назначение соединения не указано Успешное завершение

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

Пример конфигурации доступа соединения

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

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

Реплика Режим фиксации Первоначальная роль Доступ соединения для вторичной роли Доступ соединения для первичной роли
Реплика1 Синхронная Основной Нет Чтение и запись
Реплика2 Синхронная Вторичная Нет Чтение и запись
Реплика3 Асинхронный Вторичная С намерением только чтения Чтение и запись
Реплика4 Асинхронный Вторичная Назначение — только чтение Чтение и запись

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

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

См. также

См. также:

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