Creare o configurare un listener del gruppo di disponibilità (SQL Server)Create or Configure an Availability Group Listener (SQL Server)

In questo argomento viene illustrato come creare o configurare un singolo listener del gruppo di disponibilità per un gruppo di disponibilità AlwaysOn usando SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLo PowerShell in SQL Server 2017SQL Server 2017.This topic describes how to create or configure a single availability group listener for an Always On availability group by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell in SQL Server 2017SQL Server 2017.

Importante

Per creare il primo listener di un gruppo di disponibilità, è consigliabile utilizzare SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLo SQL ServerSQL Server PowerShell.To create the first availability group listener of an availability group, we strongly recommend that you SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or SQL ServerSQL Server PowerShell. Evitare di creare un listener direttamente nel cluster WSFC se non necessario, ad esempio per creare un listener aggiuntivo.Avoid creating a listener directly in the WSFC cluster except when necessary, for example, to create an additional listener.

Prima di iniziare Before You Begin

Esiste già un listener per questo gruppo di disponibilità? Does a Listener Exist for this Availability Group Already?

Per determinare se un listener già esiste per il gruppo di disponibilitàTo determine whether a listener already exists for the availability group

Nota

Se è già presente un listener e si vuole creare un listener aggiuntivo, vedere Per creare un listener aggiuntivo per un gruppo di disponibilità (facoltativo), più avanti in questo argomento.If a listener already exists and you want to create an additional listener, see To Create An Additional Listener for an Availability Group (Optional), later in this topic.

Limitazioni e restrizioni Limitations and Restrictions

  • È possibile creare un solo listener per gruppo di disponibilità tramite SQL ServerSQL Server.You can create only one listener per availability group through SQL ServerSQL Server. Ogni gruppo di disponibilità richiede in genere un solo listener.Typically, each availability group requires only one listener. Tuttavia, alcuni scenari del cliente richiedono più listener per un gruppo di disponibilità.However, some customer scenarios require multiple listeners for one availability group. Dopo avere creato un listener tramite SQL Server, è possibile utilizzare Windows PowerShell per i cluster di failover o Gestione cluster di failover WSFC per creare listener aggiuntivi.After creating a listener through SQL Server, you can use Windows PowerShell for failover clusters or the WSFC Failover Cluster Manager to create additional listeners. Per altre informazioni, vedere Per creare un listener aggiuntivo per un gruppo di disponibilità (facoltativo), più avanti in questo argomento.For more information, see To Create An Additional Listener for an Availability Group (Optional), later in this topic.

Indicazioni Recommendations

L'utilizzo di un indirizzo IP statico è consigliato, sebbene non obbligatorio, per più configurazioni di subnet.Using a static IP address is recommended, although not required, for multiple subnet configurations.

Prerequisiti Prerequisites

  • È necessario essere connessi all'istanza del server che ospita la replica primaria.You must be connected to the server instance that hosts the primary replica.

  • Se si imposta un listener del gruppo di disponibilità su più subnet e si pensa di utilizzare gli indirizzi IP statici, è necessario ottenere gli indirizzi IP statici di ogni subnet che ospita una replica di disponibilità per il gruppo di disponibilità per il quale si crea il listener.If you are setting up an availability group listener across multiple subnets and plan to use static IP addresses, you need to get the static IP address of every subnet that hosts an availability replica for the availability group for which you are creating the listener. In genere, è necessario richiedere gli indirizzi IP statici agli amministratori di rete.Usually, you will need to ask your network administrators for the static IP addresses.

Importante

Prima di creare il primo listener, è consigliabile leggere l'agomento Connettività client AlwaysOn (SQL Server).Before you create your first listener, we strongly recommend that you read Always On Client Connectivity (SQL Server).

Requisiti per il nome DNS di un listener del gruppo di disponibilità Requirements for the DNS Name of an Availability Group Listener

Ogni listener del gruppo di disponibilità richiede un nome host DNS univoco nel dominio e in NetBIOS.Each availability group listener requires a DNS host name that is unique in the domain and in NetBIOS. Il nome DNS è un valore stringa.The DNS name is a string value. Può contenere solo caratteri alfanumerici, trattini (-) e caratteri di sottolineatura (), in qualsiasi ordine.This name can contain only alphanumeric characters, dashes (-), and hyphens (), in any order. Per i nomi host DNS non viene fatta distinzione tra maiuscole e minuscole.DNS host names are case insensitive. La lunghezza massima è di 63 caratteri, tuttavia in SQL Server Management StudioSQL Server Management Studioè possibile specificare una lunghezza massima di 15 caratteri.The maximum length is 63 characters, however, in SQL Server Management StudioSQL Server Management Studio, the maximum length you can specify is 15 characters.

È consigliabile specificare una stringa significativa.We recommend that you specify a meaningful string. Ad esempio, per un gruppo di disponibilità denominato AG1un nome host DNS significativo potrebbe essere ag1-listener.For example, for an availability group named AG1, a meaningful DNS host name would be ag1-listener.

Importante

NetBIOS riconosce solo i primi 15 caratteri di dns_name.NetBIOS recognizes only the first 15 chars in the dns_name. Se si dispone di due cluster WSFC controllati dallo stesso dominio Active Directory e si tenta di creare listener del gruppo di disponibilità in entrambi i cluster usando nomi con più di 15 caratteri e un prefisso a 15 caratteri identico, verrà restituito un errore in cui si segnala che non è possibile portare online la risorsa del nome di rete virtuale.If you have two WSFC clusters that are controlled by the same Active Directory and you try to create availability group listeners in both of clusters using names with more than 15 characters and an identical 15 character prefix, you will get an error reporting that the Virtual Network Name resource could not be brought online. Per informazioni sulle regole di denominazione dei prefissi per i nomi DNS, vedere Assegnare nomi ai domini.For information about prefix naming rules for DNS names, see Assigning Domain Names.

Autorizzazioni di Windows Windows Permissions

AutorizzazioniPermissions CollegamentoLink
Il nome dell'oggetto cluster WSFC che ospita il gruppo di disponibilità deve avere l'autorizzazione per la creazione degli oggetti computer .The cluster object name (CNO) of WSFC cluster that is hosting the availability group must have Create Computer objects permission.

Per impostazione predefinita, in Active Directory un nome di oggetto cluster non ha l'autorizzazione per la creazione degli oggetti computer assegnata in modo esplicito e può creare 10 oggetti computer virtuali.In Active Directory, a CNO by default does not have Create Computer objects permission explicitly and can create 10 virtual computer objects (VCOs). Dopo aver creato 10 oggetti computer virtuali, la creazione di ulteriori oggetti di questo tipo avrà esito negativo.After 10 VCOs are created, the creation of additional VCOs will fail. È possibile evitare questo problema concedendo in modo esplicito l'autorizzazione al nome dell'oggetto cluster WSFC.You can avoid this by granting the permission explicitly to the WSFC cluster’s CNO. Si noti che gli oggetti computer virtuali per i gruppi di disponibilità eliminati non vengono rimossi automaticamente da Active Directory e continuano a essere conteggiati ai fini del limite predefinito di 10 oggetti a meno che non vengano eliminati manualmente.Note that VCOs for availability groups that you have deleted are not automatically deleted in Active Directory and count against your 10 VCO default limit unless they are manually deleted.

Nota: in alcune organizzazioni i criteri di sicurezza non permettono di concedere l'autorizzazione per la creazione di oggetti computer a singoli account utente.Note: In some organizations, the security policy prohibits granting Create Computer objects permission to individual user accounts.
Passaggi per la configurazione dell'account per chi installa il cluster nella Guida dettagliata al cluster di failover: Configurazione di account in Active DirectorySteps for configuring the account for the person who installs the cluster in Failover Cluster Step-by-Step Guide: Configuring Accounts in Active Directory

Passaggi per la configurazione pre-installazione dell'account del nome cluster nella Guida dettagliata al cluster di failover: Configurazione di account in Active DirectorySteps for prestaging the cluster name account in Failover Cluster Step-by-Step Guide: Configuring Accounts in Active Directory
Se l'organizzazione richiede la configurazione pre-installazione dell'account del computer per un nome di rete virtuale del listener, sarà necessaria l'appartenenza al gruppo Account Operator o l'assistenza dell'amministratore di dominio.If your organization requires that you prestage the computer account for a listener virtual network name, you will need membership in the Account Operator group or your domain administrator's assistance. Passaggi per la configurazione pre-installazione di un account per un servizio o un'applicazione cluster nella Guida dettagliata al cluster di failover: Configurazione di account in Active Directory.Steps for prestaging an account for a clustered service or application in Failover Cluster Step-by-Step Guide: Configuring Accounts in Active Directory.

Suggerimento

In genere, è più semplice non effettuare la configurazione pre-installazione dell'account del computer per un nome di rete virtuale del listener.Generally, it is simplest not to prestage the computer account for a listener virtual network name. Se è possibile, procedere con la creazione e la configurazione automatica dell'account durante l'esecuzione della procedura guidata Disponibilità elevata WSFC.If you can, let the account to be created and configured automatically when you run the WSFC High Availability wizard.

Autorizzazioni di SQL Server SQL Server Permissions

AttivitàTask AutorizzazioniPermissions
Per creare un listener del gruppo di disponibilitàTo create an availability group listener Sono necessarie l'appartenenza al ruolo predefinito del server sysadmin e l'autorizzazione server CREATE AVAILABILITY GROUP oppure l'autorizzazione ALTER ANY AVAILABILITY GROUP o CONTROL SERVER.Requires membership in the sysadmin fixed server role and either CREATE AVAILABILITY GROUP server permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.
Per modificare un listener del gruppo di disponibilità esistenteTo modify an existing availability group listener È necessaria l'autorizzazione ALTER AVAILABILITY GROUP nel gruppo di disponibilità, l'autorizzazione CONTROL AVAILABILITY GROUP, l'autorizzazione ALTER ANY AVAILABILITY GROUP o l'autorizzazione CONTROL SERVER.Requires ALTER AVAILABILITY GROUP permission on the availability group, CONTROL AVAILABILITY GROUP permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Suggerimento

In Creazione guidata Gruppo di disponibilità è supportata la creazione del listener per un nuovo gruppo di disponibilità.The New Availability Group wizard supports creation of the listener for a new availability group.

Per creare o configurare un listener del gruppo di disponibilitàTo create or configure an availability group listener

  1. In Esplora oggetti connettersi all'istanza del server che ospita la replica primaria del gruppo di disponibilità, quindi fare clic sul nome del server per espandere l'albero del server.In Object Explorer, connect to the server instance that hosts the primary replica of the availability group, and click the server name to expand the server tree.

  2. Espandere il nodo Disponibilità elevata AlwaysOn e il nodo Gruppi di disponibilità .Expand the Always On High Availability node and the Availability Groups node.

  3. Fare clic sul gruppo di disponibilità di cui si desidera configurare il listener e scegliere una delle alternative seguenti:Click the availability group whose listener you want to configure, and choose one of the following alternatives:

    • Per creare un listener, fare clic con il pulsante destro del mouse sul nodo Listener del gruppo di disponibilità e selezionare il comando Nuovo listener .To create a listener, right-click the Availability group Listeners node, and select the New Listener command. Verrà aperta la finestra di dialogo Nuovo listener gruppo di disponibilità .This opens the New Availability Group Listener dialog box. Per ulteriori informazioni, vedere Aggiungi listener del gruppo di disponibilità (finestra di dialogo), più avanti in questo argomento.For more information, see Add Availability Group Listener (Dialog Box), later in this topic.

    • Per modificare il numero di porta di un listener esistente, espandere il nodo Listener del gruppo di disponibilità , fare clic con il pulsante destro del mouse sul listener e selezionare il comando Proprietà .To change the port number of an existing listener, expand the Availability group Listeners node, right-click the listener, and select the Properties command. Immettere il nuovo numero di porta nel campo Porta e fare clic su OK.Enter the new port number into the Port field, and click OK.

Nuovo listener gruppo di disponibilità (finestra di dialogo) New Availability Group Listener (Dialog Box)

Nome DNS del listenerListener DNS Name
Specifica il nome host DNS del listener del gruppo di disponibilità.Specifies the DNS host name of the availability group listener. È inoltre necessario che il nome DNS sia una stringa univoca nel dominio e in NetBIOS.The DNS name is a string must be unique in the domain and in NetBIOS. Può contenere solo caratteri alfanumerici, trattini (-) e caratteri di sottolineatura (), in qualsiasi ordine.This name can contain only alphanumeric characters, dashes (-), and hyphens (), in any order. Per i nomi host DNS non viene fatta distinzione tra maiuscole e minuscole.DNS host names are case insensitive. La lunghezza massima è di 15 caratteri.The maximum length is 15 characters.

Per ulteriori informazioni, vedere Requisiti per il nome DNS di un listener del gruppo di disponibilità, più indietro in questo argomento.For more information, see Requirements for the DNS Name of an Availability Group Listener, earlier in this topic.

PortaPort
Porta TPC utilizzata dal listener.The TPC port used by this listener.

Modalità di reteNetwork Mode
Indica il protocollo TCP utilizzato dal listener. È possibile scegliere uno dei seguenti valori:Indicates the TCP protocol used by the listener, one of:

DHCPDHCP
Il listener utilizzerà un indirizzo IP dinamico assegnato da un server in cui viene eseguito il protocollo DHCP (Dynamic Host Configuration Protocol).The listener will us a dynamic IP address that is assigned by a server running the Dynamic Host Configuration Protocol (DHCP). DHCP è limitato a una sola subnet.DHCP is limited to a single subnet.

Importante

Non è consigliabile utilizzare DHCP negli ambienti di produzione.We do not recommend DHCP in production environment. Se si verifica un periodo di inattività e il lease IP DHCP scade, è necessario del tempo aggiuntivo per registrare il nuovo indirizzo IP della rete DHCP che è associato al nome DNS del listener e influisce sulla connettività client.If there is a down time and the DHCP IP lease expires, extra time is required to register the new DHCP network IP address that is associated with the listener DNS name and impact the client connectivity. DHCP può essere tranquillamente usato per la configurazione dell'ambiente di sviluppo e test per verificare le funzioni di base di gruppi di disponibilità e per l'integrazione con le applicazioni.However, DHCP is good for setting up your development and testing environment to verify basic functions of availability groups and for integration with your applications.

Indirizzo IP staticoStatic IP
Il listener utilizzerà uno o più indirizzi IP statici.The listener will use one or more static IP addresses. Gli indirizzi IP aggiuntivi sono facoltativi.Additional IP addresses are optional. Per creare un listener del gruppo di disponibilità tra più subnet, è necessario specificare un indirizzo IP statico per ogni subnet nella configurazione del listener.To create an availability group listener across multiple subnets, for each subnet you must specify a static IP address in the listener configuration. Contattare l'amministratore della rete per ottenere questi indirizzi IP statici.Contact your network administrator to get these static IP addresses.

Se si seleziona Indirizzo IP statico , verrà visualizzata una griglia della subnet sotto il campo Modalità di rete .If you select Static IP a subnet grid appears below the Network Mode field. In questa griglia sono visualizzate informazioni su ogni subnet alla quale è possibile accedere da questo listener del gruppo di disponibilità.This grid displays information about each subnet that can be accessed by this availability group listener. La griglia è vuota finché non si aggiunge un indirizzo IP statico facendo clic su Aggiungi.This grid is empty until you add a static IP address by clicking Add.

Le colonne sono le seguenti:The columns are as follows:

SubnetSubnet
Viene visualizzato l'identificatore di ogni subnet aggiunta al listener del gruppo di disponibilità.Displays the identifier of each subnet that you add to the availability group listener.

Indirizzo IPIP Address
Viene visualizzato l'indirizzo IP di una determinata subnet.Displays the IP address of a given subnet. Per una determinata subnet, l'indirizzo IP è un indirizzo IPv4 o IPv6.For a given subnet, the IP address is either an IPv4 address or an IPv6 address.

AggiungiAdd
Fare clic per aggiungere un indirizzo IP statico a una subnet selezionata o a un'altra subnet per questo listener.Click to add to add a static IP address to a selected subnet or to another subnet for this listener. Verrà aperta la finestra di dialogo Aggiungi indirizzo IP .This opens the Add IP Address dialog box. Per altre informazioni, vedere l'argomento della Guida Finestra di dialogo Aggiungi indirizzo IP (SQL Server Management Studio).For more information, see the Add IP Address Dialog Box (SQL Server Management Studio) help topic.

RimuoviRemove
Fare clic per rimuovere la subnet selezionata dal listener.Click to remove the selected subnet from this listener.

OKOK
Fare clic per creare il listener del gruppo di disponibilità specificato.Click to create the specified availability group listener.

Utilizzo di Transact-SQL Using Transact-SQL

Per creare o configurare un listener del gruppo di disponibilitàTo create or configure an availability group listener

  1. Connettersi all'istanza del server che ospita la replica primaria.Connect to the server instance that hosts the primary replica.

  2. Utilizzare l'opzione LISTENER dell'istruzione CREATE AVAILABILITY GROUP o l'opzione ADD LISTENER dell'istruzione ALTER AVAILABILITY GROUP .Use the LISTENER option of the CREATE AVAILABILITY GROUP statement or the ADD LISTENER option of the ALTER AVAILABILITY GROUP statement.

    Nell'esempio seguente viene aggiunta un listener del gruppo di disponibilità a un gruppo di disponibilità denominato MyAg2.The following example adds an availability group listener to an existing availability group named MyAg2. e un nome DNS univoco, MyAg2ListenerIvP6, per questo listener.A unique DNS name, MyAg2ListenerIvP6, is specified for this listener. Le due repliche si trovano in subnet diverse, pertanto, come consigliato, per il listener devono essere utilizzati indirizzi IP statici.The two replicas are on different subnets, so , as recommended, the listener uses static IP addresses. Per ognuna delle due repliche di disponibilità, tramite la clausola WITH IP si specifica un indirizzo IP statico, 2001:4898:f0:f00f::cf3c and 2001:4898:e0:f213::4ce2, per il quale è utilizzato il formato IPv6.For each of the two availability replicas, the WITH IP clause specifies a static IP address, 2001:4898:f0:f00f::cf3c and 2001:4898:e0:f213::4ce2, which use the IPv6 format. In questo esempio si specifica anche utilizza l'argomento PORT facoltativo per indicare la porta 60173 come porta del listener.This example also specifies uses the optional PORT argument to specify port 60173 as the listener port.

    ALTER AVAILABILITY GROUP MyAg2   
          ADD LISTENER ‘MyAg2ListenerIvP6’ ( WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) , PORT = 60173 );   
    GO  
    

Utilizzo di PowerShell Using PowerShell

Per creare o configurare un listener del gruppo di disponibilitàTo create or configure an availability group listener

  1. Spostarsi nella directory (cd) dell'istanza del server che ospita la replica primaria.Change directory (cd) to the server instance that hosts the primary replica.

  2. Per creare o modificare un listener del gruppo di disponibilità, utilizzare uno dei cmdlet seguenti:To create or modify an availability group listener use one of the following cmdlets:

    New-SqlAvailabilityGroupListenerNew-SqlAvailabilityGroupListener
    Crea un nuovo listener del gruppo di disponibilità e lo collega a un gruppo di disponibilità esistente.Creates a new availability group listener and attaches it to an existing availability group.

    Ad esempio, il comando New-SqlAvailabilityGroupListener seguente consente di creare un listener del gruppo di disponibilità denominato MyListener per il gruppo di disponibilità MyAg.For example, the following New-SqlAvailabilityGroupListener command creates an availability group listener named MyListener for the availability group MyAg. Il listener userà l'indirizzo IPv4 passato al parametro -StaticIp come indirizzo IP virtuale.This listener will use the IPv4 address passed to the -StaticIp parameter as its virtual IP address.

    New-SqlAvailabilityGroupListener -Name MyListener `   
    -StaticIp '192.168.3.1/255.255.252.0' `   
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg  
    

    Set-SqlAvailabilityGroupListenerSet-SqlAvailabilityGroupListener
    Modifica l'impostazione della porta su un listener del gruppo di disponibilità esistente.Modifies the port setting on an existing availability group listener.

    Ad esempio, il comando Set-SqlAvailabilityGroupListener consente di impostare il numero di porta per il listener del gruppo di disponibilità denominato MyListener su 1535.For example, the following Set-SqlAvailabilityGroupListener command sets the port number for the availability group listener named MyListener to 1535. Questa porta viene utilizzata per restare in ascolto delle connessioni al listener.This port is used to listen for connections to the listener.

    Set-SqlAvailabilityGroupListener -Port 1535 `   
    -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg\AGListeners\MyListener  
    

    Add-SqlAGListenerstaticIpAdd-SqlAGListenerstaticIp
    Aggiunge un indirizzo IP statico a una configurazione del listener del gruppo di disponibilità esistente.Adds a static IP address to an existing availability group listener configuration. L'indirizzo IP può essere un indirizzo IPv4 con subnet o un indirizzo IPv6.The IP address can be an IPv4 address with subnet, or an IPv6 address.

    Ad esempio, il comando Add-SqlAGListenerstaticIp seguente consente di aggiungere un indirizzo IPv4 statico al listener del gruppo di disponibilità MyListener nel gruppo di disponibilità MyAg.For example, the following Add-SqlAGListenerstaticIp command adds a static IPv4 address to the availability group listener MyListener on the availability group MyAg. Questo indirizzo IPv6 viene utilizzato come indirizzo IP virtuale del listener nella subnet 255.255.252.0.This IPv6 address serves as the virtual IP address of the listener on the subnet 255.255.252.0. Se il gruppo di disponibilità viene esteso a più subnet, è consigliabile aggiungere un indirizzo IP statico per ogni subnet al listener.If the availability group spans multiple subnets, you should add a static IP address for each subnet to the listener.

    $path = "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAg\AGListeners\ MyListener" `   
    Add-SqlAGListenerstaticIp -Path $path `   
    -StaticIp "2001:0db8:85a3:0000:0000:8a2e:0370:7334"  
    

    Nota

    Per visualizzare la sintassi di un cmdlet, usare il cmdlet Get-Help nell'ambiente SQL ServerSQL Server PowerShell.To view the syntax of a cmdlet, use the Get-Help cmdlet in the SQL ServerSQL Server PowerShell environment. Per altre informazioni, vedere Get Help SQL Server PowerShell.For more information, see Get Help SQL Server PowerShell.

    Per impostare e utilizzare il provider PowerShell per SQL ServerTo set up and use the SQL Server PowerShell provider

Risoluzione dei problemiTroubleshooting

Impossibile creare un listener del gruppo di disponibilità a causa di quote di Active Directory Failure to Create An Availability Group Listener Because of Active Directory Quotas

La creazione di un nuovo listener del gruppo di disponibilità può avere esito negativo perché è stata raggiunta una quota di Active Directory per l'account del computer del nodo del cluster interessato.The creation of a new availability group listener may fail upon creation because you have reached an Active Directory quota for the participating cluster node machine account. Per ulteriori informazioni, vedere gli articoli seguenti:For more information, see the following articles:

Completamento: Creazione di un listener del gruppo di disponibilità Follow-up: After Creating an Availability Group Listener

Parola chiave MultiSubnetFailover e funzionalità associate MultiSubnetFailover Keyword and Associated Features

MultiSubnetFailover è una nuova parola chiave della stringa di connessione usata per accelerare il failover con i gruppi di disponibilità AlwaysOn e le istanze del cluster di failover AlwaysOn in SQL Server 2012.MultiSubnetFailover is a new connection string keyword used to enable faster failover with Always On Availability Groups and Always On Failover Cluster Instances in SQL Server 2012. Le tre seguenti funzionalità secondarie vengono abilitate quando MultiSubnetFailover=True è impostato nella stringa di connessione:The following three sub-features are enabled when MultiSubnetFailover=True is set in connection string:

  • Failover multisubnet più rapido su un listener su più subnet per un gruppo di disponibilità AlwaysOn o istanze del cluster di failover.Faster multi-subnet failover to a multi-subnet listener for an Always On Availability Group or Failover Cluster Instances.

  • Failover a singola subnet più rapido su un listener su una sola subnet per un gruppo di disponibilità AlwaysOn o istanze del cluster di failover.Faster single subnet failover to a single subnet listener for an Always On Availability Group or Failover Cluster Instances.

    • Questa funzionalità viene usata per la connessione a un listener in cui è disponibile un singolo indirizzo IP in una sola subnet.This feature is used when connecting to a listener that has a single IP in a single subnet. Vengono effettuati tentativi di connessione TCP più aggressivi per accelerare i failover su una sola subnet.This performs more aggressive TCP connection retries to speed up single subnet failovers.
  • Risoluzione dell'istanza denominata su un'istanza del cluster di failover AlwaysOn su più subnet.Named instance resolution to a multi-subnet Always On Failover Cluster Instance.

    • Questo consente di aggiungere il supporto della risoluzione dell'istanza denominata per istanze del cluster di failover AlwaysOn con endpoint su più subnet.This is to add named instance resolution support for an Always On Failover Cluster Instances with multiple subnet endpoints.

    MultiSubnetFailover=True non supportato da .NET Framework 3.5 o OLEDBMultiSubnetFailover=True Not Supported by NET Framework 3.5 or OLEDB

    Problema: se nel gruppo di disponibilità o nell'istanza del cluster di failover è disponibile un nome di listener (noto come nome di rete o punto di accesso client in Gestione cluster WSFC) dipendente da più indirizzi IP di subnet diverse e si sta utilizzando ADO.NET con .NET Framework 3.5SP1 o SQL Native Client 11.0 OLEDB, potenzialmente il 50% delle richieste di connessione client al listener del gruppo di disponibilità riscontrerà un timeout di connessione.Issue: If your Availability Group or Failover Cluster Instance has a listener name (known as the network name or Client Access Point in the WSFC Cluster Manager) depending on multiple IP addresses from different subnets, and you are using either ADO.NET with .NET Framework 3.5SP1 or SQL Native Client 11.0 OLEDB, potentially 50% of your client-connection requests to the availability group listener will hit a connection timeout.

    Soluzioni alternative: è consigliabile effettuare una delle seguenti attività.Workarounds: We recommend that you do one of the following tasks.

  • Se non si dispone dell'autorizzazione per usare le risorse cluster, modificare il timeout di connessione in 30 secondi (questo valore corrisponde a un periodo di timeout TCP di 20 secondi più un buffer di 10).If do not have the permission to manipulate cluster resources, change your connection timeout to 30 seconds (this value results in a 20-second TCP timeout period plus a 10-second buffer).

    Vantaggi: se si verifica un failover tra subnet, il tempo di recupero del client è breve.Pros: If a cross-subnet failover occurs, client recovery time is short.

    Svantaggi: la metà delle connessioni client impiegherà più di 20 secondiCons: Half of the client connections will take more than 20 seconds

  • Se si dispone dell'autorizzazione per utilizzare le risorse cluster, l'approccio migliore consiste nell'impostare il nome di rete del listener del gruppo di disponibilità su RegisterAllProvidersIP=0.If you have the permission to manipulate cluster resources, the more recommended approach is to set the network name of your availability group listener to RegisterAllProvidersIP=0. Per ulteriori informazioni, vedere "Impostazione RegisterAllProvidersIP" più avanti in questa sezione.For more information, see "RegisterAllProvidersIP Setting” later in this section.

    Vantaggi: non è necessario aumentare il valore di timeout della connessione client.Pros: You do not need to increase your client-connection timeout value.

    Svantaggi: se si verifica un failover tra subnet, il tempo di recupero del client potrebbe essere di almeno 15 minuti, a seconda dell'impostazione HostRecordTTL e della pianificazione della replica DNS/AD tra siti.Cons: If a cross-subnet failover occurs, the client recovery time could be 15 minutes or longer, depending on your HostRecordTTL setting and the setting of your cross-site DNS/AD replication schedule.

Impostazione RegisterAllProvidersIP RegisterAllProvidersIP Setting

Se si usa SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLo PowerShell per creare un listener del gruppo di disponibilità, il punto di accesso client viene creato in WSFC con la proprietà RegisterAllProvidersIP impostata su 1 (true).When you use SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell to create an availability group listener, the Client Access Point is created in WSFC with the RegisterAllProvidersIP property set to 1 (true). L'effetto del valore di questa proprietà dipende dalla stringa di connessione client, come indicato di seguito:The effect of this property value depends on the client connection string, as follows:

  • Stringhe di connessione che impostano MultiSubnetFailover su trueConnection strings that set MultiSubnetFailover to true

    Gruppi di disponibilità Always OnAlways On availability groups imposta la proprietà RegisterAllProvidersIP su 1 per ridurre il tempo di riconnessione in seguito a un failover per i client le cui stringhe di connessione specificano MultiSubnetFailover = True, come consigliato. sets the RegisterAllProvidersIP property to 1 in order to reduce re-connection time after a failover for clients whose client connection strings specify MultiSubnetFailover = True, as recommended. Per sfruttare la funzionalità di più subnet del listener, i client possono richiedere un provider di dati che supporta la parola chiave MultiSubnetFailover .Note that to take advantage of the listener multi-subnet feature, your clients might require a data provider that supports the MultiSubnetFailover keyword. Per informazioni sul supporto per la connettività client, vedere Connettività client AlwaysOn (SQL Server).For information about driver support for multi-subnet failover, see Always On Client Connectivity (SQL Server).

    Per informazioni sul clustering su più subnet, vedere Clustering su più subnet di SQL Server (SQL Server).For information about multi-subnet clustering, see SQL Server Multi-Subnet Clustering (SQL Server).

    Suggerimento

    Quando RegisterAllProvidersIP = 1, se si esegue la Convalida guidata configurazione di WSFC nel cluster WSFC, verrà generato il seguente messaggio di avviso:When RegisterAllProvidersIP = 1, if you run the WSFC Validate a Configuration Wizard on the WSFC cluster, the wizard generates the following warning message:

    "La proprietà RegisterAllProviderIP per il nome di rete 'Nome:<nome_rete>' è impostata su 1. Per la configurazione corrente del cluster tale valore dovrebbe essere impostato su 0.""The RegisterAllProviderIP property for network name 'Name:<network_name>' is set to 1 For the current cluster configuration this value should be set to 0."

    Ignorare tale messaggio.Please ignore this message.

  • Stringhe di connessione che non impostano MultiSubnetFailover su trueConnection strings that do not set MultiSubnetFailover to true

    Se RegisterAllProvidersIP = 1, in tutti i client le cui stringhe di connessione non utilizzano MultiSubnetFailover = Truesi verificheranno connessioni ad alta latenza.When RegisterAllProvidersIP = 1, any clients whose connection strings do not use MultiSubnetFailover = True, will experience high latency connections. Questa situazione si verifica in quanto questi client tentano di effettuare connessioni a tutti gli indirizzi IP in sequenza.This occurs because these clients attempt connections to all IPs sequentially. Al contrario, se RegisterAllProvidersIP viene impostato su 0, l'indirizzo IP attivo viene registrato nel punto di accesso client del cluster WSFC, riducendo la latenza per i client legacy.In contrast, if RegisterAllProvidersIP is changed to 0, the active IP address is registered in the Client Access Point in the WSFC cluster, reducing latency for legacy clients. Se quindi alcuni client legacy devono connettersi a un listener del gruppo di disponibilità e non è possibile usare la proprietà MultiSubnetFailover , è consigliabile impostare RegisterAllProvidersIP su 0.Therefore, if you have legacy clients that that need to connect to an availability group listener and cannot use the MultiSubnetFailover property, we recommend that you change RegisterAllProvidersIP to 0.

    Importante

    Durante la creazione di un listener del gruppo di disponibilità con il cluster WSFC (interfaccia utente grafica di Gestione cluster di failover), il valore di RegisterAllProvidersIP sarà 0 (false) per impostazione predefinita.When you create an availability group listener through the WSFC cluster (Failover Cluster Manager GUI), RegisterAllProvidersIP will be 0 (false) by default.

Impostazione HostRecordTTL HostRecordTTL Setting

Per impostazione predefinita, tramite i client vengono memorizzati nella cache record DNS del cluster per 20 minuti.By default, clients cache cluster DNS records for 20 minutes. Riducendo il valore di HostRecordTTL, la durata (TTL), per i record memorizzati nella cache, i client legacy possono riconnettersi più rapidamente.By reducing HostRecordTTL, the Time to Live (TTL), for the cached record, legacy clients may reconnect more quickly. La riduzione del valore dell'impostazione HostRecordTTL può però comportare anche un aumento del traffico ai server DNS.However, reducing the HostRecordTTL setting may also result in increased traffic to the DN servers.

Script PowerShell di esempio per disabilitare RegisterAllProvidersIP e ridurre TTL Sample PowerShell Script to Disable RegisterAllProvidersIP and Reduce TTL

L'esempio di PowerShell seguente illustra come configurare entrambi i parametri cluster RegisterAllProvidersIP e HostRecordTTL per la risorsa listener.The following PowerShell example demonstrates how to configure both the RegisterAllProvidersIP and HostRecordTTL cluster parameters for the listener resource. Il record DNS verrà memorizzato nella cache per 5 minuti, anziché i 20 minuti predefiniti.The DNS record will be cached for 5 minutes rather than the default 20 minutes. Modificando entrambi i parametri del cluster è possibile ridurre il tempo di connessione all'indirizzo IP corretto dopo un failover per i client legacy che non possono usare il parametro MultiSubnetFailover .Modifying both cluster parameters may reduce the time to connect to the correct IP address after a failover for legacy clients that cannot use the MultiSubnetFailover parameter. Sostituire yourListenerName con il nome del listener che si sta modificando.Replace yourListenerName with the name of the listener that you are changing.

Import-Module FailoverClusters  
Get-ClusterResource yourListenerName | Set-ClusterParameter RegisterAllProvidersIP 0   
Get-ClusterResource yourListenerName|Set-ClusterParameter HostRecordTTL 300  
Stop-ClusterResource yourListenerName  
Start-ClusterResource yourListenerName  

Per altre informazioni sui tempi di recupero durante i failover, vedere Client Recovery Latency During Failover.For more information about recovery times during failover, see Client Recovery Latency During Failover.

Indicazioni sul completamento Follow-up Recommendations

Dopo aver creato un listener del gruppo di disponibilità:After you create an availability group listener:

  • Chiedere all'amministratore di rete di riservare l'indirizzo IP del listener per un uso esclusivo.Ask your network administrator to reserve the listener's IP address for its exclusive use.

  • Fornire il nome host DNS del listener agli sviluppatori dell'applicazione in modo da essere usato nelle stringhe di connessione per la richiesta di connessioni client al gruppo di disponibilità.Give the listener's DNS host name to application developers to use in connection strings when requesting client connections to this availability group.

  • Incoraggiare gli sviluppatori ad aggiornare le stringhe di connessione client in modo da specificare MultiSubnetFailover = True, se possibile.Encourage developers to update client connection strings to specify MultiSubnetFailover = True, if possible. Per informazioni sul supporto per la connettività client, vedere Connettività client AlwaysOn (SQL Server).For information about driver support for multi-subnet failover, see Always On Client Connectivity (SQL Server).

Creare un listener aggiuntivo per un gruppo di disponibilità (facoltativo) Create an Additional Listener for an Availability Group (Optional)

Dopo avere creato un listener tramite SQL Server, è possibile aggiungere un altro listener come indicato di seguito:After you create one listener through SQL Server, you can add an additional listener, as follows:

  1. Creare il listener utilizzando uno degli strumenti seguenti:Create the listener using either of the following tools:

  2. Avviare l'attesa di SQL ServerSQL Server sul nuovo listener.Start SQL ServerSQL Server listening on the new listener. Dopo avere creato il listener aggiuntivo, connettersi all'istanza di SQL ServerSQL Server in cui è ospitata la replica primaria del gruppo di disponibilità e utilizzare SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLo PowerShell per modificare la porta del listener.After creating the additional listener, connect to the instance of SQL ServerSQL Server that hosts the primary replica of the availability group and use SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell to modify the listener port.

    Per ulteriori informazioni, vedere Come creare più listener per lo stesso gruppo di disponibilità (blog del team di SQL Server AlwaysOn).For more information, see How to create multiple listeners for same availability group (a SQL Server Always On team blog).

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)
Clustering su più subnet di SQL Server (SQL Server)SQL Server Multi-Subnet Clustering (SQL Server)