Creare o configurare un listener del gruppo di disponibilità (SQL Server)
In questo argomento viene illustrato come creare o configurare un singolo listener del gruppo di disponibilità per un gruppo di disponibilità AlwaysOn mediante SQL Server Management Studio, Transact-SQL o PowerShell in SQL Server 2012.
Importante |
---|
Per creare il primo listener di un gruppo di disponibilità, è consigliabile utilizzare 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. |
Prima di iniziare:
Esiste già un listener per questo gruppo di disponibilità?
Limitazioni e restrizioni
Indicazioni
Prerequisiti
Requisiti per il nome DNS di un listener del gruppo di disponibilità
Autorizzazioni di Windows
Autorizzazioni di SQL Server
Per creare o configurare un listener del gruppo di disponibilità tramite:
SQL Server Management Studio
Transact-SQL
PowerShell
Risoluzione dei problemi
Errore nella creazione di un listener del gruppo di disponibilità a causa di quote di Active Directory
Completamento: Creazione di un listener del gruppo di disponibilità
Parola chiave MultiSubnetFailover e funzionalità associate
Impostazione RegisterAllProvidersIP
Impostazione HostRecordTTL
Script PowerShell di esempio per disabilitare RegisterAllProvidersIP e ridurre TTL
Indicazioni sul completamento
Creare un listener aggiuntivo per un gruppo di disponibilità (facoltativo)
Prima di iniziare
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 desidera creare un listener aggiuntivo, vedere Per creare un listener aggiuntivo per un gruppo di disponibilità (facoltativo), più avanti in questo argomento.
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 ulteriori informazioni, vedere Per creare un listener aggiuntivo per un gruppo di disponibilità (facoltativo), più avanti in questo argomento.
Indicazioni
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 Connettività client AlwaysOn (SQL Server). |
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 (-) 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 AG1 un 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 utilizzando 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. |
Autorizzazioni di Windows
Autorizzazioni |
Collegamento |
||
---|---|---|---|
Il nome dell'oggetto cluster WSFC che ospita il gruppo di disponibilità deve disporre dell'autorizzazione Create Computer objects. Per impostazione predefinita, in Active Directory un nome di oggetto cluster non dispone dell'autorizzazione Create Computer objects 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. 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.
|
|
||
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 |
[Inizio pagina]
Autorizzazioni 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 |
È richiesta l'autorizzazione ALTER AVAILABILITY GROUP per il gruppo di disponibilità e l'autorizzazione CONTROL AVAILABILITY GROUP, ALTER ANY AVAILABILITY GROUP o CONTROL SERVER. |
[Inizio pagina]
Utilizzo di SQL Server Management Studio
Suggerimento |
---|
In Creazione guidata Gruppo di disponibilità è supportata la creazione del listener per un nuovo gruppo di disponibilità. |
Per creare o configurare un listener del gruppo di disponibilità
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.
Espandere il nodo Disponibilità elevata AlwaysOn e il nodo Gruppi di disponibilità.
Fare clic sul 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 gruppo di disponibilità. Per ulteriori informazioni, vedere Aggiungi listener del gruppo di disponibilità (finestra di dialogo), più avanti in questo argomento.
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 fare clic su OK.
[Inizio pagina]
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 argomento.
Porta
Porta TCP utilizzata dal listener.Modalità di rete
Indica il protocollo TCP utilizzato dal listener. I possibili valori sono i seguenti: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 associato al nome DNS del listener e che influisce sulla connettività client. DHCP può essere tranquillamente utilizzato 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 facendo clic su 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.
Aggiungi
Fare clic 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 ulteriori informazioni, vedere l'argomento della Guida Finestra di dialogo Aggiungi indirizzo IP (SQL Server Management Studio).Rimuovi
Fare clic per rimuovere la subnet selezionata dal listener.OK
Fare clic per creare il listener del gruppo di disponibilità specificato.
[Inizio pagina]
Utilizzo di Transact-SQL
Per creare o configurare un listener del gruppo di disponibilità
Connettersi all'istanza del server che ospita la replica primaria.
Utilizzare l'opzione LISTENER dell'istruzione CREATE AVAILABILITY GROUP o l'opzione ADD LISTENER dell'istruzione ALTER AVAILABILITY GROUP.
Nell'esempio seguente viene aggiunta un listener del gruppo di disponibilità a un gruppo di disponibilità denominato MyAg2. e un nome DNS univoco, MyAg2ListenerIvP6, per questo listener. Le due repliche si trovano in subnet diverse, pertanto, come consigliato, per il listener devono essere utilizzati indirizzi IP statici. 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. In questo esempio si specifica anche utilizza l'argomento PORT facoltativo per indicare la porta 60173 come porta del listener.
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
Per creare o configurare un listener del gruppo di disponibilità
Spostarsi nella directory (cd) dell'istanza del server che ospita la replica primaria.
Per creare o modificare un listener del gruppo di disponibilità, utilizzare uno dei cmdlet seguenti:
New-SqlAvailabilityGroupListener
Crea un nuovo listener del gruppo di disponibilità e lo collega a un gruppo di disponibilità esistente.Ad esempio, il seguente comando New-SqlAvailabilityGroupListener crea un listener del gruppo di disponibilità denominato MyListener per il gruppo di disponibilità MyAg. Il listener utilizzerà l'indirizzo IPv4 passato al parametro -StaticIp come relativo indirizzo IP virtuale.
New-SqlAvailabilityGroupListener -Name MyListener ` -StaticIp '192.168.3.1/255.255.252.0' ` -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg
Set-SqlAvailabilityGroupListener
Modifica l'impostazione della porta su un listener del gruppo di disponibilità esistente.Ad esempio, il seguente comando Set-SqlAvailabilityGroupListener imposta il numero di porta per il listener del gruppo di disponibilità denominato MyListener su 1535. Questa porta viene utilizzata per restare in ascolto delle connessioni al listener.
Set-SqlAvailabilityGroupListener -Port 1535 ` -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg\AGListeners\MyListener
Add-SqlAGListenerstaticIp
Aggiunge un indirizzo IP statico a una configurazione del listener del gruppo di disponibilità esistente. L'indirizzo IP può essere un indirizzo IPv4 con subnet o un indirizzo IPv6.Ad esempio, il seguente comando Add-SqlAGListenerstaticIp aggiunge un indirizzo IPv4 statico al listener del gruppo di disponibilità MyListener nel gruppo di disponibilità MyAg. Questo indirizzo IPv6 viene utilizzato come indirizzo IP virtuale del listener nella 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.
$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, utilizzare il cmdlet Get-Help nell'ambiente SQL Server PowerShell. Per ulteriori informazioni, vedere Visualizzazione della Guida di SQL Server PowerShell.
Per impostare e utilizzare il provider PowerShell per SQL Server
[Inizio pagina]
Risoluzione dei problemi
Errore nella creazione di 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 ulteriori informazioni, vedere gli articoli seguenti:
[Inizio pagina]
Completamento: Creazione di un listener del gruppo di disponibilità
Parola chiave MultiSubnetFailover e funzionalità associate
MultiSubnetFailover è una nuova parola chiave della stringa di connessione utilizzata per accelerare il failover con i gruppi di disponibilità AlwaysOn e le istanze del cluster di failover AlwaysOn 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à AlwaysOn o istanze del cluster di failover.
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.
- Questa funzionalità viene utilizzata 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 utilizzare 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 ulteriori 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 utilizza 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
Tramite Gruppi di disponibilità AlwaysOn la proprietà RegisterAllProvidersIP viene impostata 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 di driver per il failover su più subnet, vedere Connettività client AlwaysOn (SQL Server).
Per ulteriori informazioni sul clustering su più subnet, vedere Clustering su più subnet di SQL Server (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
Quando RegisterAllProvidersIP = 1, tutti i client nelle cui stringhe di connessione non viene utilizzato MultiSubnetFailover = True si 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. Pertanto, se alcuni client legacy devono connettersi a un listener del gruppo di disponibilità e non è possibile utilizzare la proprietà MultiSubnetFailover, è consigliabile impostare RegisterAllProvidersIP su 0.
Importante In fase di creazione di un listener del gruppo di disponibilità mediante il cluster WSFC (interfaccia utente grafica di Gestione cluster di failover), 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 HostRecordTTL, la durata (TTL), per i record memorizzati nella cache, tramite i client legacy è possibile riconnettersi più rapidamente. Tuttavia, riducendo il valore dell'impostazione HostRecordTTL si potrebbe verificare anche un aumento del traffico ai server DNS.
Script PowerShell di esempio per disabilitare RegisterAllProvidersIP e ridurre TTL
Nell'esempio PowerShell seguente viene illustrato come configurare entrambi i parametri cluster RegisterAllProvidersIP e HostRecordTTL per la risorsa listener. Il record DNS verrà 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 client legacy tramite cui non è possibile utilizzare 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
Per ulteriori informazioni sui tempi di recupero durante il failover, vedere Latenza di recupero del client durante i 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 utilizzo esclusivo.
Fornire il nome host DNS del listener agli sviluppatori dell'applicazione in modo da essere utilizzato nelle stringhe di connessione per la richiesta di connessioni client al gruppo di disponibilità.
Incoraggiare gli sviluppatori ad aggiornare le stringhe di connessione client per specificare MultiSubnetFailover = True, se possibile. Per informazioni sul supporto di driver per il failover su più subnet, vedere Connettività client AlwaysOn (SQL Server).
[Inizio pagina]
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:
Aggiungere un punto di accesso client e configurare l'indirizzo IP.
Portare il listener online.
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:
Utilizzare Add-ClusterResource per creare un nome di rete e le risorse dell'indirizzo IP.
Utilizzare Start-ClusterResource per avviare la risorsa del nome di rete.
Utilizzare 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'attesa 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 utilizzare 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).
Attività correlate
Visualizzare le proprietà del listener del gruppo di disponibilità (SQL Server)
Rimuovere un listener del gruppo di disponibilità (SQL Server)
Contenuto correlato
Come creare più listener per lo stesso gruppo di disponibilità
Blog del team di SQL Server AlwaysOn: Blog del team ufficiale di SQL Server AlwaysOn
[Inizio pagina]
Vedere anche
Concetti
Panoramica di Gruppi di disponibilità AlwaysOn (SQL Server)
Listener del gruppo di disponibilità, connettività client e failover dell'applicazione (SQL Server)