Condividi tramite


Configurare un listener per un gruppo di disponibilità Always On

Si applica a: SQL Server

Questo articolo illustra come creare o configurare un singolo listener del gruppo di disponibilità per un gruppo di disponibilità Always On usando SQL Server Management Studio, Transact-SQL o PowerShell in SQL Server.

Importante

Per creare il primo listener di un gruppo di disponibilità, è consigliabile usare SQL Server Management Studio, Transact-SQL o SQL Server PowerShell. Evitare di creare un listener direttamente nel cluster WSFC se non necessario, ad esempio per creare un listener aggiuntivo.

Esiste già un listener per questo gruppo di disponibilità?

Per determinare se un listener già esiste per il gruppo di disponibilità

Nota

Se è già presente un listener e si vuole creare un listener aggiuntivo, vedere Creare un listener aggiuntivo per un gruppo di disponibilità, più avanti in questo articolo.

Limitazioni e restrizioni

  • È possibile creare un solo listener per gruppo di disponibilità tramite SQL Server. Ogni gruppo di disponibilità richiede in genere un solo listener. Tuttavia, alcuni scenari del cliente richiedono più listener per un gruppo di disponibilità. 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. Per altre informazioni, vedere Creare un listener aggiuntivo per un gruppo di disponibilità, più avanti in questo articolo.

Consigli

L'utilizzo di un indirizzo IP statico è consigliato, sebbene non obbligatorio, per più configurazioni di subnet.

Prerequisiti

  • È necessario essere connessi all'istanza del server che ospita la replica primaria.

  • 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. In genere, è necessario richiedere gli indirizzi IP statici agli amministratori di rete.

Importante

Prima di creare il primo listener, è consigliabile leggere l'argomento Connettività client Always On.

Requisiti per il nome DNS di un listener del gruppo di disponibilità

Ogni listener del gruppo di disponibilità richiede un nome host DNS univoco nel dominio e in NetBIOS. Il nome DNS è un valore stringa. Può contenere solo caratteri alfanumerici, trattini/segni meno (-) e caratteri di sottolineatura (_), in qualsiasi ordine. Per i nomi host DNS non viene fatta distinzione tra maiuscole e minuscole. La lunghezza massima è di 63 caratteri, tuttavia in SQL Server Management Studio è possibile specificare una lunghezza massima di 15 caratteri.

È consigliabile specificare una stringa significativa. Ad esempio, per un gruppo di disponibilità denominato AG1un nome host DNS significativo potrebbe essere ag1-listener.

Importante

NetBIOS riconosce solo i primi 15 caratteri di 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. Per informazioni sulle regole di denominazione dei prefissi per i nomi DNS, vedere Assegnare nomi ai domini.aspx).

Autorizzazioni di Windows

Autorizzazioni Collega
Il nome dell'oggetto cluster WSFC che ospita il gruppo di disponibilità deve avere l'autorizzazione per la creazione di oggetti Computer.

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. Dopo aver creato 10 oggetti computer virtuali, la creazione di ulteriori oggetti di questo tipo avrà esito negativo. È possibile evitare questo problema concedendo in modo esplicito l'autorizzazione al nome dell'oggetto cluster WSFC. 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.
Nota: in alcune organizzazioni i criteri di sicurezza non permettono di concedere l'autorizzazione per la creazione di oggetti computer a singoli account utente.
Passaggi per la configurazione dell'account per chi installa il cluster nella Guida dettagliata al cluster di failover: Configurazione di account 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 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. 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.

Suggerimento

In genere, è più semplice non effettuare la configurazione pre-installazione dell'account del computer per un nome di rete virtuale del listener. Se è possibile, procedere con la creazione e la configurazione automatica dell'account durante l'esecuzione della procedura guidata Disponibilità elevata WSFC.

Autorizzazioni di SQL Server

Attività Autorizzazioni
Per creare un listener del gruppo di disponibilità 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.
Per modificare un listener del gruppo di disponibilità esistente Sono necessarie l'autorizzazione ALTER AVAILABILITY GROUP nel gruppo di disponibilità, l'autorizzazione CONTROL AVAILABILITY GROUP permission, l'autorizzazione ALTER ANY AVAILABILITY GROUP o l'autorizzazione CONTROL SERVER.

Crea un listener

È possibile creare un listener tramite SQL Server Management Studio (SSMS), Transact-SQL, o PowerShell.

Suggerimento

Utilizzare la Procedura guidata del gruppo di disponibilità per creare un listener del gruppo di disponibilità.

Per creare o configurare un listener del gruppo di disponibilità in SSMS, seguire questa procedura:

  1. In Esplora oggetti connettersi all'istanza del server che ospita la replica primaria del gruppo di disponibilità, quindi selezionare il nome del server per espandere l'albero del server.

  2. Espandere il nodo Disponibilità elevata Always On e il nodo Gruppi di disponibilità.

  3. Selezionare il gruppo di disponibilità di cui si desidera configurare il listener e scegliere una delle alternative seguenti:

    • 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 . Verrà aperta la finestra di dialogo Nuovo listener del gruppo di disponibilità. Per ulteriori informazioni, vedere Aggiungi listener del gruppo di disponibilità (finestra di dialogo), più avanti in questo articolo.

    • 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à . Immettere il nuovo numero di porta nel campo Porta e selezionareOK.

Nuovo listener gruppo di disponibilità (finestra di dialogo)

Nome DNS del listener
Specifica il nome host DNS del listener del gruppo di disponibilità. È inoltre necessario che il nome DNS sia una stringa univoca nel dominio e in NetBIOS. Può contenere solo caratteri alfanumerici, trattini (-) e caratteri di sottolineatura (_), in qualsiasi ordine. Per i nomi host DNS non viene fatta distinzione tra maiuscole e minuscole. La lunghezza massima è di 15 caratteri.

Per ulteriori informazioni, vedere Requisiti per il nome DNS di un listener del gruppo di disponibilità, più indietro in questo articolo.

Porta
Porta TCP usata dal listener.

Modalità di rete
Indica il protocollo TCP utilizzato dal listener. È possibile scegliere uno dei seguenti valori:

DHCP
Il listener utilizzerà un indirizzo IP dinamico assegnato da un server in cui viene eseguito il protocollo DHCP (Dynamic Host Configuration Protocol). DHCP è limitato a una sola subnet.

Importante

Non è consigliabile utilizzare DHCP negli ambienti di produzione. 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. 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.

Indirizzo IP statico
Il listener utilizzerà uno o più indirizzi IP statici. Gli indirizzi IP aggiuntivi sono facoltativi. Per creare un listener del gruppo di disponibilità tra più subnet, è necessario specificare un indirizzo IP statico per ogni subnet nella configurazione del listener. Contattare l'amministratore della rete per ottenere questi indirizzi IP statici.

Se si seleziona Indirizzo IP statico , verrà visualizzata una griglia della subnet sotto il campo Modalità di rete . In questa griglia sono visualizzate informazioni su ogni subnet alla quale è possibile accedere da questo listener del gruppo di disponibilità. La griglia è vuota finché non si aggiunge un indirizzo IP statico selezionando Aggiungi.

Le colonne sono le seguenti:

Subnet
Viene visualizzato l'identificatore di ogni subnet aggiunta al listener del gruppo di disponibilità.

Indirizzo IP
Viene visualizzato l'indirizzo IP di una determinata subnet. Per una determinata subnet, l'indirizzo IP è un indirizzo IPv4 o IPv6.

Aggiunta
Selezionare per aggiungere un indirizzo IP statico a una subnet selezionata o a un'altra subnet per questo listener. Verrà aperta la finestra di dialogo Aggiungi indirizzo IP . Per altre informazioni, vedere l'articolo della guida della Finestra di dialogo Aggiungi indirizzo IP.

Rimuovi
Selezionare per rimuovere la subnet selezionata dal listener.

OK
Selezionare per creare il listener del gruppo di disponibilità specificato.

Risoluzione dei problemi

Impossibile creare un listener del gruppo di disponibilità a causa di quote di Active Directory

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. Per altre informazioni, vedere Risoluzione dei problemi dell'account del Servizio cluster in relazione alla modifica di oggetti computer

Completamento: Creazione di un listener del gruppo di disponibilità

Parola chiave MultiSubnetFailover e funzionalità associate

MultiSubnetFailover è una nuova parola chiave della stringa di connessione usata per accelerare il failover con i gruppi di disponibilità Always On e le istanze del cluster di failover Always On in SQL Server 2012. Le tre seguenti funzionalità secondarie vengono abilitate quando MultiSubnetFailover=True è impostato nella stringa di connessione:

  • Failover multisubnet più rapido su un listener su più subnet per un gruppo di disponibilità Always On o istanze del cluster di failover.

  • Failover a singola subnet più rapido su un listener su una sola subnet per un gruppo di disponibilità Always On o istanze del cluster di failover.

    • Questa funzionalità viene usata per la connessione a un listener in cui è disponibile un singolo indirizzo IP in una sola subnet. Vengono effettuati tentativi di connessione TCP più aggressivi per accelerare i failover su una sola subnet.
  • Risoluzione dell'istanza denominata su un'istanza del cluster di failover AlwaysOn su più subnet.

    • Questo consente di aggiungere il supporto della risoluzione dell'istanza denominata per istanze del cluster di failover AlwaysOn con endpoint su più subnet.

MultiSubnetFailover=True non supportato da .NET Framework 3.5 o 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.

Soluzioni alternative: è consigliabile effettuare una delle seguenti attività.

  • 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).

    Vantaggi: se si verifica un failover tra subnet, il tempo di recupero del client è breve.

    Svantaggi: la metà delle connessioni client impiegherà più di 20 secondi

  • 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. Per altre informazioni, vedere "Impostazione RegisterAllProvidersIP" più avanti in questa sezione.

    Vantaggi: non è necessario aumentare il valore di timeout della connessione client.

    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.

Impostazione RegisterAllProvidersIP

Se si usa SQL Server Management Studio, Transact-SQL o 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). L'effetto del valore di questa proprietà dipende dalla stringa di connessione client, come indicato di seguito:

  • Stringhe di connessione che impostano MultiSubnetFailover su true

    Gruppi di disponibilità Always On 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. Per sfruttare la funzionalità di più subnet del listener, i client possono richiedere un provider di dati che supporta la parola chiave MultiSubnetFailover. Per informazioni sul supporto del driver per il failover multi-subnet, vedere Connettività client Always On.

    Per informazioni sul clustering su più subnet, vedere Clustering su più subnet di 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:

    "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."

    Ignorare tale messaggio.

  • Stringhe di connessione che non impostano MultiSubnetFailover su true

    Se RegisterAllProvidersIP = 1, in tutti i client le cui stringhe di connessione non utilizzano MultiSubnetFailover = Truesi verificheranno connessioni ad alta latenza. Questa situazione si verifica in quanto questi client tentano di effettuare connessioni a tutti gli indirizzi IP in sequenza. 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. 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.

    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.

Impostazione HostRecordTTL

Per impostazione predefinita, tramite i client vengono memorizzati nella cache record DNS del cluster per 20 minuti. Riducendo il valore di HostRecordTTL, la durata (TTL), per i record memorizzati nella cache, i client legacy possono riconnettersi più rapidamente. La riduzione del valore dell'impostazione HostRecordTTL può però comportare anche un aumento del traffico verso i server DNS.

Script PowerShell di esempio per disabilitare RegisterAllProvidersIP e ridurre TTL

L'esempio di PowerShell seguente illustra come configurare entrambi i parametri cluster RegisterAllProvidersIP e HostRecordTTL per la risorsa listener. Il record DNS viene memorizzato nella cache per 5 minuti, anziché i 20 minuti predefiniti. 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. Sostituire yourListenerName con il nome del listener che si sta modificando.

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

Per altre informazioni sui tempi di recupero durante i failover, vedere Client Recovery Latency During Failover.

Indicazioni sul completamento

Dopo aver creato un listener del gruppo di disponibilità:

  • Chiedere all'amministratore di rete di riservare l'indirizzo IP del listener per un uso esclusivo.

  • 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à.

  • Incoraggiare gli sviluppatori ad aggiornare le stringhe di connessione client in modo da specificare MultiSubnetFailover = True, se possibile. Per informazioni sul supporto del driver per il failover multi-subnet, vedere Connettività client Always On.

Creare un listener aggiuntivo per un gruppo di disponibilità (facoltativo)

Dopo avere creato un listener tramite SQL Server, è possibile aggiungere un altro listener come indicato di seguito:

Creare il listener utilizzando uno degli strumenti seguenti:

Gestione cluster di failover WSFC:

  1. Aggiungere un punto di accesso client e configurare l'indirizzo IP.

  2. Portare il listener online.

  3. Aggiungere una dipendenza alla risorsa del gruppo di disponibilità WSFC.

    Per informazioni sulle finestre di dialogo e le schede di Gestione cluster di failover, vedere Interfaccia utente: snap-in Gestione cluster di failover.

Utilizzo di Windows PowerShell per i cluster di failover:

  1. Usare Add-ClusterResource per creare un nome di rete e le risorse dell'indirizzo IP.

  2. Usare Start-ClusterResource per avviare la risorsa del nome di rete.

  3. Usare Add-ClusterResourceDependency per impostare la dipendenza tra la risorsa del nome di rete e la risorsa del gruppo di disponibilità di SQL Server.

    Per informazioni sull'utilizzo di Windows PowerShell per i cluster di failover, vedere Panoramica dei comandi di Server Manager.

Avviare l'ascolto di SQL Server sul nuovo listener. Dopo avere creato il listener aggiuntivo, connettersi all'istanza di SQL Server in cui è ospitata la replica primaria del gruppo di disponibilità e usare SQL Server Management Studio, Transact-SQL o PowerShell per modificare la porta del listener.

Per ulteriori informazioni, vedere Come creare più listener per lo stesso gruppo di disponibilità (blog del team di SQL Server AlwaysOn).