Configura i gruppi di disponibilità Always On di SQL Server con Google Cloud NetApp Volumes
Configura i gruppi di disponibilità Always On di SQL Server su istanze di Google Compute Engine all'interno di una singola subnet utilizzando Google Cloud NetApp Volumes storage a blocchi iSCSI. Scopri come configurare istanze di calcolo, configurare volumi NetApp, stabilire il clustering di failover e distribuire gruppi di disponibilità per alta disponibilità e disaster recovery.
Prerequisiti
Prima di procedere, completa i passaggi prerequisiti di configurazione nella documentazione di Google Cloud:
Prima di iniziare
Assicurati di aver completato i seguenti requisiti:
-
Progetto Google Cloud con autorizzazioni di amministratore per compute, network, IAM e storage
-
Rete VPC con subnet per una configurazione regionale
-
Configurazione di Active Directory e DNS disponibile in una regione
-
Regole del firewall configurate per consentire le porte richieste
-
Familiarità con i gruppi di disponibilità Always On di SQL Server e il clustering di failover
|
|
I nuovi utenti di Google Cloud potrebbero essere idonei per "crediti di prova gratuiti". |
Obiettivi
La configurazione del gruppo di disponibilità Always On di SQL Server include le seguenti attività high-level:
-
Configura le istanze di Compute Engine e i volumi di storage NetApp
-
Configura SQL Server su entrambi i nodi
-
Configurare il cluster di failover di Windows Server
-
Imposta il quorum del cluster con il testimone della condivisione file
-
Configura i gruppi di disponibilità di SQL Server
-
Configura Distributed Network Name (DNN) per l'accesso del listener
Considerazioni sui costi
Questo tutorial utilizza componenti fatturabili di Google Cloud, inclusi "Istanze Compute Engine" e "Google Cloud NetApp Volumes" storage.
Utilizza il "Calcolatore dei prezzi" per generare una stima dei costi in base ai tuoi requisiti di elaborazione e storage. La configurazione di esempio utilizza istanze di calcolo N4-SKU e storage a livello di servizio Flex di NetApp per la configurazione del gruppo di disponibilità Always On di SQL Server.
Configura gli account di dominio
Configura due account in Active Directory: un account di installazione (il tuo account admin) e un account di servizio per entrambe le VM di SQL Server.
Ad esempio, utilizzare i valori nella seguente tabella per gli account:
|
|
Questo esempio utilizza cvsdemo come domain name. Sostituisci cvsdemo con il tuo domain name durante questa procedura.
|
| Account | VM | Domain name completo | Descrizione |
|---|---|---|---|
<your account> |
Entrambi (sqlnode1 e sqlnode2) |
cvsdemo\DomainAdmin |
Account amministratore per accedere a una delle VM e configurare il cluster e il gruppo di disponibilità |
sqlsvc |
Entrambi (sqlnode1 e sqlnode2) |
cvsdemo\sqlsvc |
Account di servizio per SQL Server e SQL Server Agent su entrambe le VM di SQL Server |
Crea VM Compute Engine per SQL Server
Crea due istanze VM di Google Compute Engine con SQL Server 2022 Enterprise preinstallato su Windows Server 2025 per ospitare le repliche del gruppo di disponibilità.
-
Nella console di Google Cloud, vai alla pagina "Crea un'istanza".
Fare riferimento a "Documentazione Google Cloud" per maggiori informazioni.
-
Per Nome, inserisci
sqlnode1. -
Nella sezione Machine configuration:
-
Seleziona General Purpose
-
Nell'elenco Serie, seleziona N4
-
Nell'elenco Tipo di macchina, seleziona n4-highmem-8 (8 vCPU, 64 GB memory)
-
-
Seleziona la regione in cui hai creato la tua VPC (ad esempio, region=us-west1, zone=us-west1-a).
-
Nella sezione Disco di avvio, fai clic su Cambia:
-
Nella scheda Immagini pubbliche, nell'elenco Sistema operativo, seleziona SQL Server on Windows Server.
-
Nell'elenco Version, seleziona SQL Server 2022 Enterprise on Windows Server 2025 Datacenter.
-
Nell'elenco Boot disk type, seleziona Hyperdisk Balanced.
-
Nel campo Dimensione (GB), inserire 50 GB.
-
Fare clic su Seleziona per salvare la configurazione del disco di avvio.
-
-
Nella sezione Networking, modifica l'interfaccia di rete per selezionare la VPC e la subnet corrette. Se hai una sola VPC network, verrà selezionata per impostazione predefinita.
-
Sulla scheda di interfaccia di rete, seleziona gVNIC.
-
Per "Livello del servizio di rete", seleziona Premium per carichi di lavoro mission-critical o Standard per ottimizzare i costi.
-
-
Fare clic su Create per creare la VM.
-
Ripeti questi passaggi per creare
sqlnode2.
Unisci i server al domain name
Dopo aver creato le VM, uniscile al dominio Active Directory e installa le funzionalità Windows richieste per il clustering di failover e la connettività iSCSI.
-
Connetti in remoto alla macchina virtuale con l'account amministratore locale.
-
In Server Manager, seleziona Server locale.
-
Selezionare il collegamento WORKGROUP.
-
Nella sezione Nome computer, seleziona Change.
-
Seleziona la casella di controllo Domain e inserisci il tuo domain (ad esempio,
cvsdemo.internal) nella casella di testo. -
Fare clic su OK.
-
Nella finestra di dialogo Sicurezza di Windows, specificare le credenziali per l'account amministratore di dominio predefinito (ad esempio,
cvsdemo\DomainAdmin). -
Quando viene visualizzato il messaggio "Welcome to the cvsdemo.internal domain", fare clic su OK.
-
Fare clic su Chiudi, quindi selezionare Riavvia ora nella finestra di dialogo.
-
Dopo il riavvio del server, aggiungi l'account
sqlsvcal gruppo Administrators.
|
|
L'istanza SQL verrà eseguita utilizzando l'account sqlsvc, che è necessario per la configurazione del clustering e del failover. |
Installa le funzionalità di Windows richieste
Installa Failover Clustering e MPIO su entrambe le VM di SQL Server utilizzando Server Manager o PowerShell.
-
In Server Manager, seleziona Gestisci > Aggiungi ruoli e funzionalità.
-
Seleziona Installazione basata su ruoli o funzionalità e fai clic su Avanti.
-
Seleziona il tuo server e fai clic su Next.
-
Nella pagina Features, selezionare Failover Clustering e Multipath I/O.
-
Fare clic su Aggiungi funzionalità quando richiesto per includere gli strumenti di gestione.
-
Completare la procedura guidata e riavviare se richiesto.
Esegui PowerShell come amministratore ed esegui i seguenti comandi:
# Install Failover Clustering and tools
Install-WindowsFeature Failover-Clustering, RSAT-Clustering-PowerShell, RSAT-Clustering-CmdInterface -IncludeAllSubFeature -IncludeManagementTools
# Install/enable MPIO
Install-WindowsFeature -Name Multipath-IO
Enable-MSDSMAutomaticClaim -BusType "iSCSI"
# Install .NET and other SQL prerequisites (if not already installed)
Install-WindowsFeature NET-Framework-45-Core, NET-Framework-45-Features
Install-WindowsFeature RSAT-AD-PowerShell
Ottenere i nomi degli iSCSI initiator
Ottieni il nome qualificato iSCSI (IQN) per ogni VM di SQL Server da includere nel gruppo host utilizzando l'interfaccia utente grafica dell'iSCSI Initiator o PowerShell.
-
Premere Win+R o utilizzare la barra di ricerca di Windows per aprire
iscsicpl. -
Nella finestra di dialogo Proprietà dell'iSCSI Initiator, vai alla scheda Configurazione.
-
Copia il valore Initiator Name e includilo nel gruppo host.
Esempio:
iqn.1991-05.com.microsoft:sqlnode1.cvsdemo.internal
Esegui il seguente comando in PowerShell:
Get-InitiatorPort | Select-Object NodeAddress
Crea volumi di storage a blocchi NetApp
Crea volumi di storage a blocchi iSCSI utilizzando Google Cloud NetApp Volumes per fornire storage condiviso dalle performance elevate per i database SQL Server. Questo processo include la creazione di un gruppo host, di un pool di storage e di volumi individuali per dati, log, temp e backup.
Crea il gruppo host
-
Creare un gruppo host contenente gli iniziatori iSCSI da entrambi i nodi SQL.
gcloud beta netapp host-groups create HOST_GROUP_NAME \ --location=LOCATION \ --type=ISCSI_INITIATOR \ --hosts=HOSTS \ --os-type=OS_TYPE \ --description=DESCRIPTIONPer maggiori dettagli, fare riferimento alla "Crea un gruppo host" documentation.
-
Sostituisci i seguenti valori:
-
HOST_GROUP_NAME: Nome per il gruppo host (ad esempio,demosql) -
LOCATION: Regione (ad esempio,us-west1) -
HOSTS: Elenco separato da virgole di IQN sia da sqlnode1 che da sqlnode2Esempio:
iqn.1991-05.com.microsoft:sqlnode1.cvsdemo.internal,iqn.1991-05.com.microsoft:sqlnode2.cvsdemo.internal -
OS_TYPE: Tipo di sistema operativo (ad esempio,WINDOWS) -
DESCRIPTION: Descrizione facoltativa per il gruppo host
-
Crea pool di storage
-
Crea un pool di storage con capacità e prestazioni adeguate.
gcloud netapp storage-pools create POOL_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --service-level=Flex \ --type=Unified \ --capacity=1024 \ --total-throughput=64 \ --total-iops=1024 \ --network=name=VPC_NAME,psa-range=PSA_RANGEPer maggiori dettagli, fare riferimento alla "Creare un pool di archiviazione" documentation.
-
Sostituisci i seguenti valori:
-
POOL_NAME: Nome del pool (ad esempio,sqltest) -
PROJECT_ID: Nome del tuo progetto Google Cloud -
LOCATION: Stessa posizione delle istanze di calcolo (ad esempio,us-west1-b) -
CAPACITY: Capacità del pool in GiB (ad esempio,1024) -
SERVICE_LEVEL: Livello di servizio (ad esempio,Flex) -
VPC_NAME: Nome della tua VPC network -
PSA_RANGE: intervallo Private Services Access (ad esempio,xx.xxx.xxx.0/20) -
THROUGHPUT: Throughput opzionale in MiBps (ad esempio,64) -
IOPS: IOPS opzionali (ad esempio,1024)
-
Crea volumi
-
Crea volumi per dati, log, temp e backup. Esegui il seguente comando per ogni tipo di volume:
gcloud beta netapp volumes create VOLUME_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --storage-pool=POOL_NAME \ --capacity=CAPACITY \ --protocols=ISCSI \ --block-devices="name=VOLUME_NAME,host-groups=HOST_GROUP_PATH,os-type=WINDOWS" \ --snapshot-directory=falsePer maggiori dettagli, fare riferimento alla "Crea un volume" documentazione.
-
Sostituisci i seguenti valori:
-
VOLUME_NAME: Nome univoco per ogni volume (ad esempio,node1data,node1log,node1temp,node1backup) -
PROJECT_ID: Nome del tuo progetto Google Cloud -
LOCATION: Stessa posizione del pool di storage (ad esempio,us-west1-b) -
POOL_NAME: Nome del pool di storage (ad esempio,sqltest) -
CAPACITY: Capacità del volume in GiB (ad esempio,200) -
HOST_GROUP_PATH: Percorso completo della risorsa al gruppo host (per esempio,projects/PROJECT_ID/locations/us-west1/hostGroups/demosql)
-
|
|
È possibile specificare più gruppi host separando ciascun gruppo host con il simbolo #. |
|
|
Ripetere questo passaggio per ciascun tipo di volume: data, log, temp e backup. |
Montare i volumi iSCSI
Monta i volumi iSCSI non condivisi su ogni istanza SQL:
-
Nella console di Google Cloud, vai a NetApp volumes > Volumes.
-
Selezionare il volume creato per l'istanza SQL (ad esempio,
node1data). -
Copia entrambi gli indirizzi IP per l'iSCSI target (ad esempio,
10.165.128.216e10.165.128.217). -
Su sqlnode1, esegui
iscsicploppure usa PowerShell: -
Fare clic sulla scheda Discover, quindi su Discover Portal.
-
Aggiungi ogni indirizzo IP ottenuto; lascia la porta predefinita 3260.
"10.165.128.216","10.165.128.217" | % { New-IscsiTargetPortal -TargetPortalAddress $_ }
-
Nella finestra di dialogo Connetti alla destinazione, seleziona Abilita multi-path se utilizzi il multipathing.
-
Fare clic su Advanced e selezionare l'IP del target portal dal menu a discesa.
-
Fare clic su OK per connettersi.
-
Configurare MPIO per dispositivi iSCSI
-
Aprire MPIO dal Pannello di controllo o da Server Manager.
-
Fare clic sulla scheda Discover Multi-Paths.
-
Seleziona Aggiungi supporto per dispositivi iSCSI e fai clic su Aggiungi.
-
Riavvia se richiesto.
-
Verificare la configurazione multipath in Device Manager in Unità disco.
-
-
Inizializza e formatta i volumi
-
Avviare Gestione computer (
compmgmt.msce selezionare Gestione disco. -
Inizializza, partiziona e formatta ogni disco con unità di allocazione da 64K:
Format-Volume -DriveLetter <DriveLetter> -FileSystem NTFS -NewFileSystemLabel <Label> -AllocationUnitSize 65536 -Confirm:$false -
Assegna lettere di unità (ad esempio, D: per Data, E: per Log, F: per Backup, G: per Temp).
-
Crea la struttura delle directory per SQL Server:
$paths = "D:\MSSQL\DATA","E:\MSSQL\Log","F:\MSSQL\Backup","G:\MSSQL\Temp" $paths | % { New-Item -ItemType Directory -Path $_ -Force }
-
Configura SQL Server
Configurare SQL Server su entrambi i nodi per utilizzare l'account del servizio di dominio, aggiornare i percorsi predefiniti per utilizzare i volumi NetApp e spostare i database di sistema nelle nuove posizioni di storage.
-
Aggiornare i servizi SQL Server e SQL Server Agent in modo che vengano eseguiti con l'account del servizio di dominio per l'autenticazione del cluster e il supporto del failover.
-
In ogni istanza SQL, aprire
services.msc. -
Aggiorna Accedi come a
domain\sqlsvcper i servizi SQL Server e SQL Server Agent. -
Apri SQL Server Management Studio (SSMS) e connettiti con il tuo domain account.
Se la connessione fallisce, avvia SSMS come
<local computer>\Administrator. Assicurati che l'account Administrator sia abilitato in Users & Groups con la password appropriata.
-
-
Crea gli accessi agli account di dominio con le autorizzazioni richieste.
Sostituisci CVSDEMOcon il tuo domain name nei seguenti comandi SQL.USE [master] GO -- Create login for SQL service account CREATE LOGIN [CVSDEMO\sqlsvc] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english] GO -- Add to sysadmin role ALTER SERVER ROLE [sysadmin] ADD MEMBER [CVSDEMO\sqlsvc] GO -- Create user in master and assign role USE [master] GO CREATE USER [CVSDEMO\sqlsvc] FOR LOGIN [CVSDEMO\sqlsvc] GO ALTER ROLE [db_owner] ADD MEMBER [CVSDEMO\sqlsvc] GO -- Repeat for model, msdb, and tempdb databases USE [model] GO CREATE USER [CVSDEMO\sqlsvc] FOR LOGIN [CVSDEMO\sqlsvc] GO ALTER ROLE [db_owner] ADD MEMBER [CVSDEMO\sqlsvc] GO USE [msdb] GO CREATE USER [CVSDEMO\sqlsvc] FOR LOGIN [CVSDEMO\sqlsvc] GO ALTER ROLE [db_owner] ADD MEMBER [CVSDEMO\sqlsvc] GO USE [tempdb] GO CREATE USER [CVSDEMO\sqlsvc] FOR LOGIN [CVSDEMO\sqlsvc] GO ALTER ROLE [db_owner] ADD MEMBER [CVSDEMO\sqlsvc] GO -
Aggiornare i percorsi predefiniti per utilizzare i volumi NetApp anziché l'unità del sistema operativo:
USE [master] GO EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory', REG_SZ, N'F:\MSSQL\Backup' GO EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', REG_SZ, N'D:\MSSQL\DATA' GO EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', REG_SZ, N'E:\MSSQL\Log' GO -
Sposta i database di sistema (model, msdb, tempdb e master) dall'unità del sistema operativo ai volumi NetApp per prestazioni e gestione migliori.
-
Verificare i percorsi attuali:
-- Check current paths SELECT name, physical_name FROM sys.master_files WHERE database_id IN (DB_ID('model'), DB_ID('msdb')); -
Aggiorna alle nuove posizioni:
-- Move model database ALTER DATABASE model MODIFY FILE (NAME = modeldev, FILENAME = 'D:\MSSQL\Data\model.mdf'); ALTER DATABASE model MODIFY FILE (NAME = modellog, FILENAME = 'E:\MSSQL\Log\modellog.ldf'); -- Move msdb database ALTER DATABASE msdb MODIFY FILE (NAME = MSDBData, FILENAME = 'D:\MSSQL\Data\MSDBData.mdf'); ALTER DATABASE msdb MODIFY FILE (NAME = MSDBLog, FILENAME = 'E:\MSSQL\Log\MSDBLog.ldf'); GO -
Arresta SQL Server, sposta manualmente i file dalla vecchia posizione ai nuovi percorsi, quindi riavvia SQL Server.
-
Spostare il database tempdb
USE master; GO -- Check current tempdb files SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID('tempdb'); -- Change paths for tempdb ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'G:\MSSQL\Temp\tempdb.mdf'); ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'G:\MSSQL\Temp\templog.ldf'); GO -
Riavviare SQL Server affinché le modifiche abbiano effetto:
Restart-Service -Name "MSSQLSERVER" -Force
-
-
Spostare il database master
-
Aprire SQL Server Configuration Manager.
-
Passare a SQL Server Services, fare clic con il pulsante destro del mouse su SQL Server (MSSQLSERVER) e selezionare Properties.
-
Fare clic sulla scheda Startup Parameters.
-
In Parametri esistenti, individua i parametri che iniziano con
-d,-ee-l. -
Rimuovi i vecchi parametri e aggiungi quelli nuovi:
-dD:\MSSQL\Data\master.mdf -lE:\MSSQL\Log\mastlog.ldf -eE:\MSSQL\Log\ERRORLOG
-
Fare clic su OK.
-
-
Arresta il servizio SQL Server.
-
Spostare manualmente
master.mdfemastlog.ldfdalla vecchia posizione ai nuovi percorsi. -
Se hai aggiornato il percorso del registro degli errori, sposta il
ERRORLOGfile. -
Avvia il servizio SQL Server.
Configurare il cluster di failover
Configura Windows Server Failover Clustering per garantire un'elevata disponibilità per SQL Server. Per maggiori dettagli, consulta "Documentazione di Windows Server Failover Clustering".
Configura le regole del firewall
Aprire le porte di rete necessarie su entrambi i nodi SQL per abilitare la comunicazione del cluster, la connettività di SQL Server e la replica del gruppo di disponibilità.
-
Aprire le porte richieste su entrambi i nodi SQL per la comunicazione del cluster.
Le porte richieste includono: UDP 3343, TCP 3343, TCP 1433, TCP 5022, TCP 135, TCP 445, TCP 49152-65535 (dynamic RPC).
-
Eseguire il seguente checkpoint su entrambi i server per consentire la comunicazione tra SQL Server e il cluster attraverso il firewall.
Modifica i numeri di porta se hai configurazioni personalizzate.
# Open firewall for SQL Server netsh advfirewall firewall add rule name="Allow SQL Server" dir=in action=allow protocol=TCP localport=1433 # Open firewall for SQL Server replication netsh advfirewall firewall add rule name="Allow SQL Server replication" dir=in action=allow protocol=TCP localport=5022Per requisiti dettagliati del firewall, fare riferimento a "Requisiti del servizio Windows Server e delle porte di rete".
-
Eseguire controlli di convalida su entrambi i nodi prima di creare il cluster:
Test-Connection servername Resolve-DnsName servername Get-NetAdapterBinding -ComponentID ms_tcpip6
Creare il failover cluster
Crea un Windows Server Failover Cluster con entrambi i nodi di SQL Server per abilitare l'elevata disponibilità e le funzionalità di failover automatico.
-
Eseguire
cluadmin.msco aprire Failover Cluster Manager da Server Manager.
-
Seleziona Create Cluster.
-
Aggiungi entrambi i nodi SQL (sqlnode1, sqlnode2).
-
Esegui i test di convalida e assicurati che tutti i controlli vengano superati. Rivedi e correggi eventuali avvisi prima di procedere.
-
Fornire un nome del cluster (ad esempio,
sqlcluwest1). -
Completa la creazione del cluster.
Configurare il quorum del cluster con il testimone della condivisione file
Configura un file share witness per mantenere il quorum in una configurazione di cluster a due nodi. Il witness fornisce un voto aggiuntivo per prevenire scenari di split-brain e garantire la disponibilità del cluster.
Crea file share
Crea una condivisione file su una VM in una zona o regione diversa che abbia connettività di rete e si trovi nello stesso dominio Active Directory.
-
Connetti alla VM del server file share witness.
-
In Server Manager, seleziona Strumenti > Gestione computer.
-
Seleziona Cartelle condivise, fai clic con il pulsante destro del mouse su Condivisioni e seleziona Nuova condivisione.
-
Utilizzare la Creazione guidata cartella condivisa per creare una condivisione
\\servername\share. -
Nella pagina Percorso cartella, seleziona Sfoglia.
-
Individua o crea un percorso per la cartella condivisa e quindi seleziona Avanti.
-
Nella pagina Nome, descrizione e impostazioni, verifica il nome e il percorso della condivisione e poi seleziona Avanti.
-
Nella pagina Autorizzazioni cartella condivisa, seleziona Personalizza autorizzazioni e fai clic su Personalizzato
-
Nella finestra di dialogo Personalizza autorizzazioni, seleziona Aggiungi per aggiungere il cluster account.
Assicurarsi che l'account utilizzato per creare il cluster (sqlcluwest1$) abbia il controllo completo.
-
Fare clic su OK per salvare le autorizzazioni.
-
Nella pagina Autorizzazioni cartella condivisa, seleziona Fine e poi seleziona nuovamente Fine.
Configura le impostazioni del quorum
Configura il cluster per utilizzare il file share witness per la votazione del quorum.
-
In Failover Cluster Manager, fare clic con il pulsante destro del mouse sul cluster e selezionare More Actions > Configure Cluster Quorum Settings.
-
Nella procedura guidata Configure Cluster Quorum, fare clic su Avanti.
-
Nella pagina Seleziona configurazione quorum, scegli Seleziona il testimone del quorum e fai clic su Avanti.
-
Nella pagina Select Quorum Witness, seleziona Configure a file share witness.
-
Nella pagina Configure File Share Witness, seleziona Configure a file share witness.
-
Inserisci il percorso della condivisione che hai creato (ad esempio,
\\servername\share) e fai clic su Avanti. -
Verifica le impostazioni nella pagina di conferma e fai clic su Avanti.
-
Fare clic su Fine.
Le risorse core del cluster sono ora configurate con un file share witness.
Abilita Always On availability groups
Abilita i gruppi di disponibilità Always On su entrambe le VM di SQL Server:
-
Dal menu Start, apri SQL Server Configuration Manager.
-
Nella struttura del browser, selezionare SQL Server Services.
-
Fare clic con il pulsante destro del mouse su SQL Server (MSSQLSERVER) e selezionare Properties.
-
Seleziona la scheda Always On High Availability.
-
Seleziona Enable Always On availability groups.
-
Fare clic su Applica, quindi riavviare il servizio SQL Server quando richiesto.
-
Ripeti per la seconda istanza di SQL Server.
Crea un database sulla prima istanza di SQL Server
Crea un database sulla prima istanza di SQL Server.
-
Connettersi alla prima VM di SQL Server con un account di dominio che è membro del ruolo del server sysadmin.
-
Apri SQL Server Management Studio e connettiti alla prima istanza di SQL Server.
-
In Object Explorer, fare clic con il pulsante destro del mouse su Databases e selezionare New Database.
-
Immettere un nome per il database (ad esempio,
MyDB1) e fare clic su OK. -
Imposta la recovery del database su Completo:
ALTER DATABASE MyDB1 SET RECOVERY FULL; GO
Creare e configurare availability group
Crea un gruppo di disponibilità Always On con commit sincrono e failover automatico per garantire un'elevata disponibilità per i tuoi database SQL Server.
-
Eseguire sia un backup completo che un backup del transaction log del database.
-- Full backup BACKUP DATABASE MyDB1 TO DISK = 'F:\MSSQL\Backup\MyDB1_Full.bak' WITH INIT, COMPRESSION; -- Transaction log backup BACKUP LOG MyDB1 TO DISK = 'F:\MSSQL\Backup\MyDB1_Log.trn' WITH INIT, COMPRESSION; -
Copia i file di backup nella seconda istanza di SQL Server e ripristinali con NORECOVERY.
-- Restore full backup RESTORE DATABASE MyDB1 FROM DISK = 'F:\MSSQL\Backup\MyDB1_Full.bak' WITH NORECOVERY; -- Restore log backup RESTORE LOG MyDB1 FROM DISK = 'F:\MSSQL\Backup\MyDB1_Log.trn' WITH NORECOVERY; -
Crea il gruppo di disponibilità con commit sincrono, failover automatico e repliche secondarie leggibili:
-- Run on primary replica CREATE AVAILABILITY GROUP sqlagwest1 WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY) FOR DATABASE MyDB1 REPLICA ON N'SQLNODE1' WITH ( ENDPOINT_URL = N'TCP://sqlnode1.cvsdemo.internal:5022', AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, FAILOVER_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = YES) ), N'SQLNODE2' WITH ( ENDPOINT_URL = N'TCP://sqlnode2.cvsdemo.internal:5022', AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, FAILOVER_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = YES) ); GO -
Crea il gruppo di disponibilità utilizzando la procedura guidata Availability Group.
Assicurarsi che la porta firewall 5022 sia consentita su entrambi i nodi SQL.
Crea risorsa listener DNN
Crea un listener Distributed Network Name (DNN) per instradare il traffico verso la risorsa cluster appropriata senza richiedere un load balancer.
Utilizzare PowerShell per creare la risorsa DNN:
$Ag = "sqlagwest1"
$Dns = "AOAGDNN"
$Port = "1433"
# Add DNN resource
Add-ClusterResource -Name $Dns -ResourceType "Distributed Network Name" -Group $Ag
# Set DNN properties
Get-ClusterResource -Name $Dns | Set-ClusterParameter -Name DnsName -Value $Dns
Get-ClusterResource -Name $Dns | Set-ClusterParameter -Name Port -Value $Port
# Start DNN resource
Start-ClusterResource -Name $Dns
# Add dependency
$AagResource = Get-ClusterResource | Where-Object {$_.ResourceType -eq "SQL Server Availability Group" -and $_.OwnerGroup -eq $Ag}
Set-ClusterResourceDependency -Resource $AagResource -Dependency "[$Dns]"
Configura i possibili proprietari
Per impostazione predefinita, il cluster associa il nome DNS DNN a tutti i nodi. Escludere i nodi che non partecipano al gruppo di disponibilità:
-
In Failover Cluster Manager, individuare la risorsa DNN.
-
Fare clic con il pulsante destro del mouse sulla risorsa DNN e selezionare Properties.
-
Deseleziona la casella di controllo per qualsiasi nodo che non partecipa al gruppo di disponibilità.
-
Fare clic su OK per salvare le impostazioni.
Aggiorna le stringhe di connessione dell'applicazione
Aggiorna le stringhe di connessione per utilizzare il nome del listener DNN e includere il parametro MultiSubnetFailover=True:
Server=AOAGDNN,1433;Database=MyDB1;MultiSubnetFailover=True;
|
|
Se il tuo client non supporta il parametro MultiSubnetFailover, non è compatibile con DNN. |
Test failover
Verificare la configurazione del gruppo di disponibilità e testare il failover per garantire che il failover automatico funzioni correttamente tra i nodi.
-
Esegui il comando seguente su qualsiasi replica per verificare la configurazione del gruppo di disponibilità.
Entrambe le repliche dovrebbero mostrare
SYNCHRONOUS_COMMITper availability mode eAUTOMATICper failover mode, il che garantisce zero perdita di dati durante il failover automatico.SELECT ag.name AS AG_Name, ars.primary_replica FROM sys.dm_hadr_availability_group_states AS ars JOIN sys.availability_groups AS ag ON ag.group_id = ars.group_id; -- Check replica configuration SELECT replica_server_name, availability_mode_desc, failover_mode_desc FROM sys.availability_replicas WHERE group_id = (SELECT group_id FROM sys.availability_groups WHERE name = N'sqlagwest1');
-
Eseguire il seguente comando sul nodo secondario per avviare il failover:
ALTER AVAILABILITY GROUP sqlagwest1 FAILOVER; GO -
Verificare che la destinazione della connettività sia passata al nuovo primario:
-- SELECT @@SERVERNAME AS NowPrimary;In SSMS, espandere il nodo del gruppo di disponibilità, fare clic con il pulsante destro del mouse su Always On High Availability e selezionare Show Dashboard.
La dashboard dovrebbe visualizzare entrambi i nodi con stato di integrità e confermare il failover.
Elimina le risorse
Dopo aver completato il tutorial, elimina le risorse che hai creato per evitare di incorrere in costi aggiuntivi:
-
Elimina le istanze di Compute Engine (sqlnode1, sqlnode2)
-
Elimina Google Cloud NetApp Volumes (volumi, pool di archiviazione, gruppi host)
-
Eliminare le risorse VPC e di rete se sono state create specificamente per questo tutorial
-
Eliminare il server file share witness, se applicabile
Fare riferimento a "Documentazione di Google Cloud NetApp Volumes" e "Documentazione Google Compute Engine" per i passaggi dettagliati sull'eliminazione delle risorse.
Dove trovare ulteriori informazioni
Per ulteriori informazioni su SQL Server su Google Cloud con NetApp storage, consultare la seguente documentazione: