Esercitazione: Configurare un gruppo di disponibilità in più subnet (SQL Server in macchine virtuali di Azure)
Si applica a: SQL Server su VM di Azure
Suggerimento
Esistono molti metodi per distribuire un gruppo di disponibilità. Semplificare la distribuzione ed eliminare la necessità di un servizio di Azure Load Balancer o di un nome di rete distribuito (DNN) per il gruppo di disponibilità AlwaysOn creando le macchine virtuali (VM) di SQL Server in più subnet all'interno della stessa rete virtuale di Azure. Se il gruppo di disponibilità è già stato creato in una singola subnet, è possibile eseguirne la migrazione a un ambiente con più subnet.
Questa esercitazione illustra come creare un gruppo di disponibilità Always On in più subnet per SQL Server su Macchine virtuali (VM) di Azure. L'esercitazione completa crea un cluster di failover di Windows Server e un gruppo di disponibilità con due repliche di SQL Server e un listener.
Stima delle tempistiche: supponendo che i prerequisiti siano completi, l'esercitazione dovrebbe durare circa 30 minuti.
Prerequisiti
La tabella seguente elenca i prerequisiti da completare prima di iniziare l'esercitazione:
Requisito | Descrizione |
---|---|
Due istanze di SQL Server | - Ogni VM in due zone di disponibilità di Azure diverse o nello stesso set di disponibilità - In subnet separate all'interno di una Rete virtuale di Azure - Con due indirizzi IP secondari assegnati a ogni VM - In un dominio singolo |
Account di servizio SQL Server | Un account di dominio usato dal servizio SQL Server per ogni computer |
Aprire le porte del firewall | - SQL Server: 1433 per l'istanza predefinita - Endpoint del mirroring del database: 5022 o qualsiasi porta disponibile |
Account per l'installazione del dominio | - Amministratore locale in ogni SQL Server - Membro del ruolo predefinito del server sysadmin di SQL Server per ogni istanza di SQL Server |
L'esercitazione presuppone conoscenze di base dei gruppi di disponibilità Always On di SQL Server.
Creare il cluster
Il gruppo di disponibilità Always On si trova sopra l'infrastruttura del cluster di failover di Windows Server; quindi, prima di distribuire il gruppo di disponibilità, è necessario configurare il cluster di failover di Windows Server, che include l'aggiunta della funzionalità, la creazione del cluster e l'impostazione dell'indirizzo IP del cluster.
Aggiungere la funzionalità cluster di failover
Aggiungere le funzionalità cluster di failover a entrambe le VM di SQL Server. A tale scopo, effettuare i passaggi seguenti:
Connettere alla macchina virtuale di SQL Server tramite Remote Desktop Protocol (RDP) usando un account di dominio con autorizzazioni per creare oggetti in AD, ad esempio l'account di dominio CORP\Install creato nell'articolo sui prerequisiti.
Aprire Server Manager > Dashboard.
Selezionare il collegamento Aggiungi ruoli e funzionalità sul dashboard.
Selezionare Avanti fino a visualizzare la sezione Funzionalità server.
In Funzionalità selezionare Clustering di failover.
Aggiungere le altre funzionalità necessarie.
Selezionare Installa per aggiungere le funzionalità.
Ripetere i passaggi nell'altra VM di SQL Server.
Creare cluster
Dopo aver aggiunto la funzionalità cluster a ogni VM di SQL Server, è possibile creare il cluster di failover di Windows Server.
Utilizzare i passaggi seguenti per testare il cluster:
Connettere alla VM di SQL Server (ad esempio, SQL-VM-1) tramite Remote Desktop Protocol (RDP) usando un account di dominio con autorizzazioni per creare oggetti in AD, ad esempio l'account di dominio CORP\Install creato nell'articolo sui prerequisiti.
Nel dashboard Server Manager selezionare Strumenti e quindi Gestione cluster di failover.
Nel riquadro sinistro fare clic con il pulsante destro del mouse su Gestione cluster di failover, quindi scegliere Crea cluster.
Nella Procedura guidata per la creazione di cluster, creare un cluster a due nodi procedendo nelle pagine con le impostazioni della tabella seguente:
Pagina Impostazione Prima di iniziare Usare valori predefiniti. Selezione dei server In Inserisci il nome del server, digitare il nome del primo SQL Server (ad esempio, SQL-VM-1) e selezionare Aggiungi.
In Inserisci il nome del server, digitare il nome del secondo SQL Server (ad esempio, SQL-VM-2) e selezionare Aggiungi.Avviso di convalida Selezionare Sì. Cliccando su Avanti, eseguire i test di convalida della configurazione, quindi tornare al processo di creazione del cluster. Operazioni preliminari Selezionare Avanti. Opzioni per il test Scegliere Esegui solo i test selezionati. Selezione del test Deselezionare Archiviazione. Verificare che Inventario, Rete e Configurazione del sistema sia selezionata. Conferma Selezionare Avanti.
Attendere il completamento della convalida.
Selezionare Visualizza report per esaminare il report. È possibile ignorare in modo sicuro l'avviso relativo alla raggiungibilità delle VM in una sola interfaccia di rete. L'infrastruttura di Azure ha ridondanza fisica; pertanto, non è necessario aggiungere altre interfacce di rete.
Selezionare Fine.Punto di accesso per l'amministrazione del cluster Digitare un nome di cluster, ad esempio SQLAGCluster1, in Nome cluster. Conferma Deselezionare Aggiungi tutte le risorse di archiviazione idonee al cluster e selezionare Avanti. Riepilogo Selezionare Fine. Avviso
Se non si deseleziona Aggiungi tutte le risorse di archiviazione idonee al cluster, Windows rende non visibili i dischi virtuali durante il processo di clustering. Di conseguenza, questi dischi non vengono visualizzati in Gestione disco o in Esplora risorse fino a quando l'archiviazione non viene rimossa dal cluster e ricollegata usando PowerShell.
Impostare l'indirizzo IP del cluster di failover
Solitamente, l'indirizzo IP assegnato al cluster è lo stesso assegnato alla VM: in Azure, l'indirizzo IP del cluster sarà in uno stato di errore e non può essere portato online. Modificare l'indirizzo IP del cluster per rendere online la risorsa IP.
Durante i prerequisiti, è necessario assegnare indirizzi IP secondari a ogni VM di SQL Server, come nella tabella di esempio seguente (gli indirizzi IP specifici possono variare):
Nome macchina virtuale | Nome della subnet | Intervallo di indirizzi subnet | Nome IP secondario | Indirizzo IP secondario |
---|---|---|---|---|
SQL-VM-1 | SQL-subnet-1 | 10.38.1.0/24 | windows-cluster-ip | 10.38.1.10 |
SQL-VM-2 | SQL-subnet-2 | 10.38.2.0/24 | windows-cluster-ip | 10.38.2.10 |
Assegnare questi indirizzi IP come indirizzi IP del cluster per ogni subnet pertinente.
Nota
In Windows Server 2019, il cluster crea un Nome del server distribuito anziché il Nome della rete di cluster e l'oggetto nome del cluster (CNO) viene registrato automaticamente con gli indirizzi IP per tutti i nodi del cluster, eliminando la necessità di un indirizzo IP del cluster Windows dedicato. Su Windows Server 2019, ignorare questa sezione e tutti gli altri passaggi che fanno riferimento alle Risorse di base del cluster o creare un cluster basato su VNN (Virtual Network Name) usando PowerShell. Per ulteriori informazioni, vedere il post di blog Cluster di failover: Oggetto della rete di cluster.
Per modificare l'indirizzo IP del cluster, seguire questa procedura:
In Gestione cluster di failover scorrere verso il basso fino a Risorse principali del cluster ed espandere i dettagli del cluster. Lo stato visualizzato delle risorse Nome e Indirizzo IP da ogni subnet deve essere Operazione non riuscita.
Fare clic con il pulsante destro del mouse sulla prima risorsa Indirizzo IP non riuscita, quindi selezionare Proprietà.
Selezionare Indirizzo IP statico e aggiornare l'indirizzo IP all'indirizzo IP del cluster Windows dedicato nella subnet assegnata alla prima VM di SQL Server, ad esempio SQL-VM-1. Seleziona OK.
Ripetere i passaggi per la seconda risorsa Indirizzo IP non riuscito usando l'indirizzo IP del cluster Windows dedicato per la subnet della seconda VM di SQL Server, ad esempio SQL-VM-2.
Nella sezione Risorse principali del cluster fare clic con il pulsante destro del mouse sul nome del cluster e quindi scegliere Porta online. Attendere che il nome e una delle risorse dell'indirizzo IP siano online.
Poiché le VM di SQL Server si trovano in subnet diverse, il cluster avrà una dipendenza OR dai due indirizzi IP del cluster Windows dedicati. Quando la risorsa del nome cluster torna online, il server controller di dominio viene aggiornato con un nuovo account computer Active Directory. Se le risorse principali del cluster spostano i nodi, un indirizzo IP diventa offline, mentre l'altro diventa online, aggiornando il server del contesto di dispositivo con la nuova associazione di indirizzi IP.
Suggerimento
Quando è in esecuzione il cluster in VM di Azure in un ambiente di produzione, modificare le impostazioni del cluster selezionando uno stato di monitoraggio più rilassato per migliorare la stabilità e l'affidabilità del cluster in un ambiente cloud. Per ulteriori informazioni, vedere VM di SQL Server: Procedure consigliate per la configurazione HADR.
Configurare il quorum
In un cluster a due nodi, è necessario un dispositivo quorum per l'affidabilità e la stabilità del cluster. Nelle VM di Azure, il cloud di controllo è la configurazione quorum consigliata, anche se sono disponibili altre opzioni. I passaggi descritti in questa sezione consentono di configurare un cloud di controllo per il quorum. Identificare le chiavi di accesso all'account di archiviazione, quindi configurare il cloud di controllo.
Recuperare le chiavi di accesso per un account di archiviazione
Nella creazione di un account di Archiviazione di Microsoft Azure, questo viene associato a due chiavi di accesso generate automaticamente: la chiave di accesso primaria e la chiave di accesso secondaria. Usare la chiave di accesso primaria la prima volta che si crea il cloud di controllo; successivamente, non sono previste restrizioni per la chiave da usare per il cloud di controllo.
Usare il portale di Azure per visualizzare e copiare le chiavi di accesso alle risorse di archiviazione per l'account di Archiviazione di Azure creato nell'articolo sui prerequisiti.
Per visualizzare e copiare le chiavi di accesso alle risorse di archiviazione, seguire questa procedura:
Entrare nel gruppo di risorse nel portale di Azure e selezionare l'account di archiviazione creato.
In Sicurezza e rete, selezionare Chiavi di accesso.
Selezionare Mostra chiavi e copiare la chiave.
Configurare il cloud di controllo
Dopo aver copiato la chiave di accesso, creare il cloud di controllo per il quorum del cluster.
Per creare il cloud di controllo, seguire questa procedura:
Connettersi alla prima VM di SQL Server SQL-VM-1 tramite desktop remoto.
Aprire Windows PowerShell in modalità amministratore.
Eseguire lo script di PowerShell per impostare il valore TLS (Transport Layer Security) per la connessione a 1.2:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Usare PowerShell per configurare il cloud di controllo. Sostituire i valori per il nome e la chiave di naccesso dell'account di archiviazione con informazioni specifiche:
Set-ClusterQuorum -CloudWitness -AccountName "Storage_Account_Name" -AccessKey "Storage_Account_Access_Key"
L'output di esempio seguente indica l'esito positivo:
Le risorse principali del cluster vengono configurate con un cloud di controllo.
Abilitare una funzionalità del gruppo di disponibilità
Per impostazione predefinita, la funzionalità Gruppi di disponibilità Always On è disabilitata. Usare la Gestione configurazione SQL Server per abilitare la funzionalità in entrambe le istanze di SQL Server.
Per abilitare la funzionalità gruppo di disponibilità, seguire questa procedura:
Avviare il file RDP nella prima VM di SQL Server (ad esempio, SQL-VM-1) con un account di dominio che sia un membro del ruolo predefinito del server amministratore di sistema, ad esempio l'account di dominio CORP\Install creato nel documento dei prerequisiti
Dalla schermata Start di una delle VM di SQL Server, avviare Gestione configurazione SQL Server.
Nell'albero del browser, selezionare Servizi di SQL Server, fare clic con il pulsante destro del mouse sul servizio SQL Server (MSSQLSERVER) e selezionare Proprietà.
Selezionare la scheda Disponibilità elevata Always On, quindi spuntare la casella Abilita gruppi di disponibilità Always On:
Selezionare Applica. Scegliere OK nella finestra di dialogo popup.
Riavviare il servizio SQL Server.
Ripetere questi passaggi per l'altra istanza di SQL Server.
Abilitare la funzionalità FILESTREAM
Se non è in uso FILESTREAM per il database nel gruppo di disponibilità, ignorare questo passaggio e andare a quello successivo: Crea database.
Nel caso in cui sia prevista l'aggiunta di un database al gruppo di disponibilità che utilizza FILESTREAM, è necessario abilitare FILESTREAM, poiché la funzionalità è disabilitata per impostazione predefinita. Usare la Gestione configurazione SQL Server per abilitare la funzionalità in entrambe le istanze di SQL Server.
Per abilitare la funzionalità FILESTREAM, seguire questa procedura:
Avviare il file RDP nella prima VM di SQL Server (ad esempio, SQL-VM-1) con un account di dominio che sia un membro del ruolo predefinito del server amministratore di sistema, ad esempio l'account di dominio CORP\Install creato nel documento dei prerequisiti
Dalla schermata Start di una delle VM di SQL Server, avviare Gestione configurazione SQL Server.
Nell'albero del browser, selezionare Servizi di SQL Server, fare clic con il pulsante destro del mouse sul servizio SQL Server (MSSQLSERVER) e selezionare Proprietà.
Selezionare la scheda FILESTREAM, quindi spuntare la casella Abilita FILESTREAM per l'accesso Transact-SQL:
Selezionare Applica. Scegliere OK nella finestra di dialogo popup.
In SQL Server Management Studio, fare clic su Nuova query per visualizzare l'editor di query.
Nell'editor di query, immettere il seguente codice Transact-SQL:
EXEC sp_configure filestream_access_level, 2 RECONFIGURE
Fare clic su Esegui.
Riavviare il servizio SQL Server.
Ripetere questi passaggi per l'altra istanza di SQL Server.
Creazione del database
Per il database, è possibile seguire la procedura descritta in questa sezione per creare un nuovo database o ripristinare un database AdventureWorks. È necessario eseguire il backup del database per inizializzare la catena di log. I database di cui non è stato eseguito il backup non soddisfano i prerequisiti per un gruppo di disponibilità.
Per creare un database, seguire questa procedura:
- Avviare il file RDP nella prima VM di SQL Server (ad esempio, SQL-VM-1) con un account di dominio che sia un membro del ruolo predefinito del server amministratore di sistema, ad esempio l'account di dominio CORP\Install creato nel documento dei prerequisiti.
- Aprire SQL Server Management Studio e connettersi all'istanza di SQL Server.
- In Esplora oggetti fare clic con il pulsante destro del mouse su Database, quindi scegliere Nuovo database.
- In Nome database, digitare MyDB1.
- Selezionare la pagina Opzioni e scegliere Completa dall'elenco a discesa Modello di recupero, se non è completa per impostazione predefinita. Per soddisfare i prerequisiti di partecipazione a un gruppo di disponibilità, il database deve trovarsi nel modello di recupero con registrazione completa.
- Selezionare OK per chiudere la pagina Nuovo database e creare il nuovo database.
Per eseguire il backup del database, seguire questa procedura:
In Esplora oggetti, fare clic con il pulsante destro del mouse sul database, evidenziare Attività, quindi selezionare Backup....
Selezionare OK per eseguire un backup completo del database nella posizione di backup predefinita.
Creare la condivisione file
Creare una condivisione di file di backup a cui hanno accesso sia le VM di SQL Server che i relativi account di servizio.
Per creare il file di backup, seguire questi passaggi:
Sulla prima VM di SQL Server in Gestione server, selezionare Strumenti. Aprire Gestione computer.
Selezionare Cartelle condivise.
Fare clic con il pulsante destro del mouse su Condivisioni e selezionare Nuova condivisione..., quindi usare la Procedura guidata per la creazione di una cartella condivisa per creare una condivisione.
Per Percorso cartella, selezionare Sfoglia e ricercare o creare un percorso per la cartella condivisa del backup del database, ad esempio
C:\Backup
. Selezionare Avanti.In Nome, descrizione e impostazioni verificare il nome e il percorso della condivisione. Selezionare Avanti.
In Autorizzazioni cartella condivisa impostare Personalizza autorizzazioni. Seleziona Personalizza.
In Personalizza autorizzazioni, selezionare Aggiungi.
Spuntare Controllo completo per concedere l'accesso completo alla condivisione dell'account del servizio SQL Server (
Corp\SQLSvc
):Seleziona OK.
In Autorizzazioni cartella condivisa selezionare Fine. Selezionare di nuovo Fine.
Creare un gruppo di disponibilità
Dopo aver eseguito il backup del database, è possibile creare il gruppo di disponibilità, che esegue automaticamente un backup completo e un backup del log delle transazioni dalla replica primaria di SQL Server e lo ripristina nell'istanza secondaria di SQL Server con l'opzione NORECOVERY.
Per creare il gruppo di disponibilità, seguire questa procedura.
In Esplora oggetti in SQL Server Management Studio (SSMS) sulla prima VM di SQL Server (ad esempio, SQL-VM-1), fare clic con il pulsante destro del mouse su Disponibilità elevata AlwaysOn e selezionare Procedura guidata per nuovo gruppo di disponibilità.
Nella pagina Introduzione, seleziona Avanti. Nella pagina Specifica nome del gruppo di disponibilità, digitare un nome per il gruppo di disponibilità in Nome del gruppo di disponibilità, ad esempio AG1. Selezionare Avanti.
Nella pagina Seleziona database, selezionare il database, quindi Avanti. Se il database non soddisfa i prerequisiti, assicurarsi che si tratti del modello di recupero con registrazione completa ed effettuare un backup:
Nella pagina Specifica repliche, selezionare Aggiungi replica.
Viene visualizzata la finestra di dialogo Connetti al server . Digitare il nome del secondo server in Nome server, ad esempio SQL-VM-2. Selezionare Connetti.
Nella pagina Specifica repliche, selezionare le caselle per il Failover automatico e scegliere Commit sincrono per la modalità di disponibilità nell'elenco a discesa:
Selezionare la scheda Endpoint per verificare che le porte usate per l'endpoint del mirroring del database siano quelle aperte nel firewall:
Selezionare la scheda Listener e scegliere Crea un listener del gruppo di disponibilità usando i valori seguenti per il listener:
Campo valore Listener DNS Name: AG1-Listener Porta Usare la porta predefinita di SQL Server. 1433 Modalità di rete: Indirizzo IP statico Selezionare Aggiungi per specificare l'indirizzo IP dedicato secondario per il listener per entrambe le VM di SQL Server.
La tabella seguente illustra gli indirizzi IP di esempio creati per il listener dal documento dei prerequisiti (anche se gli indirizzi IP specifici possono variare):
Nome macchina virtuale Nome della subnet Intervallo di indirizzi subnet Nome IP secondario Indirizzo IP secondario SQL-VM-1 SQL-subnet-1 10.38.1.0/24 availability-group-listener 10.38.1.11 SQL-VM-2 SQL-subnet-2 10.38.2.0/24 availability-group-listener 10.38.2.11 Scegliere la prima subnet (ad esempio, 10.38.1.0/24) dall'elenco a discesa nella finestra di dialogo Aggiungi indirizzo IP, quindi specificare l'indirizzo IPv4 del listener dedicato secondario, ad esempio
10.38.1.11
. Seleziona OK.Ripetere questo passaggio, ma scegliere l'altra subnet dall'elenco a discesa (ad esempio, 10.38.2.0/24) e fornire l'indirizzo IPv4 del listener dedicato secondario dall'altra VM di SQL Server, ad esempio
10.38.2.11
. Seleziona OK.Dopo aver esaminato i valori nella pagina Listener, selezionare Avanti:
Nella pagina Seleziona sincronizzazione dei dati iniziale, scegliere Backup completo del database e dei log e specificare la posizione di condivisione di rete creata in precedenza, ad esempio
\\SQL-VM-1\Backup
.Nota
La sincronizzazione completa acquisisce un backup completo del database nella prima istanza di SQL Server e lo ripristina nella seconda istanza. Per i database di grandi dimensioni, la sincronizzazione completa non è consigliabile perché può richiedere diverso tempo. È possibile ridurre manualmente il tempo necessario acquisendo un backup del database e ripristinandolo con
NO RECOVERY
. Se il database è già stato ripristinato conNO RECOVERY
nella seconda istanza di SQL Server prima di configurare il gruppo di disponibilità, scegliere Solo join. Per acquisire il backup dopo la configurazione del gruppo di disponibilità, scegliere Ignora sincronizzazione dei dati iniziale.Nella pagina Convalida, confermare che tutti i controlli di convalida siano stati superati, quindi scegliere Avanti:
Nella pagina Riepilogo, selezionare Fine e attendere il completamento della configurazione del nuovo gruppo di disponibilità tramite la procedura guidata. Per visualizzare lo stato di avanzamento dettagliato, cliccare su Altri dettagli nella pagina Stato. Una volta che la procedura guidata è stata completata correttamente nella pagina Risultati, esaminare il riepilogo per verificare che il gruppo di disponibilità e il listener siano stati creati correttamente.
Per uscire dalla procedura guidata, fare clic su Chiudi.
Controllare il gruppo di disponibilità
È possibile verificare l'integrità del gruppo di disponibilità usando SQL Server Management Studio e Gestione cluster di failover.
Per verificare lo stato del gruppo di disponibilità, seguire questa procedura:
In Esplora oggetti, espandere Disponibilità elevata Always On, quindi espandere i gruppi di disponibilità. A questo punto viene visualizzato il nuovo gruppo di disponibilità in questo contenitore. Fare clic con il pulsante destro del mouse sul gruppo di disponibilità e scegliere Mostra dashboard.
La dashboard dei gruppi di disponibilità mostra la replica, la modalità di failover di ogni replica e lo stato di sincronizzazione, come nell'esempio seguente:
Aprire la Gestione cluster di failover, selezionare il cluster e scegliere Ruoli per visualizzare il ruolo del gruppo di disponibilità creato all'interno del cluster. Scegliere il ruolo AG1 e selezionare la scheda Risorse per visualizzare il listener e gli indirizzi IP associati, come nell'esempio seguente:
A questo punto, è presente un gruppo di disponibilità con repliche in due istanze di SQL Server, nonché un listener del gruppo di disponibilità corrispondente. È possibile connettersi usando il listener e spostare il gruppo di disponibilità tra istanze usando SQL Server Management Studio.
Avviso
Non tentare di eseguire il failover del gruppo di disponibilità usando Gestione cluster di failover. Tutte le operazioni di failover dovrebbero essere eseguite dall'interno di SQL Server Management Studio, ad esempio usando la Dashboard Always On o Transact-SQL (T-SQL). Per ulteriori informazioni, vedere Limitazioni sull'uso di Gestione cluster di failover con i gruppi di disponibilità.
Connessione al listener di test
Quando il gruppo di disponibilità è pronto e il listener è stato configurato con gli indirizzi IP secondari appropriati, testare la connessione al listener.
Per testare la connessione, effettuare i seguenti passaggi:
Usare RDP per connettersi a un'istanza di SQL Server che si trova nella stessa rete virtuale, ma non è proprietaria della replica, ad esempio l'altra istanza di SQL Server all'interno del cluster o qualsiasi altra VM con SQL Server Management Studio installato.
Aprire SQL Server Management Studio e, nella finestra di dialogo Connessione al server, digitare il nome del listener (ad esempio, AG1-Listener) in Nome del server:, quindi selezionare Opzioni:
Immettere
MultiSubnetFailover=True
nella finestra Parametri di connessione aggiuntivi, quindi scegliere Connetti per connettersi automaticamente a qualsiasi istanza che ospita la replica primaria di SQL Server:
Nota
- Durante la connessione a un gruppo di disponibilità in subnet diverse, l'impostazione
MultiSubnetFailover=true
fornisce un rilevamento e una connessione più veloci alla replica primaria corrente. Vedere Connessione con MultiSubnetFailover
Passaggi successivi
Dopo aver configurato il gruppo di disponibilità su più subnet, se necessario, è possibile estenderlo in più aree.
Per ulteriori informazioni, vedere: