À propos de l'accès de la connexion client aux réplicas de disponibilité (SQL Server)About Client Connection Access to Availability Replicas (SQL Server)

Dans un groupe de disponibilité Always On, vous pouvez configurer un ou plusieurs réplicas de disponibilité pour autoriser les connexions en lecture seule lors d’une exécution sous le rôle secondaire (autrement dit, avec une exécution en tant que réplica secondaire).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). Vous pouvez également configurer chaque réplica de disponibilité afin d'autoriser ou exclure les connexions en lecture seule lors d'une exécution sous le rôle principal (autrement dit, avec une exécution comme réplica principal).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).

Pour faciliter l'accès client aux bases de données primaires ou secondaires d'un groupe de disponibilité donné, vous devez définir un écouteur de groupe de disponibilité.To facilitate client access to primary or secondary databases of a given availability group, you should define an availability group listener. Par défaut, l'écouteur de groupe de disponibilité dirige les connexions entrantes vers le réplica principal.By default, the availability group listener directs incoming connections to the primary replica. Toutefois, vous pouvez configurer un groupe de disponibilité pour prendre en charge le routage en lecture seule, qui permet à son écouteur de groupe de disponibilité de rediriger les demandes de connexion des applications avec intention de lecture vers un réplica secondaire accessible en lecture.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. Pour plus d’informations, consultez Configurer le routage en lecture seule pour un groupe de disponibilité (SQL Server).For more information, see Configure Read-Only Routing for an Availability Group (SQL Server).

Lors d'un basculement, un réplica secondaire adopte le rôle principal et l'ancien réplica principal joue le rôle secondaire.During a failover, a secondary replica transitions to the primary role and the former primary replica transitions to the secondary role. Pendant le processus de basculement, toutes les connexions clientes au réplica principal et aux réplicas secondaires prennent fin.During the failover process, all client connections to both the primary replica and secondary replicas are terminated. Après le basculement, lorsqu'un client se reconnecte à l'écouteur de groupe de disponibilité, l'écouteur reconnecte le client au nouveau réplica principal, sauf dans le cas d'une demande de connexion avec intention de lecture.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. Si le routage en lecture seule est configuré sur le client et sur les instances de serveur qui hébergent le nouveau réplica principal et sur au moins un réplica secondaire accessible en lecture, les demandes de connexion avec intention de lecture sont à nouveau routées vers un réplica secondaire qui prend en charge le type d'accès à la connexion dont le client a besoin.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. Pour garantir une expérience naturelle pour le client après un basculement, il est important de configurer l'accès à la connexion pour les rôles secondaires et principaux de chaque réplica de disponibilité.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.

Note

Pour plus d’informations sur l’écouteur de groupe de disponibilité, qui traite les demandes de connexion des clients, consultez Écouteurs de groupe de disponibilité, connectivité client et basculement d’application (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).

Dans cette rubrique :In This Topic:

Types d'accès à la connexion pris en charge par le rôle secondaire Types of Connection Access Supported by the Secondary Role

Le rôle secondaire prend en charge trois méthodes pour les connexions clientes, comme suit :The secondary role supports three alternatives for client connections, as follows:

Aucune connexionNo connections
Aucune connexion utilisateur n'est autorisée.No user connections are allowed. Les bases de données secondaires ne sont pas disponibles pour l'accès en lecture.Secondary databases are not available for read access. Il s'agit du comportement par défaut dans le rôle secondaire.This is the default behavior in the secondary role.

Connexions d'intention en lecture seuleOnly read-intent connections
La ou les bases de données secondaires sont disponibles uniquement pour une connexion pour laquelle la propriété de connexion Intention de l’application a la valeur ReadOnly (connexions de tentative de lecture).The secondary database(s) are available only for connection for which the Application Intent connection property is set to ReadOnly (read-intent connections).

Pour plus d'informations sur cette propriété de connexion, consultez SQL Server Native Client Support for High Availability, Disaster Recovery.For information about this connection property, see SQL Server Native Client Support for High Availability, Disaster Recovery.

Autoriser toute connexion en lecture seuleAllow any read-only connection
La ou les bases de données secondaires sont toutes disponibles pour les connexions d'accès en lecture.The secondary database(s) are all available for read access connections. Cette option permet aux clients disposant d'une version antérieure de se connecter.This option allows lower versioned clients to connect.

Pour plus d’informations, consultez Configurer l’accès en lecture seule sur un réplica de disponibilité (SQL Server).For more information, see Configure Read-Only Access on an Availability Replica (SQL Server).

Types d'accès à la connexion pris en charge par le rôle principal Types of Connection Access Supported by the Primary Role

Le rôle principal prend en charge deux méthodes pour les connexions clientes, comme suit :The primary role supports two alternatives for client connections, as follows:

Toutes les connexions sont autoriséesAll connections are allowed
Les connexions en lecture-écriture et en lecture seule sont autorisées aux bases de données primaires.Both read-write and read-only connections are allowed to primary databases. Il s'agit du comportement par défaut pour le rôle principal.This is the default behavior for the primary role.

Autoriser uniquement les connexions en lecture-écritureAllow only read-write connections
Quand la propriété de connexion Intention de l’application a la valeur ReadWrite ou n’est pas définie, la connexion est autorisée.When the Application Intent connection property is set to ReadWrite or is not set, the connection is allowed. Les connexions pour lesquelles le mot clé de chaîne de connexion Application Intent est défini avec la valeur ReadOnly ne sont pas autorisées.Connections for which the Application Intent connection string keyword is set to ReadOnly are not allowed. L'autorisation des seules connexions en lecture-écriture peut empêcher vos clients de connecter une charge de travail avec intention de lecture au réplica principal, par erreur.Allowing only read-write connections can help prevent your customers from connecting a read-intent work load to the primary replica by mistake.

Pour plus d'informations sur cette propriété de connexion, consultez 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.

Pour plus d’informations, consultez Configurer l’accès en lecture seule sur un réplica de disponibilité (SQL Server).For more information, see Configure Read-Only Access on an Availability Replica (SQL Server).

Comment la configuration d'accès à la connexion affecte la connectivité client How the Connection Access Configuration Affects Client Connectivity

Les paramètres d'accès à la connexion d'un réplica déterminent si une tentative de connexion échoue ou réussit.The connection access settings of a replica determine whether a connection attempt fails or succeeds. Le tableau suivant récapitule si une tentative de connexion donnée réussit ou échoue pour chaque paramètre d'accès à la connexion.The following table summarizes whether a given connection attempt succeeds or fails for each the connection-access setting.

Rôle de réplicaReplica Role Accès à la connexion pris en charge sur le réplicaConnection Access Supported on Replica Intention de connexionConnection Intent Résultat de la tentative de connexionConnection-Attempt Result
SecondarySecondary TousAll Intention de lecture, lecture-écriture, ou aucune intention de connexion spécifiéeRead-intent, read-write, or no connection intent specified RéussiSuccess
SecondarySecondary Aucun (il s'agit du comportement secondaire par défaut.)None (This is the default secondary behavior.) Intention de lecture, lecture-écriture, ou aucune intention de connexion spécifiéeRead-intent, read-write, or no connection intent specified FailureFailure
SecondarySecondary Intention de lecture uniquementRead-intent only Intention de lectureRead-intent RéussiSuccess
SecondarySecondary Intention de lecture uniquementRead-intent only Lecture-écriture ou aucune intention de connexion spécifiéeRead-write or no connection intent specified FailureFailure
PrincipalPrimary Tous (il s'agit du comportement principal par défaut.)All (This is the default primary behavior.) Lecture seule, lecture-écriture ou aucune intention de connexion spécifiéeRead-only, read-write, or no connection intent specified RéussiSuccess
PrincipalPrimary Lecture-écritureRead-write Intention de lecture uniquementRead-intent only FailureFailure
PrincipalPrimary Lecture-écritureRead-write Lecture-écriture ou aucune intention de connexion spécifiéeRead-write or no connection intent specified RéussiSuccess

Pour plus d’informations sur la configuration d’un groupe de disponibilité pour accepter les connexions clientes à ses réplicas, consultez Écouteurs de groupe de disponibilité, connectivité client et basculement d’application (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).

Exemple de configuration d'accès à la connexionExample Connection-Access Configuration

Selon la façon dont différents réplicas de disponibilité sont configurés pour l'accès à la connexion, la prise en charge des connexions clientes peut changer après le basculement d'un groupe de disponibilité.Depending on how different availability replicas are configured for connection access, support for client connections might change after an availability group fails over. Par exemple, considérez un groupe de disponibilité pour lequel la création de rapports est exécutée sur des réplicas secondaires distants avec validation asynchrone.For example, consider an availability group for which reporting is performed on remote asynchronous-commit secondary replicas. Toutes les applications en lecture seule des bases de données dans ce groupe de disponibilité affectent à leur propriété de connexion Intention de l’application la valeur ReadOnly, afin que toutes les connexions en lecture seule soient des connexions de tentative de lecture.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.

Cet exemple de groupe de disponibilité compte deux réplicas de validation synchrone au centre de calcul principal et deux réplicas de validation asynchrone sur un site satellite.This example availability group possesses two synchronous-commit replicas at the main computing center and two asynchronous-commit replicas at a satellite site. Pour le rôle principal, tous les réplicas sont configurés pour l'accès en lecture-écriture, ce qui empêche les connexions avec intention de lecture au réplica principal dans tous les cas.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. Le rôle secondaire avec validation synchrone utilise la configuration par défaut d'accès à la connexion (« aucun »), ce qui empêche toute connexion cliente sous le rôle secondaire.The synchronous commit secondary role uses the default connection-access configuration ("none"), which prevents all client connections under the secondary role. Par opposition, les réplicas avec validation asynchrone sont configurés pour autoriser les connexions avec intention de lecture sous le rôle secondaire.In contrast, the asynchronous commit replicas are configured to permit read-intent connections under the secondary role. Le tableau suivant récapitule cette configuration d'exemple :The following table summarize this example configuration:

RéplicaReplica Mode de validationCommit Mode Rôle initialInitial Role Accès à la connexion pour le rôle secondaireConnection Access for Secondary Role Accès à la connexion pour le rôle principalConnection Access for Primary Role
Replica1Replica1 SynchroneSynchronous PrincipalPrimary AucunNone Lecture-écritureRead-write
Replica2Replica2 SynchroneSynchronous SecondarySecondary AucunNone Lecture-écritureRead-write
Replica3Replica3 AsynchroneAsynchronous SecondarySecondary Intention de lecture uniquementRead-intentonly Lecture-écritureRead-write
Replica4Replica4 AsynchroneAsynchronous SecondarySecondary Intention de lecture uniquementRead-intent only Lecture-écritureRead-write

En général, dans ce scénario d'exemple, les basculements se produisent uniquement entre les réplicas avec validation synchrone, et immédiatement après le basculement, les applications avec intention de lecture peuvent se reconnecter à l'un des réplicas secondaires avec validation asynchrone.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. Toutefois, lorsqu'un incident se produit au centre de calcul principal, les deux réplicas avec validation synchrone sont perdus.However, when a disaster occurs at the main computing center both synchronous-commit replicas are lost. L'administrateur de base de données sur le site satellite répond en effectuant un basculement manuel forcé vers un réplica secondaire avec validation asynchrone.The database administrator at the satellite site responds by performing a forced manual failover to an asynchronous-commit secondary replica. Les bases de données secondaires sur le réplica secondaire restant sont interrompues par le basculement forcé, ce qui les rend indisponibles pour les charges de travail en lecture seule.The secondary databases on the remaining secondary replica are suspended by the forced failover, making them unavailable for read-only workloads. Le nouveau réplica principal, qui est configuré pour les connexions en lecture-écriture, empêche la charge de travail avec intention de lecture de concurrencer la charge de travail en lecture-écriture.The new primary replica, which is configured for read-write connections, prevents the read-intent workload from competing with the read-write workload. Cela signifie que tant que l'administrateur de base de données n'a pas repris les bases de données secondaires sur le réplica secondaire restant avec validation asynchrone, les clients avec intention de lecture ne peuvent se connecter à aucun réplica de disponibilité.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.

Voir aussiSee Also

Vue d’ensemble des groupes de disponibilité Always On (SQL Server) Overview of Always On Availability Groups (SQL Server)
Écouteurs de groupe de disponibilité, connectivité client et basculement d’application (SQL Server) Availability Group Listeners, Client Connectivity, and Application Failover (SQL Server)
StatistiquesStatistics