Informazioni sull'accesso alla connessione client per le repliche di disponibilità (SQL Server)About Client Connection Access to Availability Replicas (SQL Server)

In un gruppo di disponibilità AlwaysOn è possibile configurare una o più repliche di disponibilità per consentire connessioni di sola lettura quando in esecuzione nel ruolo secondario, ovvero quando in esecuzione come replica secondaria.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). È inoltre possibile configurare ogni replica di disponibilità per consentire o escludere le connessioni di sola lettura quando l'esecuzione avviene nel ruolo primario, ossia come replica primaria.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).

Per facilitare l'accesso client ai database primari o secondari di un determinato gruppo di disponibilità, è necessario definire un listener del gruppo di disponibilità.To facilitate client access to primary or secondary databases of a given availability group, you should define an availability group listener. Per impostazione predefinita, il listener del gruppo di disponibilità instrada le connessioni in ingresso alla replica primaria.By default, the availability group listener directs incoming connections to the primary replica. Tuttavia, è possibile configurare un gruppo di disponibilità per supportare il routing di sola lettura che consente al listener del gruppo di disponibilità di reinstradare le richieste di connessione di applicazioni con finalità di lettura a una replica secondaria leggibile.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. Per altre informazioni, vedere Configurare il routing di sola lettura per un gruppo di disponibilità (SQL Server).For more information, see Configure Read-Only Routing for an Availability Group (SQL Server).

Durante un failover, una replica secondaria assume il ruolo primario e la replica primaria precedente passa al ruolo secondario.During a failover, a secondary replica transitions to the primary role and the former primary replica transitions to the secondary role. Durante il processo di failover, tutte le connessioni client sia alla replica primaria sia alle repliche secondarie vengono terminate.During the failover process, all client connections to both the primary replica and secondary replicas are terminated. Dopo il failover, quando un client si riconnette al listener del gruppo di disponibilità, il listener riconnette il client alla nuova replica primaria, ad eccezione di una richiesta di connessione con finalità di lettura.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. Se il routing di sola lettura viene configurato sul client e sulle istanze del server che ospitano la nuova replica primaria e su almeno un replica secondaria leggibile, le richieste di connessione con finalità di lettura vengono indirizzate nuovamente a una replica secondaria che supporta il tipo di accesso alla connessione richiesto dal client.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. Per garantire un'esperienza client senza problemi dopo un failover, è importante per configurare l'accesso alla connessione sia per i ruoli secondari, sia per quelli primari di ogni replica di 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.

Nota

Per informazioni sul listener del gruppo di disponibilità che gestisce le richieste di connessione del client, vedere Listener del gruppo di disponibilità, connettività client e failover dell'applicazione (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).

Contenuto dell'argomentoIn This Topic:

Tipi di accesso alla connessione supportati dal ruolo secondario Types of Connection Access Supported by the Secondary Role

Il ruolo secondario supporta tre alternative per le connessioni client, indicate di seguito:The secondary role supports three alternatives for client connections, as follows:

Nessuna connessioneNo connections
Non sono consentite connessioni utente.No user connections are allowed. I database secondari non sono disponibili per l'accesso in lettura.Secondary databases are not available for read access. Si tratta del comportamento predefinito nel ruolo secondario.This is the default behavior in the secondary role.

Solo connessioni con finalità di letturaOnly read-intent connections
I database secondari sono disponibili solo per le connessioni la cui proprietà di connessione Finalità dell'applicazione è impostata su Sola lettura , ovvero leconnessioni con finalità di lettura.The secondary database(s) are available only for connection for which the Application Intent connection property is set to ReadOnly (read-intent connections).

Per informazioni su questa proprietà di connessione, vedere 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.

Consentire qualsiasi connessione di sola letturaAllow any read-only connection
I database secondari sono tutti disponibili per le connessioni con accesso in lettura.The secondary database(s) are all available for read access connections. Questa opzione consente la connessione di client di versioni precedenti.This option allows lower versioned clients to connect.

Per altre informazioni, vedere Configurare l'accesso in sola lettura in una replica di disponibilità (SQL Server).For more information, see Configure Read-Only Access on an Availability Replica (SQL Server).

Tipi di accesso alla connessione supportati dal ruolo primario Types of Connection Access Supported by the Primary Role

Il ruolo primario supporta due alternative per le connessioni client, indicate di seguito:The primary role supports two alternatives for client connections, as follows:

Tutte le connessioni sono consentiteAll connections are allowed
Sono consentite sia le connessioni di lettura e scrittura sia le connessioni in sola lettura ai database primari.Both read-write and read-only connections are allowed to primary databases. Si tratta del comportamento predefinito per il ruolo primario.This is the default behavior for the primary role.

Consentire solo le connessioni in lettura/scritturaAllow only read-write connections
Quando la proprietà di connessione Finalità dell'applicazione è impostata su Lettura/Scrittura o non è impostata, la connessione è consentita.When the Application Intent connection property is set to ReadWrite or is not set, the connection is allowed. Le connessioni per cui la parola chiave della stringa di connessione Application Intent è impostata su ReadOnly non sono consentite.Connections for which the Application Intent connection string keyword is set to ReadOnly are not allowed. Se si consentono solo le connessioni in lettura/scrittura, è possibile impedire la connessione, per errore, di un carico di lavoro con finalità di lettura alla replica primaria da parte dei clienti.Allowing only read-write connections can help prevent your customers from connecting a read-intent work load to the primary replica by mistake.

Per informazioni su questa proprietà di connessione, vedere 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.

Per altre informazioni, vedere Configurare l'accesso in sola lettura in una replica di disponibilità (SQL Server).For more information, see Configure Read-Only Access on an Availability Replica (SQL Server).

Effetti della configurazione dell'accesso alla connessione sulla connettività client How the Connection Access Configuration Affects Client Connectivity

Le impostazioni dell'accesso alla connessione di una replica determinano l'esito positivo o negativo di un tentativo di connessione.The connection access settings of a replica determine whether a connection attempt fails or succeeds. Nella tabella seguente viene riepilogato l'esito positivo o negativo di un tentativo di connessione per ciascuna impostazione di accesso alla connessione.The following table summarizes whether a given connection attempt succeeds or fails for each the connection-access setting.

Ruolo di replicaReplica Role Accesso alla connessione supportato sulla replicaConnection Access Supported on Replica Finalità di connessioneConnection Intent Risultato tentativo di connessioneConnection-Attempt Result
SecondariSecondary TuttoAll Finalità di lettura, lettura e scrittura o nessuna finalità di connessione specificataRead-intent, read-write, or no connection intent specified Operazione completataSuccess
SecondariSecondary Nessuno (comportamento predefinito nel ruolo secondario).None (This is the default secondary behavior.) Finalità di lettura, lettura e scrittura o nessuna finalità di connessione specificataRead-intent, read-write, or no connection intent specified FailureFailure
SecondariSecondary Solo finalità di letturaRead-intent only Con finalità di letturaRead-intent Operazione completataSuccess
SecondariSecondary Solo finalità di letturaRead-intent only Finalità di lettura e scrittura o nessuna finalità di connessione specificataRead-write or no connection intent specified FailureFailure
PrimariaPrimary Tutto (comportamento predefinito del ruolo primario).All (This is the default primary behavior.) Sola lettura, lettura e scrittura o nessuna finalità di connessione specificataRead-only, read-write, or no connection intent specified Operazione completataSuccess
PrimariaPrimary Lettura/scritturaRead-write Solo finalità di letturaRead-intent only FailureFailure
PrimariaPrimary Lettura/scritturaRead-write Finalità di lettura e scrittura o nessuna finalità di connessione specificataRead-write or no connection intent specified Operazione completataSuccess

Per informazioni sulla configurazione di un gruppo di disponibilità in modo che accetti le connessioni dei client alle proprie repliche, vedere Listener del gruppo di disponibilità, connettività client e failover dell'applicazione (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).

Esempio di configurazione dell'accesso alla connessioneExample Connection-Access Configuration

A seconda della modalità di configurazione delle diverse repliche di disponibilità per l'accesso alla connessione, è possibile che il supporto per le connessioni client cambi dopo il failover di un gruppo di disponibilità.Depending on how different availability replicas are configured for connection access, support for client connections might change after an availability group fails over. Ad esempio, si consideri un gruppo di disponibilità per il quale la creazione di report viene eseguita nelle repliche secondarie con commit asincrono remote.For example, consider an availability group for which reporting is performed on remote asynchronous-commit secondary replicas. Per tutte le applicazioni di sola lettura per i database in questo gruppo di disponibilità la proprietà di connessione Finalità dell'applicazione è impostata su Sola lettura, in modo che tutte le connessioni in sola lettura abbiano finalità di lettura.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.

Questo gruppo di disponibilità di esempio dispone di due repliche con commit sincrono al centro del calcolo principale e due repliche con commit asincrono a un sito satellite.This example availability group possesses two synchronous-commit replicas at the main computing center and two asynchronous-commit replicas at a satellite site. Per il ruolo primario, tutte le repliche vengono configurate per l'accesso di lettura/scrittura che impedisce le connessioni con finalità di lettura alla replica primaria in tutte le situazioni.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. Nel ruolo secondario con commit sincrono viene utilizzata la configurazione dell'accesso alla connessione predefinita ("nessuno") tramite cui vengono impedite tutte le connessioni client nel ruolo secondario.The synchronous commit secondary role uses the default connection-access configuration ("none"), which prevents all client connections under the secondary role. Al contrario, le repliche con commit asincrono sono configurate per consentire le connessioni con finalità di lettura nel ruolo secondario.In contrast, the asynchronous commit replicas are configured to permit read-intent connections under the secondary role. Nella tabella seguente viene riepilogata questa configurazione di esempio:The following table summarize this example configuration:

ReplicaReplica Modalità di commitCommit Mode Ruolo inizialeInitial Role Accesso alla connessione per il ruolo secondarioConnection Access for Secondary Role Accesso alla connessione per il ruolo primarioConnection Access for Primary Role
Replica1Replica1 SincronaSynchronous PrimariaPrimary NessunoNone Lettura/scritturaRead-write
Replica2Replica2 SincronaSynchronous SecondariSecondary NessunoNone Lettura/scritturaRead-write
Replica3Replica3 AsincronaAsynchronous SecondariSecondary Solo con finalità di letturaRead-intentonly Lettura/scritturaRead-write
Replica4Replica4 AsincronaAsynchronous SecondariSecondary Solo finalità di letturaRead-intent only Lettura/scritturaRead-write

In genere, in questo scenario di esempio, i failover si verificano solo tra le repliche con commit sincrono e immediatamente dopo il failover, le applicazioni con finalità di lettura sono in grado di riconnettersi a una delle repliche secondarie con commit asincrono.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. Tuttavia, in caso di emergenza nel centro di elaborazione principale vengono perse entrambe le repliche con commit sincrono.However, when a disaster occurs at the main computing center both synchronous-commit replicas are lost. L'amministratore del database del sito satellite esegue un failover manuale forzato a una replica secondaria con commit asincrono.The database administrator at the satellite site responds by performing a forced manual failover to an asynchronous-commit secondary replica. I database secondari nella replica secondaria rimanente vengono sospesi dal failover forzato e diventano pertanto non disponibili per i carichi di lavoro di sola lettura.The secondary databases on the remaining secondary replica are suspended by the forced failover, making them unavailable for read-only workloads. La nuova replica primaria, configurata per le connessioni in lettura/scrittura, evita che il carico di lavoro con finalità di lettura entri in competizione con il carico di lavoro di lettura/scrittura.The new primary replica, which is configured for read-write connections, prevents the read-intent workload from competing with the read-write workload. Ciò significa che finché l'amministratore del database non riprende i database secondari nella replica del secondaria rimanente con commit asincrono, i client con finalità di lettura non saranno in grado di connettersi ad alcuna replica di 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.

Vedere ancheSee Also

Panoramica di Gruppi di disponibilità AlwaysOn (SQL Server) Overview of Always On Availability Groups (SQL Server)
Listener del gruppo di disponibilità, connettività client e failover dell'applicazione (SQL Server) Availability Group Listeners, Client Connectivity, and Application Failover (SQL Server)
StatisticheStatistics