Сведения о доступе клиентского соединения с репликами доступности (SQL Server)

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

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

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

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

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

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

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

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

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

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

  • См. также

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

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

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

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

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

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

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

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

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

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

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

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

    Дополнительные сведения об этом свойстве соединения см. в разделе Использование ключевых слов строки подключения с собственным клиентом SQL Server.

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

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

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

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

Роль реплики

Поддержка доступа к соединению в реплике

Назначение соединения

Результат попытки подключения

Вторичная

Все

С намерением только чтения, чтения-записи или назначение соединения не указано

Успешно

Вторичная

Нет (поведение по умолчанию вторичной реплики).

С намерением только чтения, чтения-записи или назначение соединения не указано

Ошибка

Вторичная

С намерением только чтения

С намерением чтения

Успешно

Вторичная

С намерением только чтения

С намерением чтения-записи или назначение соединения не указано

Ошибка

Первичная

Все (поведение по умолчанию первичной реплики).

С намерением только чтения, чтения-записи или назначение соединения не указано

Успешно

Первичная

Чтение и запись

С намерением только чтения

Ошибка

Первичная

Чтение и запись

С намерением чтения-записи или назначение соединения не указано

Успешно

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

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

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

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

Реплика

Режим фиксации

Первоначальная роль

Доступ соединения для вторичной роли

Доступ соединения для первичной роли

Реплика1

Синхронная

Первичная

Нет

Чтение и запись

Реплика2

Синхронная

Вторичная

Нет

Чтение и запись

Реплика3

Асинхронная

Вторичная

С намерением только чтения

Чтение и запись

Реплика4

Асинхронная

Вторичная

С намерением только чтения

Чтение и запись

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

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

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

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

См. также

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

См. также

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

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

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

Статистика