Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Configurare Microsoft SQL Server Always On Availability Group su OCI con listener e load balancer
Introduzione
L'implementazione di Microsoft SQL Server in Oracle Cloud Infrastructure (OCI) offre alle aziende una piattaforma potente per raggiungere i loro obiettivi di alta disponibilità e continuità aziendale. Uno degli approcci più efficaci per l'alta disponibilità di Microsoft SQL Server è la funzione del gruppo di disponibilità Always On. I gruppi di disponibilità Always On di Microsoft SQL Server offrono una soluzione di disaster recovery ad alta disponibilità che consente un failover e una replica dei dati senza interruzioni su più istanze di SQL Server.
Esistono vari modi per impostare un gruppo di disponibilità di Microsoft SQL Server. Un approccio consiste nel posizionare le virtual machine SQL Server in subnet separate all'interno della stessa rete virtuale. Per distribuire un gruppo di disponibilità di SQL Server utilizzando un'architettura multi-subnet, vedere Distribuzione di un database Microsoft SQL Server ad alta disponibilità su OCI utilizzando i gruppi di disponibilità Always On e Distribuire i gruppi di disponibilità Always On Microsoft SQL Server per HA e DR su OCI.
Seguendo questa esercitazione, potrai distribuire e configurare un gruppo di disponibilità Always On di SQL Server su OCI utilizzando le virtual machine all'interno di una singola subnet. Questa configurazione include un load balancer OCI privato che funge da listener, consentendo connettività client trasparente e alta disponibilità. Questo approccio è ideale per ambienti in cui semplicità e affidabilità sono fondamentali, fornendo failover automatico, ridondanza dei dati e accesso ininterrotto ai database SQL Server. Grazie a questa configurazione, la tua infrastruttura è ben posizionata per supportare carichi di lavoro mission-critical con una solida business continuity. Per le distribuzioni di produzione, prendere in considerazione l'implementazione di strategie avanzate di monitoraggio, registrazione, protezione avanzata e backup a complemento di questa configurazione ad alta disponibilità.
Se si desidera distribuire un gruppo di disponibilità Sempre attivo all'interno di una singola subnet, questa esercitazione fornisce istruzioni dettagliate per l'impostazione utilizzando le virtual machine OCI e un load balancer OCI. Questa esercitazione descrive come impostare un gruppo di disponibilità Always On a due nodi su OCI utilizzando le virtual machine in una singola subnet, con un load balancer OCI.
Architettura
L'immagine seguente mostra un'architettura di alto livello di esempio della soluzione.
Esclusioni per questo tutorial
-
Configurazione dei servizi di dominio Active Directory su OCI. Per ulteriori informazioni, vedere Creazione di servizi di dominio Active Directory in Oracle Cloud Infrastructure.
-
Installazione e configurazione di SQL Server su OCI. Per ulteriori informazioni, vedere Microsoft SQL Server su Oracle Cloud Infrastructure.
-
Configurazione del cluster di failover di Windows. Per ulteriori informazioni, vedere Creare il cluster.
-
Configurazione del testimone della condivisione file. Per ulteriori informazioni, vedere Aggiungere una condivisione di file per il quorum di un cluster.
Obiettivi
- Distribuire e configurare i gruppi di disponibilità Always On di SQL Server su OCI utilizzando virtual machine in una singola subnet. Include l'impostazione del gruppo di disponibilità Always On di SQL Server 2022 e un load balancer OCI per abilitare l'alta disponibilità e il failover automatico con un listener per una connettività client trasparente.
Prerequisiti
-
Si consiglia di comprendere i gruppi di disponibilità Always On di SQL Server.
-
Accesso a una tenancy OCI con un compartimento definito per ospitare tutte le risorse correlate.
-
Una rete cloud virtuale (VCN) configurata con almeno una subnet privata.
-
Per questa esercitazione saranno necessari almeno 6 indirizzi IP privati.
- 1 per controller di dominio
- 2 per due nodi SQL Server
- 1 per IP cluster di failover di Windows Server
- 1 per l'IP del listener del gruppo di disponibilità Always On di SQL Server
- 1 per OCI Load Balancer
Poiché l'indirizzo IP mobile OCI non è supportato, l'indirizzo IP per il listener del gruppo di disponibilità SQL (AG) e il load balancer OCI saranno diversi.
-
Regole della lista di sicurezza configurate per l'implementazione dei gruppi di disponibilità Always On di SQL Server: le porte
1433
e5022
sono aperte. -
Tre istanze di virtual machine OCI di Windows Server 2022.
- Una VM configurata come controller di dominio Active Directory.
- Due VM con SQL Server 2022 e SQL Server Management Studio (SSMS) installati.
-
Per supportare la configurazione quorum è necessario un testimone della condivisione file.
- Per semplicità, per questa esercitazione utilizzare una cartella condivisa sul controller di dominio per ospitare il testimone della condivisione file.
- Per gli ambienti di produzione, prendere in considerazione l'implementazione di modelli di quorum più solidi.
-
È necessario configurare un cluster di failover Windows tra le due VM SQL Server.
Task 1: Configura SQL Server Always On Availability Group
Task 1.1: abilitare i gruppi di disponibilità su entrambi i nodi SQL Server (DevSQL1
e DevSQL2
)
-
Nel nodo
DevSQL1
, andare a Start, cercare e aprire SQL Server 2022 Configuration Manager. -
Selezionare Servizi SQL Server, fare clic con il pulsante destro del mouse sul servizio SQL Server (MSSQLSERVER) e selezionare Proprietà. Se si utilizza un'istanza denominata, sarà SQL Server (
INSTANCENAME
). -
Fare clic su Sempre nei gruppi di disponibilità e selezionare Abilita gruppi di disponibilità Sempre attivo.
-
Selezionare Applica e fare clic su OK.
-
Riavviare il servizio SQL Server.
-
Ripetere i passi da 1 a 5 sull'altro nodo (
DevSQL2
).
Task 1.2: creare un database sul primo nodo SQL Server (DevSQL1
) e eseguire un backup completo
-
Nel nodo
DevSQL1
, andare a Start, cercare SSMS e aprire SQL Server Management Studio (SSMS). -
Connettersi a SQL Server primario. In questa esercitazione si trova
DevSQL1
. -
In Explorer oggetti, fare clic con il pulsante destro del mouse su Database e fare clic su Nuovo database.
-
In Generale, immettere Nome database e in Opzioni, selezionare Completo come Modello di recupero.
-
Fare clic su OK.
-
Per eseguire un backup completo, fare clic con il pulsante destro del mouse su database "AdventureWorks2022", Task e fare clic su Backup.
-
In Generale, assicurarsi che Tipo di backup sia Completo e in Destinazione, selezionare Disco come Backup in, fare clic su Aggiungi e immettere la posizione e il nome file per il backup completo.
-
Fare clic su OK.
È inoltre possibile eseguire un backup utilizzando Transact-SQL. Ad esempio:
Transact-SQL:
BACKUP DATABASE [AdventureWorks2022] TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\AdventuresWork2022.bak' WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks2022-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
Task 1.3: Creare un gruppo di disponibilità
-
Aprire SQL Server Management Studio, connettersi a
DevSQL1
. In Explorer oggetti, fare clic con il pulsante destro del mouse su Sempre in modalità High Availability e fare clic su Creazione guidata nuovo gruppo di disponibilità.Verrà aperta una pagina Nuovo gruppo di disponibilità. Fare clic su Avanti.
-
In Specifica opzioni, immettere Nome gruppo di disponibilità come
DevAG
, Tipo di cluster come Cluster di failover di Windows Server e fare clic su Avanti. -
In Seleziona database selezionare il database che si desidera aggiungere a questo gruppo di disponibilità. In Stato, dovrebbe essere visualizzato Soddisfa prerequisiti per poter aggiungere il database al gruppo di disponibilità. Se ci sono problemi, ti dirà il motivo e dobbiamo intraprendere le azioni necessarie per soddisfare i prerequisiti. Ad esempio, un backup completo del database potrebbe essere in sospeso.
-
In Specificare le repliche aggiungere le repliche. Fare clic su Repliche per assicurarsi che entrambi i nodi vengano aggiunti in Repliche disponibilità e modificare la modalità di disponibilità in Commit sincrono. Puoi avere una modalità di disponibilità diversa in base alle tue esigenze.
-
Fare clic su Endpoint per assicurarsi che entrambi gli endpoint utilizzino la stessa porta e che tali porte siano aperte nel firewall e nella lista di sicurezza. Per default sarà la porta
5022
.Nota: per questa esercitazione verranno mantenute tutte le altre opzioni come predefinite. Non creare listener al momento.
-
Successivamente è necessario selezionare la sincronizzazione dei dati. Selezionare Popolamento automatico e fare clic su Avanti.
-
In Convalida, assicurarsi che la convalida sia Operazione riuscita e correggere eventuali errori. È possibile ignorare l'avvertenza Controllo della configurazione del listener poiché verrà creato il listener in un secondo momento. Fare clic su Avanti e, una volta creato il gruppo di disponibilità, selezionare Chiudi per chiudere la procedura guidata.
-
In Explorer oggetti, espandere Sempre in alta disponibilità, quindi espandere Gruppi di disponibilità. Ora è necessario visualizzare il nuovo gruppo di disponibilità in questo contenitore. Fare clic con il pulsante destro del mouse sul gruppo di disponibilità e selezionare Mostra dashboard.
-
Aprire Failover Cluster Manager, andare a Avvia, cercare e aprire Failover Cluster Manager. Connettersi al cluster e fare clic su Ruoli.
Il nome del gruppo di disponibilità utilizzato è un ruolo nel cluster e tale gruppo di disponibilità non dispone di un indirizzo IP per le connessioni client perché non è stato configurato un listener. Il listener verrà configurato dopo aver creato un load balancer OCI.
In questa fase, il gruppo di disponibilità è stato configurato correttamente con due repliche di SQL Server, consentendo il failover tra le istanze. Tuttavia, la connettività client che utilizza il listener non è ancora possibile poiché non è stato impostato un listener.
Task 2: creare un load balancer OCI e configurare un listener di gruppi di disponibilità
Esistono diversi approcci per configurare un listener del gruppo di disponibilità Always On di SQL Server su OCI, incluso l'utilizzo di un'impostazione multi-subnet o l'assegnazione di un indirizzo IP secondario a ciascuna virtual machine. Sebbene questi metodi siano validi, spesso richiedono ulteriori configurazioni o script personalizzati per gestire lo spostamento degli IP durante gli eventi di failover.
Se desideri distribuire un gruppo di disponibilità Always On in un singolo ambiente di subnet e preferisci evitare la creazione di script personalizzati, l'utilizzo di un load balancer OCI privato offre una soluzione semplificata e affidabile. Questa sezione ti guiderà nella configurazione del load balancer OCI per fungere da listener per il tuo gruppo di disponibilità Always On, consentendo una connettività e una gestione del failover perfette all'interno di una singola subnet.
Task 2.1: riservare un indirizzo IP privato statico per SQL Server Always On Availability Group Listener
Riservare un IP privato statico in OCI che verrà in seguito assegnato all'IP del listener del gruppo di disponibilità Always On di SQL Server nel cluster di failover Windows. Si sta riservando questo indirizzo IP per assicurarsi che a nessun altro servizio o VM venga assegnato questo indirizzo IP nell'infrastruttura OCI. Questo indirizzo IP non verrà utilizzato dai client per la connessione, ma aiuterà il failover del gruppo di disponibilità e assicurerà che il load balancer OCI instrada la connessione al server primario corretto.
-
Andare alla console OCI, andare a Networking e fare clic su Reti cloud virtuali.
-
Andare alla VCN utilizzata per i nodi di SQL Server.
-
Fare clic su Subnet e andare alla subnet utilizzata per i nodi di SQL Server.
-
In Risorse, fare clic su IPv4 indirizzi.
-
Fare clic su Aggiungi indirizzo IPv4 riservato.
-
Immettere l'indirizzo IP che si desidera assegnare al listener del gruppo di disponibilità Always On di SQL Server. Questo può essere qualsiasi indirizzo IP inutilizzato, si noti che i client non saranno in grado di connettersi utilizzando questo indirizzo IP in remoto. Questo è un IP fittizio che verrà assegnato al listener del gruppo di disponibilità Always On di SQL Server nel cluster di failover Windows. Per questo tutorial, abbiamo usato
10.0.0.148
.
Task 2.2: creare un load balancer OCI privato
Nota: i campi non menzionati qui vengono mantenuti come predefiniti.
-
Andare a OCI Console, andare a Networking e Load Balancer.
-
Fare clic su Load balancer e su Crea load balancer.
-
Immettere il nome del load balancer e selezionare Privato come tipo di visibilità.
-
In Scegli networking, selezionare il nome del compartimento per la VCN e la subnet che verranno utilizzati per questo load balancer. Utilizzare la stessa VCN e la stessa subnet utilizzata per i nodi di SQL Server.
-
In Gestione, selezionare il compartimento in cui verrà creato questo load balancer. Assicurarsi di abilitare Impedire l'eliminazione del load balancer, dei listener e dei backend quando sono ancora attivi per evitare interruzioni impreviste dei servizi e fare clic su Successivo.
-
In Backend, specificare un criterio di bilanciamento del carico come round robin ponderato.
-
Nel campo Seleziona server backend aggiungere entrambi i nodi SQL Server:
DevSQL1
eDevSQL2
. Modificare il numero di porta in1433
; se si utilizza una porta diversa per SQL Server, immettere il numero di porta corrispondente. -
In Specificare il criterio di controllo dello stato, utilizzare il protocollo TCP Protocollo con il numero di porta
59999
. È possibile utilizzare qualsiasi porta inutilizzata. -
Mantenere tutte le altre impostazioni come predefinite e si sta utilizzando la lista di sicurezza per la VCN selezionata. Fare clic su Avanti.
-
In Configura listener immettere Nome listener, Traffico TCP e Numero Porta come
1433
. Mantenere tutte le altre impostazioni come predefinite. -
Fare clic su Avanti, rivedere la configurazione e fare clic su Sottometti.
-
Una volta eseguito il provisioning del load balancer OCI, puoi prendere nota dell'indirizzo IP privato del load balancer OCI andando su Networking, Load balancer e fare clic su Load balancer.
In questa esercitazione l'indirizzo IP per il load balancer è 10.0.0.149
. Indirizzo IP utilizzato dai client per connettersi al listener del gruppo di disponibilità Always On di SQL Server.
Task 2.3: configurare il listener del gruppo di disponibilità Always On SQL Server
-
RDP (Remote Desktop Protocol) nella VM che ospita la replica primaria. In questa esercitazione si trova
DevSQL1
. Per confermare questa operazione, è possibile aprire Gestione cluster failover Windows, Ruoli e per il ruolo del gruppo di disponibilità SQL esaminare la colonna Nodo proprietario per confermare quale nodo è la replica primaria. -
Passare a Reti e prendere nota del nome di rete come variabile
$ClusterNetworkName
. -
Aggiungere il punto di accesso client. Il punto di accesso client è il nome di rete utilizzato dalle applicazioni per connettersi ai database in un gruppo di disponibilità.
-
In Gestione cluster di salvataggio espandere il nome del cluster e selezionare Ruoli.
-
Fare clic su Ruoli, fare clic con il pulsante destro del mouse sul nome del gruppo di disponibilità, selezionare Aggiungi risorsa e fare clic su Punto di accesso client.
-
In Nome, creare un nome per questo nuovo listener. Il nome del nuovo listener è il nome di rete utilizzato dalle applicazioni per connettersi ai database nel gruppo di disponibilità di SQL Server.
-
Fare clic due volte su Avanti e selezionare Fine. A questo punto, non connettere il listener o la risorsa.
-
-
Rendere offline il ruolo cluster per il gruppo di disponibilità. In Gestione cluster di salvataggio, fare clic su Ruoli, fare clic con il pulsante destro del mouse sul ruolo e selezionare Interrompi ruolo.
-
Configurare la risorsa IP per il gruppo di disponibilità.
-
Fare clic su Risorse ed espandere il punto di accesso client creato. Il punto di accesso client è offline.
-
Fare clic con il pulsante destro del mouse sulla risorsa IP e selezionare Proprietà. Prendere nota del nome dell'indirizzo IP come variabile
$IPResourceName
. In questa esercitazione il nome èIP Address 10.0.0.0
. -
Fare clic su IP Address e selezionare Static IP Address. Imposta l'indirizzo IP come indirizzo IP che abbiamo riservato nel Task 2.1. In questa esercitazione si trova
10.0.0.148
.
-
-
Rendere il gruppo di disponibilità di SQL Server dipendente dal punto di accesso client.
-
In Gestione cluster di salvataggio, fare clic su Ruoli e selezionare il gruppo di disponibilità.
-
Fare clic su Risorse, in Altre risorse, fare clic con il pulsante destro del mouse sulla risorsa del gruppo di disponibilità e fare clic su Proprietà.
-
Fare clic su Dipendenze e aggiungere il nome del punto di accesso client (il listener).
-
Fare clic su OK.
-
-
Rendere il punto di accesso del client dipendente dall'indirizzo IP.
-
In Gestione cluster di salvataggio, fare clic su Ruoli e selezionare il gruppo di disponibilità.
-
Fare clic su Risorse, fare clic con il pulsante destro del mouse sul punto di accesso client in Nome server e fare clic su Proprietà.
-
Fare clic su Dipendenze e verificare che l'indirizzo IP sia una dipendenza. In caso contrario, impostare una dipendenza dall'indirizzo IP. Se sono elencate più risorse, verificare che gli indirizzi IP abbiano dipendenze OR, non AND, e fare clic su OK.
-
-
Impostare i parametri del cluster in Windows PowerShell.
-
Copiare il seguente script PowerShell in una delle istanze di SQL Server. Aggiornare le variabili per l'ambiente.
-
Per trovare il nome
$ClusterNetworkName
in Failover Cluster Manager, selezionare Reti, fare clic con il pulsante destro del mouse sulla rete e selezionare Proprietà. Il$ClusterNetworkName
si trova in Nome nella scheda Generale. -
$IPResourceName
è il nome assegnato alla risorsa indirizzo IP in Failover Cluster Manager. Si trova in Failover Cluster Manager selezionando Ruoli, selezionare il gruppo di disponibilità di SQL Server o il nome FCI, selezionare Risorse in Nome server, fare clic con il pulsante destro del mouse sulla risorsa indirizzo IP e fare clic su Proprietà. Il valore corretto si trova in Nome nella scheda Generale. -
$ListenerILBIP
è l'indirizzo IP creato nel load balancer di Azure per il listener del gruppo di disponibilità. Trovare il valore$ListenerILBIP
in Failover Cluster Manager nella stessa pagina delle proprietà del nome della risorsa listener SQL Server AG/FCI. -
$ListenerProbePort
è la porta configurata nel load balancer di Azure per il listener del gruppo di disponibilità, ad esempio59999
. Qualsiasi porta TCP non utilizzata è valida.
$ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name. $IPResourceName = "<IPResourceName>" # The IP address resource name. $ListenerILBIP = "<n.n.n.n>" # The IP address that we reserved in Task 2.1. This is the static IP address for the SQL Server AG Listener that you reserved in OCI Console. [int]$ListenerProbePort = <nnnnn> Import-Module FailoverClusters Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
Per questo tutorial, abbiamo usato quanto segue:
$ClusterNetworkName = "Cluster Network 1" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name. $IPResourceName = "IP Address 10.0.0.0" # The IP address resource name. $ListenerILBIP = "10.0.0.148" # The IP address of the internal load balancer. This is the static IP address for the load balancer that you configured in the Azure portal. [int]$ListenerProbePort = 59999 Import-Module FailoverClusters Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
-
-
Impostare i parametri del cluster eseguendo lo script PowerShell su uno dei nodi del cluster.
-
-
L'aggiunta di un'esclusione impedirà l'assegnazione dinamica di altri processi di sistema alla stessa porta. Per questo scenario, configurare le esclusioni riportate di seguito su tutti i nodi del cluster.
netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent
-
Connettere il ruolo cluster per il gruppo di disponibilità. In Gestione cluster di salvataggio, fare clic su Ruoli, fare clic con il pulsante destro del mouse sul ruolo e selezionare Avvia ruolo.
-
In SQL Server Management Studio impostare la porta del listener.
-
Aprire SQL Server Management Studio e connettersi alla replica primaria.
-
Andare a Sempre in alta disponibilità, Gruppi di disponibilità e fare clic su L listener dei gruppi di disponibilità.
-
Fare clic con il pulsante destro del mouse sul nome del listener creato nel task 2.2 e fare clic su Proprietà.
-
In Porta, specificare il numero di porta per il listener del gruppo di disponibilità e fare clic su OK. Il valore predefinito è
1433
.
-
-
Nel server DNS, assicurarsi che esista un record Host A per l'indirizzo IP privato del load balancer OCI che punti al nome del listener del gruppo di disponibilità SQL. Assicurarsi che l'oggetto computer del listener SQL non sia in grado di aggiornare i record DNS. Ciò garantisce che dopo il failover la voce DNS non venga aggiornata all'indirizzo IP utilizzato nel cluster di failover di Windows.
In questa esercitazione è stato aggiornato il record Host A del listener del gruppo di disponibilità SQL con l'indirizzo IP
10.0.0.149
anziché10.0.0.148
e l'Sicurezza è stata aggiornata per garantire che l'oggetto computerSQLAGL$
non sia in grado di aggiornare questo record e di leggerlo solo.
Ci possono essere più metodi per raggiungere questo obiettivo, è possibile implementare la propria soluzione. L'obiettivo è avere un record DNS per il listener del gruppo di disponibilità SQL Server con l'indirizzo IP del load balancer OCI.
Ora puoi testare la connessione al listener del gruppo di disponibilità di SQL Server da SSMS o da qualsiasi altro strumento client.
Collegamenti correlati
-
Distribuire i gruppi di disponibilità Always On Microsoft SQL Server per HA e DR su OCI
-
Gruppi di disponibilità su scala di lettura su Oracle Cloud Infrastructure
-
Creazione di servizi di dominio Active Directory in Oracle Cloud Infrastructure
Conferme
- Autore - Deviprasad Moolya (Principal Cloud Architect)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Configure Microsoft SQL Server Always On Availability Group on OCI with Listener and Load Balancer
G33420-01
Copyright ©2025, Oracle and/or its affiliates.