Типы клиентских подключений к репликам в группе доступности Always OnTypes of client connections to replicas within an Always On availability group

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions)

В группе доступности AlwaysOn можно настроить одну или несколько реплик доступности, подключения к которой могут выполняться в режиме только для чтения, когда они являются вторичными (то есть при работе в качестве вторичной реплики).In an Always On availability group, you can configure one or more availability replicas to allow read-only connections when running under the secondary role (that is, when running as a secondary replica). Каждую реплику доступности можно также настроить так, чтобы она разрешала или исключала соединения только для чтения во время работы под первичной ролью (т. е. во время работы в качестве первичной реплики).You can also configure each availability replica to allow or exclude read-only connections when running under the primary role (that is, when running as the primary replica).

Чтобы упростить клиентский доступ к базе данных-источнику или получателю в данной группе доступности, необходимо определить прослушиватель группы доступности.To facilitate client access to primary or secondary databases of a given availability group, you should define an availability group listener. По умолчанию новые соединения с прослушивателем группы доступности будут перенаправляться к первичной реплике.By default, the availability group listener directs incoming connections to the primary replica. Однако можно настроить группу доступности для поддержки маршрутизации только для чтения, которая позволяет своему прослушивателю переадресовывать запросы на соединения только для чтения на вторичную реплику только для чтения.However, you can configure an availability group to support read-only routing, which enables its availability group listener to redirect the connection requests of read-intent applications to a readable secondary replica. Дополнительные сведения см. в статье Настройка маршрутизации только для чтения в группе доступности (SQL Server).For more information, see Configure Read-Only Routing for an Availability Group (SQL Server).

Во время отработки отказа вторичная реплика принимает первичную роль, а прежняя первичная реплика — вторичную роль.During a failover, a secondary replica transitions to the primary role and the former primary replica transitions to the secondary role. Во время процесса отработки отказа завершаются все клиентские соединения с первичной и вторичной репликами.During the failover process, all client connections to both the primary replica and secondary replicas are terminated. После отработки отказа, когда клиент выполняет повторное соединение с прослушивателем группы доступности, прослушиватель соединяет клиента с новой первичной репликой, кроме тех случаев, когда выполняется запрос на соединение только для чтения.After the failover, when a client reconnects to the availability group listener, the listener reconnects the client to the new primary replica, except for a read-intent connect request. Если маршрутизация только для чтения настроена для клиента и для экземпляров сервера, на которых размещена первичная реплика и хотя бы одна вторичная реплика доступна только для чтения, то запросы на соединение только для чтения перенаправляются на вторичную реплику, которая поддерживает необходимый клиенту тип соединения и доступа.If read-only routing is configured on the client and on the server instances that hosts the new primary replica and on at least one readable secondary replica, read-intent connection requests are re-routed to a secondary replica that supports the type of connection access that the client requires. Чтобы обеспечить непрерывность работы клиента после отработки отказа, важно настроить доступ соединения как для вторичной, так и для первичной ролей каждой реплики доступности.To ensure a graceful client experience after a failover, it is important to configure connection access for both the secondary and primary roles of every availability replica.

Примечание

Сведения о прослушивателе групп доступности, обрабатывающем запросы на клиентские подключения, см. в разделе Прослушиватели групп доступности, возможность подключения клиентов и отработка отказа приложений (SQL Server).For information about the availability group listener, which handles client connection requests, see Availability Group Listeners, Client Connectivity, and Application Failover (SQL Server).

Типы доступа соединений, поддерживаемые вторичной рольюTypes of Connection Access Supported by the Secondary Role

Вторичная роль поддерживает три альтернативных варианта клиентского соединения, а именно:The secondary role supports three alternatives for client connections, as follows:

Нет соединенийNo connections
Пользовательские соединения не разрешены.No user connections are allowed. Базы данных-получатели недоступны для доступа в режиме чтения.Secondary databases are not available for read access. Это поведение по умолчанию во вторичной роли.This is the default behavior in the secondary role.

Соединение с намерением только чтенияOnly read-intent connections
Базы данных-получатели доступны только для соединений, для которых свойство соединения Назначение приложения имеет значение ReadOnly (соединения с намерением чтения).The secondary database(s) are available only for connection for which the Application Intent connection property is set to ReadOnly (read-intent connections).

Дополнительные сведения об этом свойстве соединения см. в разделе Поддержка высокого уровня доступности и аварийного восстановления собственного клиента SQL Server.For information about this connection property, see SQL Server Native Client Support for High Availability, Disaster Recovery.

Разрешить любые соединения только для чтенияAllow any read-only connection
Для всех баз данных-получателей разрешены соединения доступа только для чтения.The secondary database(s) are all available for read access connections. Этот вариант разрешает соединения клиентам с более ранними версиями ПО.This option allows lower versioned clients to connect.

Дополнительные сведения см. в разделе Настройка доступа только для чтения в реплике доступности (SQL Server).For more information, see Configure Read-Only Access on an Availability Replica (SQL Server).

Типы доступа соединений, поддерживаемые первичной рольюTypes of Connection Access Supported by the Primary Role

Первичная роль поддерживает два альтернативных варианта клиентского соединения, а именно:The primary role supports two alternatives for client connections, as follows:

Разрешены все соединенияAll connections are allowed
К базам данных-источникам разрешено как соединение в режиме «чтение-запись», так и соединение в режиме «только чтение».Both read-write and read-only connections are allowed to primary databases. Это поведение по умолчанию для первичной роли.This is the default behavior for the primary role.

Разрешены только соединения в режиме «чтение-запись»Allow only read-write connections
Если свойство соединения Назначение приложения имеет значение ReadWrite либо не задано, соединение разрешено.When the Application Intent connection property is set to ReadWrite or is not set, the connection is allowed. Соединения, для которых ключевое слово строки подключения Application Intent имеет значение только чтение , не разрешены.Connections for which the Application Intent connection string keyword is set to ReadOnly are not allowed. Разрешая соединения только в режиме «чтение-запись», можно предотвратить случаи, когда клиенты по ошибке подключают к первичной реплике рабочую нагрузку с намерением чтения.Allowing only read-write connections can help prevent your customers from connecting a read-intent work load to the primary replica by mistake.

Дополнительные сведения об этом свойстве соединения см. в разделе Using Connection String Keywords with SQL Server Native Client.For information about this connection property, see Using Connection String Keywords with SQL Server Native Client.

Дополнительные сведения см. в разделе Настройка доступа только для чтения в реплике доступности (SQL Server).For more information, see Configure Read-Only Access on an Availability Replica (SQL Server).

Влияние конфигурации доступа соединения на клиентское соединениеHow the Connection Access Configuration Affects Client Connectivity

Параметры доступа соединения реплики определяют, проходит или не проходит попытка соединения.The connection access settings of a replica determine whether a connection attempt fails or succeeds. В следующей таблице приведены сводные сведения о том, проходит или не проходит попытка соединения по каждому параметру доступа соединения.The following table summarizes whether a given connection attempt succeeds or fails for each the connection-access setting.

Роль репликиReplica Role Поддержка доступа к соединению в репликеConnection Access Supported on Replica Назначение соединенияConnection Intent Результат попытки подключенияConnection-Attempt Result
ВторичнаяSecondary AllAll С намерением только чтения, чтения-записи или назначение соединения не указаноRead-intent, read-write, or no connection intent specified УспешноSuccess
ВторичнаяSecondary Нет (поведение по умолчанию вторичной реплики).None (This is the default secondary behavior.) С намерением только чтения, чтения-записи или назначение соединения не указаноRead-intent, read-write, or no connection intent specified FailureFailure
ВторичнаяSecondary Назначение — только чтениеRead-intent only С намерением чтенияRead-intent УспешноSuccess
ВторичнаяSecondary Назначение — только чтениеRead-intent only С намерением чтения-записи или назначение соединения не указаноRead-write or no connection intent specified FailureFailure
ПервичнаяPrimary Все (поведение по умолчанию первичной реплики).All (This is the default primary behavior.) С намерением только чтения, чтения-записи или назначение соединения не указаноRead-only, read-write, or no connection intent specified УспешноSuccess
ПервичнаяPrimary Чтение и записьRead-write Назначение — только чтениеRead-intent only FailureFailure
ПервичнаяPrimary Чтение и записьRead-write С намерением чтения-записи или назначение соединения не указаноRead-write or no connection intent specified УспешноSuccess

Сведения о настройке группы доступности для приема клиентских подключений к ее репликам см. в разделе Прослушиватели групп доступности, возможность подключения клиентов и отработка отказа приложений (SQL Server).For information about configuring an availability group to accept client connections to its replicas, see Availability Group Listeners, Client Connectivity, and Application Failover (SQL Server).

Пример конфигурации доступа соединенияExample Connection-Access Configuration

В зависимости от различных конфигураций реплик доступности для доступа соединения, поддержка клиентских соединений может измениться после отработки отказа группой доступности.Depending on how different availability replicas are configured for connection access, support for client connections might change after an availability group fails over. Рассмотрим группу доступности, для которой отправка отчетов выполняется на удаленных вторичных репликах с асинхронной фиксацией.For example, consider an availability group for which reporting is performed on remote asynchronous-commit secondary replicas. Все приложения, работающие в режиме только для чтения, для базы данных в этой группе доступности устанавливают для своего свойства соединения Назначение приложения значение ReadOnly, после чего все соединения в режиме только для чтения становятся соединениями с намерением чтения.All of the read-only applications for the databases in this availability group set their Application Intent connection property to ReadOnly, so that all read-only connections are read-intent connections.

В примере этой группы доступности рассматриваются две реплики синхронной фиксации в главном вычислительном центре и две реплики асинхронной фиксации на дополнительном сайте.This example availability group possesses two synchronous-commit replicas at the main computing center and two asynchronous-commit replicas at a satellite site. Для первичной роли все реплики настраиваются на режим доступа «чтение-запись», что предотвращает соединения с намерением только чтения к первичной реплике во всех ситуациях.For the primary role, all the replicas are configured for read-write access, which prevents read-intent connections to the primary replica in all situations. Вторичная реплика с синхронной фиксацией использует конфигурацию доступа соединения по умолчанию (вариант «нет»), что приводит к отказу во всех клиентских соединениях под вторичной ролью.The synchronous commit secondary role uses the default connection-access configuration ("none"), which prevents all client connections under the secondary role. И наоборот, реплики асинхронной фиксации настраиваются на разрешение соединений с намерением чтения под вторичной ролью.In contrast, the asynchronous commit replicas are configured to permit read-intent connections under the secondary role. В следующей таблице приведена сводка по конфигурации в этом примере.The following table summarize this example configuration:

РепликаReplica Режим фиксацииCommit Mode Первоначальная рольInitial Role Доступ соединения для вторичной ролиConnection Access for Secondary Role Доступ соединения для первичной ролиConnection Access for Primary Role
Реплика1Replica1 СинхроннаяSynchronous ПервичнаяPrimary NoneNone Чтение и записьRead-write
Реплика2Replica2 СинхроннаяSynchronous ВторичнаяSecondary NoneNone Чтение и записьRead-write
Реплика3Replica3 АсинхроннаяAsynchronous ВторичнаяSecondary С намерением только чтенияRead-intentonly Чтение и записьRead-write
Реплика4Replica4 АсинхроннаяAsynchronous ВторичнаяSecondary Назначение — только чтениеRead-intent only Чтение и записьRead-write

Как правило, в этом сценарии отработка отказа происходит только между репликами синхронной фиксации, а приложения, работающие в режиме с намерением только чтения, сразу после отработки отказа могут установить повторное соединение с одной из вторичных реплик асинхронной фиксации.Typically, in this example scenario, failovers occur only between the synchronous-commit replicas, and immediately after the failover, read-intent applications are able to reconnect to one of the asynchronous-commit secondary replicas. Однако, когда авария происходит в главном вычислительном центре, будут потеряны обе реплики синхронной фиксации.However, when a disaster occurs at the main computing center both synchronous-commit replicas are lost. Администратор баз данных на дополнительном сайте должен выполнить принудительный переход на другой ресурс вручную на вторичную реплику асинхронной фиксации.The database administrator at the satellite site responds by performing a forced manual failover to an asynchronous-commit secondary replica. При принудительной отработке отказа базы данных-получатели на оставшейся вторичной реплике приостанавливаются и в результате становятся недоступными для рабочих нагрузок в режиме только чтения.The secondary databases on the remaining secondary replica are suspended by the forced failover, making them unavailable for read-only workloads. Новая первичная реплика, настроенная для соединений в режиме «чтение-запись», предотвращает обращения в режиме с намерением только чтения от конкурирующей рабочей нагрузки в режиме «чтение-запись».The new primary replica, which is configured for read-write connections, prevents the read-intent workload from competing with the read-write workload. Это означает, что пока администратор баз данных не возобновит базы данных-получатели на оставшейся вторичной реплике асинхронной фиксации, клиенты, работающие в режиме с намерением только чтения, не могут подключиться ни к одной реплике доступности.This means that until the database administrator resumes the secondary databases on the remaining asynchronous-commit secondary replica, read-intent clients cannot connect to any availability replica.

См. также:See Also

Обзор групп доступности AlwaysOn (SQL Server) Overview of Always On Availability Groups (SQL Server)
Прослушиватели групп доступности, возможность подключения клиентов и отработка отказа приложений (SQL Server) Availability Group Listeners, Client Connectivity, and Application Failover (SQL Server)
СтатистикаStatistics