Skip to main content
NetApp database solutions
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Configura i gruppi di disponibilità Always On di SQL Server con Google Cloud NetApp Volumes

Collaboratori netapp-jsnyder

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

Nota 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:

Nota 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à.

Passaggi
  1. Nella console di Google Cloud, vai alla pagina "Crea un'istanza".

    Fare riferimento a "Documentazione Google Cloud" per maggiori informazioni.

  2. Per Nome, inserisci sqlnode1.

  3. Nella sezione Machine configuration:

    1. Seleziona General Purpose

    2. Nell'elenco Serie, seleziona N4

    3. Nell'elenco Tipo di macchina, seleziona n4-highmem-8 (8 vCPU, 64 GB memory)

  4. Seleziona la regione in cui hai creato la tua VPC (ad esempio, region=us-west1, zone=us-west1-a).

  5. Nella sezione Disco di avvio, fai clic su Cambia:

    1. Nella scheda Immagini pubbliche, nell'elenco Sistema operativo, seleziona SQL Server on Windows Server.

    2. Nell'elenco Version, seleziona SQL Server 2022 Enterprise on Windows Server 2025 Datacenter.

    3. Nell'elenco Boot disk type, seleziona Hyperdisk Balanced.

    4. Nel campo Dimensione (GB), inserire 50 GB.

    5. Fare clic su Seleziona per salvare la configurazione del disco di avvio.

  6. 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.

    1. Sulla scheda di interfaccia di rete, seleziona gVNIC.

    2. Per "Livello del servizio di rete", seleziona Premium per carichi di lavoro mission-critical o Standard per ottimizzare i costi.

  7. Fare clic su Create per creare la VM.

  8. 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.

Passaggi
  1. Connetti in remoto alla macchina virtuale con l'account amministratore locale.

  2. In Server Manager, seleziona Server locale.

  3. Selezionare il collegamento WORKGROUP.

  4. Nella sezione Nome computer, seleziona Change.

  5. Seleziona la casella di controllo Domain e inserisci il tuo domain (ad esempio, cvsdemo.internal) nella casella di testo.

  6. Fare clic su OK.

  7. Nella finestra di dialogo Sicurezza di Windows, specificare le credenziali per l'account amministratore di dominio predefinito (ad esempio, cvsdemo\DomainAdmin).

  8. Quando viene visualizzato il messaggio "Welcome to the cvsdemo.internal domain", fare clic su OK.

  9. Fare clic su Chiudi, quindi selezionare Riavvia ora nella finestra di dialogo.

  10. Dopo il riavvio del server, aggiungi l'account sqlsvc al gruppo Administrators.

Nota 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.

Opzione 1: utilizzo di Server Manager
  1. In Server Manager, seleziona Gestisci > Aggiungi ruoli e funzionalità.

  2. Seleziona Installazione basata su ruoli o funzionalità e fai clic su Avanti.

  3. Seleziona il tuo server e fai clic su Next.

  4. Nella pagina Features, selezionare Failover Clustering e Multipath I/O.

  5. Fare clic su Aggiungi funzionalità quando richiesto per includere gli strumenti di gestione.

  6. Completare la procedura guidata e riavviare se richiesto.

Opzione 2: Utilizzo di PowerShell

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.

Opzione 1: utilizzo di iSCSI Initiator
  1. Premere Win+R o utilizzare la barra di ricerca di Windows per aprire iscsicpl.

  2. Nella finestra di dialogo Proprietà dell'iSCSI Initiator, vai alla scheda Configurazione.

  3. Copia il valore Initiator Name e includilo nel gruppo host.

    Esempio: iqn.1991-05.com.microsoft:sqlnode1.cvsdemo.internal

Opzione 2: Utilizzo di PowerShell

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

Passaggi
  1. 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=DESCRIPTION

    Per maggiori dettagli, fare riferimento alla "Crea un gruppo host" documentation.

  2. 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 sqlnode2

      Esempio: 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

      Configurazione del pool di storage

Crea pool di storage

Passaggi
  1. 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_RANGE

    Per maggiori dettagli, fare riferimento alla "Creare un pool di archiviazione" documentation.

  2. 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

  1. 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=false

    Per maggiori dettagli, fare riferimento alla "Crea un volume" documentazione.

  2. 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)

Suggerimento È possibile specificare più gruppi host separando ciascun gruppo host con il simbolo #.
Nota 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:

Passaggi
  1. Nella console di Google Cloud, vai a NetApp volumes > Volumes.

  2. Selezionare il volume creato per l'istanza SQL (ad esempio, node1data).

  3. Copia entrambi gli indirizzi IP per l'iSCSI target (ad esempio, 10.165.128.216 e 10.165.128.217).

  4. Su sqlnode1, esegui iscsicpl oppure usa PowerShell:

  5. Fare clic sulla scheda Discover, quindi su Discover Portal.

  6. Aggiungi ogni indirizzo IP ottenuto; lascia la porta predefinita 3260.

    "10.165.128.216","10.165.128.217" | % { New-IscsiTargetPortal -TargetPortalAddress $_ }
    Scopri iSCSI target portals
  7. Nella finestra di dialogo Connetti alla destinazione, seleziona Abilita multi-path se utilizzi il multipathing.

  8. Fare clic su Advanced e selezionare l'IP del target portal dal menu a discesa.

  9. Fare clic su OK per connettersi.

  10. Configurare MPIO per dispositivi iSCSI

    1. Aprire MPIO dal Pannello di controllo o da Server Manager.

    2. Fare clic sulla scheda Discover Multi-Paths.

    3. Seleziona Aggiungi supporto per dispositivi iSCSI e fai clic su Aggiungi.

    4. Riavvia se richiesto.

    5. Verificare la configurazione multipath in Device Manager in Unità disco.

  11. Inizializza e formatta i volumi

    1. Avviare Gestione computer (compmgmt.msc e selezionare Gestione disco.

    2. Inizializza, partiziona e formatta ogni disco con unità di allocazione da 64K:

      Format-Volume -DriveLetter <DriveLetter> -FileSystem NTFS -NewFileSystemLabel <Label> -AllocationUnitSize 65536 -Confirm:$false
    3. Assegna lettere di unità (ad esempio, D: per Data, E: per Log, F: per Backup, G: per Temp).

    4. 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.

Passaggi
  1. 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.

    1. In ogni istanza SQL, aprire services.msc.

    2. Aggiorna Accedi come a domain\sqlsvc per i servizi SQL Server e SQL Server Agent.

    3. 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.

  2. Crea gli accessi agli account di dominio con le autorizzazioni richieste.

    Nota Sostituisci CVSDEMO con 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
  3. 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
  4. Sposta i database di sistema (model, msdb, tempdb e master) dall'unità del sistema operativo ai volumi NetApp per prestazioni e gestione migliori.

    1. 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'));
    2. 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
    3. Arresta SQL Server, sposta manualmente i file dalla vecchia posizione ai nuovi percorsi, quindi riavvia SQL Server.

    4. 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
    5. Riavviare SQL Server affinché le modifiche abbiano effetto:

      Restart-Service -Name "MSSQLSERVER" -Force
  5. Spostare il database master

    1. Aprire SQL Server Configuration Manager.

    2. Passare a SQL Server Services, fare clic con il pulsante destro del mouse su SQL Server (MSSQLSERVER) e selezionare Properties.

    3. Fare clic sulla scheda Startup Parameters.

    4. In Parametri esistenti, individua i parametri che iniziano con -d, -e e -l.

    5. Rimuovi i vecchi parametri e aggiungi quelli nuovi:

      -dD:\MSSQL\Data\master.mdf
      -lE:\MSSQL\Log\mastlog.ldf
      -eE:\MSSQL\Log\ERRORLOG
      Scopri iSCSI target portals
    6. Fare clic su OK.

  6. Arresta il servizio SQL Server.

  7. Spostare manualmente master.mdf e mastlog.ldf dalla vecchia posizione ai nuovi percorsi.

  8. Se hai aggiornato il percorso del registro degli errori, sposta il ERRORLOG file.

  9. Avvia il servizio SQL Server.

    SQL Server Configuration Manager - Parametri di avvio

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à.

Passaggi
  1. 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).

  2. 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=5022

    Per requisiti dettagliati del firewall, fare riferimento a "Requisiti del servizio Windows Server e delle porte di rete".

  3. 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.

Passaggi
  1. Eseguire cluadmin.msc o aprire Failover Cluster Manager da Server Manager.

    Failover Cluster Manager
  2. Seleziona Create Cluster.

  3. Aggiungi entrambi i nodi SQL (sqlnode1, sqlnode2).

  4. Esegui i test di convalida e assicurati che tutti i controlli vengano superati. Rivedi e correggi eventuali avvisi prima di procedere.

  5. Fornire un nome del cluster (ad esempio, sqlcluwest1).

  6. Completa la creazione del cluster.

    Creazione del failover 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.

Passaggi
  1. Connetti alla VM del server file share witness.

  2. In Server Manager, seleziona Strumenti > Gestione computer.

  3. Seleziona Cartelle condivise, fai clic con il pulsante destro del mouse su Condivisioni e seleziona Nuova condivisione.

    Crea una nuova condivisione per il testimone del quorum del cluster
  4. Utilizzare la Creazione guidata cartella condivisa per creare una condivisione \\servername\share.

  5. Nella pagina Percorso cartella, seleziona Sfoglia.

  6. Individua o crea un percorso per la cartella condivisa e quindi seleziona Avanti.

  7. Nella pagina Nome, descrizione e impostazioni, verifica il nome e il percorso della condivisione e poi seleziona Avanti.

  8. Nella pagina Autorizzazioni cartella condivisa, seleziona Personalizza autorizzazioni e fai clic su Personalizzato

  9. 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.

  10. Fare clic su OK per salvare le autorizzazioni.

  11. 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.

Passaggi
  1. In Failover Cluster Manager, fare clic con il pulsante destro del mouse sul cluster e selezionare More Actions > Configure Cluster Quorum Settings.

    Menu Configura impostazioni quorum del cluster
  2. Nella procedura guidata Configure Cluster Quorum, fare clic su Avanti.

  3. Nella pagina Seleziona configurazione quorum, scegli Seleziona il testimone del quorum e fai clic su Avanti.

  4. Nella pagina Select Quorum Witness, seleziona Configure a file share witness.

  5. Nella pagina Configure File Share Witness, seleziona Configure a file share witness.

  6. Inserisci il percorso della condivisione che hai creato (ad esempio, \\servername\share) e fai clic su Avanti.

  7. Verifica le impostazioni nella pagina di conferma e fai clic su Avanti.

  8. Fare clic su Fine.

Le risorse core del cluster sono ora configurate con un file share witness.

Quorum del cluster configurato con file share witness

Abilita Always On availability groups

Abilita i gruppi di disponibilità Always On su entrambe le VM di SQL Server:

Passaggi
  1. Dal menu Start, apri SQL Server Configuration Manager.

  2. Nella struttura del browser, selezionare SQL Server Services.

  3. Fare clic con il pulsante destro del mouse su SQL Server (MSSQLSERVER) e selezionare Properties.

  4. Seleziona la scheda Always On High Availability.

  5. Seleziona Enable Always On availability groups.

  6. Fare clic su Applica, quindi riavviare il servizio SQL Server quando richiesto.

    Abilita Always On High Availability
  7. 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.

Passaggi
  1. Connettersi alla prima VM di SQL Server con un account di dominio che è membro del ruolo del server sysadmin.

  2. Apri SQL Server Management Studio e connettiti alla prima istanza di SQL Server.

  3. In Object Explorer, fare clic con il pulsante destro del mouse su Databases e selezionare New Database.

  4. Immettere un nome per il database (ad esempio, MyDB1) e fare clic su OK.

  5. 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.

  1. 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;
  2. 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;
  3. 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
  4. Crea il gruppo di disponibilità utilizzando la procedura guidata Availability Group.

    Creazione guidata availability group
    Aggiungi database e repliche al gruppo di disponibilità
    Importante Assicurarsi che la porta firewall 5022 sia consentita su entrambi i nodi SQL.
    Sincronizzazione del gruppo di disponibilità
Gruppo di disponibilità creato correttamente

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à:

Passaggi
  1. In Failover Cluster Manager, individuare la risorsa DNN.

  2. Fare clic con il pulsante destro del mouse sulla risorsa DNN e selezionare Properties.

    Proprietà delle risorse DNN
  3. Deseleziona la casella di controllo per qualsiasi nodo che non partecipa al gruppo di disponibilità.

    Configura i possibili proprietari DNN
  4. 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:

Esempio di stringa di connessione
Server=AOAGDNN,1433;Database=MyDB1;MultiSubnetFailover=True;
Nota 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.

  1. Esegui il comando seguente su qualsiasi replica per verificare la configurazione del gruppo di disponibilità.

    Entrambe le repliche dovrebbero mostrare SYNCHRONOUS_COMMIT per availability mode e AUTOMATIC per 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');
    Test failover
  2. Eseguire il seguente comando sul nodo secondario per avviare il failover:

    ALTER AVAILABILITY GROUP sqlagwest1 FAILOVER;
    GO
  3. 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.

    Dashboard Always On High Availability che mostra il failover riuscito

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: