Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 gruppo di disponibilità di un gruppo di disponibilità, consigliamo vivamente di 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 cliente richiedono più listener per uno stesso 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. Questo nome può contenere solo caratteri alfanumerici, trattini (-) e trattini bassi (_), 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 | Collegamento |
|---|---|
| L'oggetto nome cluster (CNO) del cluster WSFC che ospita il gruppo di disponibilità deve disporre dell'autorizzazione Create Computer objects. In Active Directory, per impostazione predefinita, un CNO non dispone in modo esplicito dell'autorizzazione Crea oggetti computer e può creare 10 oggetti computer virtuali (VCO). Dopo aver creato 10 VCO, la creazione di ulteriori VCO avrà esito negativo. È possibile evitarlo concedendo esplicitamente l'autorizzazione al CNO del cluster WSFC. I VCO per i gruppi di disponibilità che sono stati eliminati non vengono eliminati automaticamente da Active Directory e vengono conteggiati ai fini del limite predefinito di 10 VCO, 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. |
Procedura per configurare l'account per l'utente che installa il cluster nella Guida dettagliata al cluster di failover: configurazione degli account in Active Directory Passaggi per la precreazione dell'account del nome del cluster nella Guida dettagliata al clustering di failover: configurazione degli account in Active Directory |
| Se l'organizzazione richiede di creare preventivamente l'account del computer per un nome di rete virtuale del listener, sarà necessario essere membri del gruppo Account Operator oppure richiedere l'assistenza dell'amministratore del dominio. | Passaggi per la precreazione di un account per un servizio o un'applicazione cluster nella Guida dettagliata al cluster di failover: configurazione degli account in Active Directory. |
Suggerimento
In genere, è preferibile non preconfigurare l'account computer per il nome di rete virtuale di un listener. Se possibile, consentire che l'account venga creato e configurato automaticamente quando si esegue la procedura guidata WSFC per l'alta disponibilità.
Autorizzazioni di SQL Server
| Attività | Autorizzazioni |
|---|---|
| Per creare un listener del gruppo di disponibilità | Richiede l'appartenenza al ruolo predefinito del server sysadmin e una delle seguenti autorizzazioni: CREATE AVAILABILITY GROUP a livello di server, ALTER ANY AVAILABILITY GROUP o CONTROL SERVER. |
| Per modificare un listener del gruppo di disponibilità esistente | È richiesta ALTER AVAILABILITY GROUP l'autorizzazione per il gruppo di disponibilità, l'autorizzazione CONTROL AVAILABILITY GROUP , 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:
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 la struttura del server.
Espandere il nodo Always On per l'alta disponibilità e il nodo gruppi di disponibilità.
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 il 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 del 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 c'è un tempo di inattività e il contratto di locazione IP DHCP scade, è necessario un tempo extra per registrare il nuovo indirizzo IP di rete DHCP associato al nome DNS dell'ascoltatore e influenzare la connettività del 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 ciascuna 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 il listener del gruppo di disponibilità a causa delle 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, consulta Come risolvere i problemi dell'account del servizio cluster quando modifica gli oggetti computer
Seguito: Dopo aver creato un listener del gruppo di disponibilità
Parola chiave MultiSubnetFailover e funzionalità associate
MultiSubnetFailover è una nuova parola chiave della stringa di connessione utilizzata per consentire un failover più rapido con i gruppi di disponibilità Always On e le istanze del cluster di failover Always On in SQL Server 2012. Le tre sottofeature seguenti sono abilitate quando MultiSubnetFailover=True viene impostato in stringa di connessione:
Failover multisubnet più rapido verso un listener multisubnet per un gruppo di disponibilità Always On o istanze del cluster di failover.
Failover a subnet singola più rapido verso un listener a subnet singola 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. Esegue tentativi di connessione TCP più aggressivi per accelerare i failover di una singola 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 in .NET Framework 3.5 o OLEDB
Problema: se il gruppo di disponibilità o l'istanza del cluster di failover ha un nome listener (noto come nome di rete o punto di accesso client in Gestione cluster WSFC) che dipende da più indirizzi IP provenienti da subnet diverse e si usa 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à andrà incontro a 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à multisubnet del listener, i client potrebbero richiedere un provider di dati che supporti la parola chiave MultiSubnetFailover. Per informazioni sul supporto dei driver per il failover su più subnet, vedere Always On Client Connectivity.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 in cui MultiSubnetFailover non è impostato su true
Quando
RegisterAllProvidersIP = 1, tutti i client le cui stringhe di connessione non utilizzanoMultiSubnetFailover = Trueavranno 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
Quando si crea un listener del gruppo di disponibilità tramite il cluster WSFC (interfaccia grafica di Failover Cluster Manager), RegisterAllProvidersIP sarà impostato su 0 (false) per impostazione predefinita.
Impostazione HostRecordTTL
Per impostazione predefinita, i client memorizzano nella cache i record DNS del cluster per 20 minuti. Riducendo il valore di HostRecordTTL, ovvero il Time to Live (TTL) del record memorizzato nella cache, i client meno recenti potrebbero 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 desidera modificare.
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.
Raccomandazioni successive
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 dei driver per il failover su più subnet, vedere Always On Client Connectivity.
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:
Uso di Gestione cluster di failover WSFC:
Aggiungere un punto di accesso client e configurare l'indirizzo IP.
Attiva il listener.
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:
Usare Add-ClusterResource per creare un nome di rete e le risorse dell'indirizzo IP.
Usare Start-ClusterResource per avviare la risorsa del nome di rete.
Usare Add-ClusterResourceDependency per impostare la dipendenza tra la risorsa nome di rete e la risorsa del gruppo di disponibilità di SQL Server esistente.
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).