Skip to main content
NetApp database solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Konfigurieren von SQL Server Always On-Verfügbarkeitsgruppen mit Google Cloud NetApp Volumes

Beitragende netapp-jsnyder
Änderungen vorschlagen

Konfigurieren Sie SQL Server Always On-Verfügbarkeitsgruppen auf Google Compute Engine-Instanzen innerhalb eines einzelnen Subnetzes mithilfe von Google Cloud NetApp Volumes iSCSI-Blockspeicher. Erfahren Sie, wie Sie Compute-Instanzen einrichten, NetApp Volumes konfigurieren, Failover-Clustering erstellen und Verfügbarkeitsgruppen für Hochverfügbarkeit und Notfallwiederherstellung bereitstellen.

Voraussetzungen

Bevor Sie fortfahren, führen Sie die Konfigurationsvoraussetzungsschritte in der Google Cloud-Dokumentation aus:

Bevor Sie beginnen

Stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllt haben:

  • Google Cloud project mit Administratorrechten für Compute, Netzwerk, IAM und Storage

  • VPC-Netzwerk mit Subnetz für eine Region-Setup

  • Active Directory und DNS-Einrichtung in einer Region verfügbar

  • Firewall-Regeln so konfiguriert, dass die erforderlichen Ports zugelassen werden

  • Kenntnisse im Umgang mit SQL Server Always On availability groups und Failover Clustering

Hinweis Neue Google Cloud-Nutzer könnten für "kostenlose Testguthaben" berechtigt sein.

Ziele

Die Konfiguration der SQL Server Always On availability group umfasst die folgenden übergeordneten Aufgaben:

  • Compute Engine-Instanzen und NetApp-Speichervolumes einrichten

  • Richten Sie SQL Server auf beiden Knoten ein

  • Windows Server Failover Cluster einrichten

  • Cluster-Quorum mit Dateifreigabe-Witness einrichten

  • SQL Server-Verfügbarkeitsgruppen einrichten

  • Distributed Network Name (DNN) für den Listener-Zugriff einrichten

Kostenüberlegungen

Dieses Tutorial verwendet kostenpflichtige Komponenten von Google Cloud, einschließlich "Compute Engine-Instanzen" und "Google Cloud NetApp Volumes" Speicher.

Verwenden Sie das "Preisrechner" , um einen Kostenvoranschlag basierend auf Ihren Rechen- und Speicheranforderungen zu erstellen. Die Beispielkonfiguration verwendet N4-SKU-Compute-Instanzen und NetApp Flex-Service-Level-Speicher für die Einrichtung der SQL Server Always On Availability Group.

Domänenkonten konfigurieren

Konfigurieren Sie zwei Konten in Active Directory: ein Installationskonto (Ihr Admin-Konto) und ein Dienstkonto für beide SQL Server VMs.

Verwenden Sie beispielsweise die Werte in der folgenden Tabelle für die Konten:

Hinweis In diesem Beispiel wird cvsdemo als Domainname verwendet. Ersetzen Sie cvsdemo im gesamten Verfahren durch Ihren tatsächlichen Domainnamen.
Konto VM Vollständiger Domainname Beschreibung

<your account>

Beide (sqlnode1 und sqlnode2)

cvsdemo\DomainAdmin

Administratorkonto zum Anmelden an einer der VMs und zum Konfigurieren des Clusters und der Verfügbarkeitsgruppe

sqlsvc

Beide (sqlnode1 und sqlnode2)

cvsdemo\sqlsvc

Dienstkonto für SQL Server und SQL Server Agent auf beiden SQL Server-VMs

Compute Engine-VMs für SQL Server erstellen

Erstellen Sie zwei Google Compute Engine VM-Instanzen mit vorinstalliertem SQL Server 2022 Enterprise auf Windows Server 2025, um die Verfügbarkeitsgruppen-Replikate zu hosten.

Schritte
  1. Gehen Sie in der Google Cloud Console zur "Instanz erstellen" Seite.

    Weitere Informationen finden Sie in der "Google Cloud-Dokumentation".

  2. Für Name geben Sie sqlnode1 ein.

  3. Im Abschnitt Machine configuration:

    1. Allgemeiner Zweck auswählen

    2. Wählen Sie in der Liste Series die Option N4 aus.

    3. Wählen Sie in der Liste Maschinentyp die Option n4-highmem-8 (8 vCPU, 64 GB memory) aus.

  4. Wählen Sie die Region aus, in der Sie Ihre VPC erstellt haben (zum Beispiel region=us-west1, zone=us-west1-a).

  5. Klicken Sie im Abschnitt Boot disk auf Change:

    1. Auf der Registerkarte Public images wählen Sie in der Liste Operating system die Option SQL Server on Windows Server aus.

    2. Wählen Sie in der Liste Version SQL Server 2022 Enterprise on Windows Server 2025 Datacenter aus.

    3. Wählen Sie in der Liste Boot disk type die Option Hyperdisk Balanced.

    4. Geben Sie im Feld Größe (GB) 50 GB ein.

    5. Klicken Sie auf Select, um die Boot-Disk-Konfiguration zu speichern.

  6. Im Abschnitt Networking bearbeiten Sie die Netzwerkschnittstelle, um die richtige VPC und das richtige Subnetz auszuwählen. Wenn Sie nur eine VPC haben, wird diese standardmäßig ausgewählt.

    1. Wählen Sie auf der Netzwerkkarte gVNIC aus.

    2. Für "Netzwerkdienstebene" wählen Sie Premium für unternehmenskritische Workloads oder Standard zur Kostenoptimierung.

  7. Klicken Sie auf Create, um die VM zu erstellen.

  8. Wiederholen Sie diese Schritte, um sqlnode2 zu erstellen.

Server der Domäne hinzufügen

Nachdem die VMs erstellt wurden, fügen Sie sie der Active Directory Domain hinzu und installieren Sie die erforderlichen Windows-Funktionen für Failover-Clustering und iSCSI-Konnektivität.

Schritte
  1. Stellen Sie mit dem lokalen Administratorkonto eine Remoteverbindung zur virtuellen Maschine her.

  2. Wählen Sie im Server-Manager Lokaler Server aus.

  3. Wählen Sie den Link WORKGROUP aus.

  4. Im Abschnitt Computer Name wählen Sie Change.

  5. Wählen Sie das Kontrollkästchen Domain aus und geben Sie Ihre Domain (for example, cvsdemo.internal) in das Textfeld ein.

  6. Klicken Sie auf OK.

  7. Im Dialogfeld Windows-Sicherheit geben Sie die Anmeldeinformationen für das Standarddomänenadministratorkonto an (zum Beispiel cvsdemo\DomainAdmin).

  8. Wenn die Meldung „Welcome to the cvsdemo.internal domain“ angezeigt wird, klicken Sie auf OK.

  9. Klicken Sie auf Schließen und wählen Sie dann Jetzt neu starten im Dialog aus.

  10. Nach dem Neustart des Servers fügen Sie das sqlsvc Konto zur Gruppe „Administratoren“ hinzu.

Hinweis Ihre SQL-Instanz wird unter Verwendung des sqlsvc account ausgeführt, das für die Einrichtung von Clustering und Failover erforderlich ist.

Installieren Sie die erforderlichen Windows-Features

Installieren Sie Failover Clustering und MPIO auf beiden SQL Server VMs entweder mit Server-Manager oder PowerShell.

Option 1: Verwendung von Server-Manager
  1. Im Server-Manager wählen Sie Verwalten > Rollen und Features hinzufügen.

  2. Wählen Sie Role-based or feature-based installation und klicken Sie auf Weiter.

  3. Wählen Sie Ihren Server aus und klicken Sie auf Next.

  4. Wählen Sie auf der Seite Features die Optionen Failover Clustering und Multipath I/O aus.

  5. Klicken Sie auf Funktionen hinzufügen, wenn Sie dazu aufgefordert werden, Verwaltungstools einzubeziehen.

  6. Schließen Sie den Assistenten ab und starten Sie das System neu, wenn Sie dazu aufgefordert werden.

Option 2: Verwendung von PowerShell

Führen Sie PowerShell als Administrator aus und führen Sie die folgenden Befehle aus:

# 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

iSCSI-Initiatornamen abrufen

Ermitteln Sie den iSCSI-qualifizierten Namen (IQN) für jede SQL Server-VM, die in die Hostgruppe aufgenommen werden soll, entweder über die iSCSI-Initiator-GUI oder PowerShell.

Option 1: Verwendung des iSCSI-Initiator
  1. Drücken Sie Win+R oder verwenden Sie die Windows-Suchleiste, um iscsicpl zu öffnen.

  2. Wechseln Sie im Dialogfeld „iSCSI Initiator Properties“ zur Registerkarte Configuration.

  3. Kopieren Sie den Wert Initiator Name und fügen Sie ihn in die Hostgruppe ein.

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

Option 2: Verwendung von PowerShell

Führen Sie den folgenden Befehl in PowerShell aus:

Get-InitiatorPort | Select-Object NodeAddress

Erstellen Sie NetApp Block-Speichervolumes

Erstellen Sie iSCSI-Blockspeichervolumes mit Google Cloud NetApp Volumes, um hochperformanten, gemeinsam genutzten Speicher für SQL Server-Datenbanken bereitzustellen. Dieser Prozess umfasst die Erstellung einer Hostgruppe, eines Speicherpools und einzelner Volumes für Daten, Protokolle, Temp und Backup.

Erstellen Sie die Hostgruppe

Schritte
  1. Erstellen Sie eine Hostgruppe, die die iSCSI-Initiatoren von beiden SQL-Knoten enthält.

    gcloud beta netapp host-groups create HOST_GROUP_NAME \
      --location=LOCATION \
      --type=ISCSI_INITIATOR \
      --hosts=HOSTS \
      --os-type=OS_TYPE \
      --description=DESCRIPTION

    Weitere Einzelheiten finden Sie in der "Erstellen Sie eine Hostgruppe" Dokumentation.

  2. Ersetzen Sie die folgenden Werte:

    • HOST_GROUP_NAME: Name der Hostgruppe (zum Beispiel, demosql)

    • LOCATION: Region (zum Beispiel, us-west1)

    • HOSTS: Durch Kommas getrennte Liste von IQNs sowohl von sqlnode1 als auch von sqlnode2

      Beispiel: iqn.1991-05.com.microsoft:sqlnode1.cvsdemo.internal,iqn.1991-05.com.microsoft:sqlnode2.cvsdemo.internal

    • OS_TYPE: Betriebssystemtyp (zum Beispiel, WINDOWS)

    • DESCRIPTION: Optionale Beschreibung für die Gastgebergruppe

      Speicherpoolkonfiguration

Speicherpool erstellen

Schritte
  1. Erstellen Sie einen Speicherpool mit angemessener Kapazität und Leistung.

    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

    Weitere Einzelheiten finden Sie in der "Erstellen eines Speicherpools" Dokumentation.

  2. Ersetzen Sie die folgenden Werte:

    • POOL_NAME: Name des Pools (zum Beispiel, sqltest)

    • PROJECT_ID: Ihr Google Cloud-Projektname

    • LOCATION: Gleicher Standort wie Ihre Compute-Instanzen (zum Beispiel us-west1-b)

    • CAPACITY: Poolkapazität in GiB (zum Beispiel, 1024)

    • SERVICE_LEVEL: Servicelevel (zum Beispiel, Flex)

    • VPC_NAME: Ihr VPC-Netzwerkname

    • PSA_RANGE: Private Services Access-Bereich (zum Beispiel xx.xxx.xxx.0/20)

    • THROUGHPUT: Optionaler Durchsatz in MiBps (zum Beispiel 64)

    • IOPS: Optionale IOPS (zum Beispiel, 1024)

Volumes erstellen

  1. Erstellen Sie Volumes für Daten, Protokolle, temporäre Dateien und Backups. Führen Sie den folgenden Befehl für jeden Volume-Typ aus:

    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

    Weitere Einzelheiten finden Sie in der "Erstellen eines Volumes" documentation.

  2. Ersetzen Sie die folgenden Werte:

    • VOLUME_NAME: Eindeutiger Name für jedes Volume (zum Beispiel, node1data, node1log, node1temp, node1backup)

    • PROJECT_ID: Ihr Google Cloud-Projektname

    • LOCATION: Gleicher Speicherort wie der Speicherpool (zum Beispiel, us-west1-b)

    • POOL_NAME: Name des Speicherpools (zum Beispiel, sqltest)

    • CAPACITY: Speicherkapazität in GiB (zum Beispiel 200)

    • HOST_GROUP_PATH: Vollständiger Ressourcenpfad zur Hostgruppe (zum Beispiel projects/PROJECT_ID/locations/us-west1/hostGroups/demosql)

Tipp Mehrere Hostgruppen können mit einem #-Zeichen getrennt angegeben werden.
Hinweis Wiederholen Sie diesen Schritt für jeden Volume-Typ: data, log, temp und backup.

iSCSI-Volumes einbinden

Mounten Sie die nicht gemeinsam genutzten iSCSI-Volumes auf jeder SQL-Instanz:

Schritte
  1. Navigieren Sie in der Google Cloud Console zu NetApp volumes > Volumes.

  2. Wählen Sie das für die SQL-Instanz erstellte Volume aus (zum Beispiel node1data).

  3. Kopieren Sie beide IP-Adressen für das iSCSI-Ziel (zum Beispiel 10.165.128.216 und 10.165.128.217).

  4. Führen Sie auf sqlnode1 iscsicpl aus oder verwenden Sie PowerShell:

  5. Klicken Sie auf die Registerkarte Discover und dann auf Discover Portal.

  6. Fügen Sie jede erhaltene IP-Adresse hinzu; lassen Sie den Standardport 3260.

    "10.165.128.216","10.165.128.217" | % { New-IscsiTargetPortal -TargetPortalAddress $_ }
    iSCSI-Zielportale entdecken
  7. Aktivieren Sie im Dialogfeld Mit Ziel verbinden die Option Mehrwegezugriff aktivieren, wenn Sie Multipathing verwenden.

  8. Klicken Sie auf Erweitert und wählen Sie die Zielportal-IP aus der Dropdown-Liste aus.

  9. Klicken Sie auf OK, um die Verbindung herzustellen.

  10. MPIO für iSCSI-Geräte konfigurieren

    1. Öffnen Sie MPIO über die Systemsteuerung oder den Server-Manager.

    2. Klicken Sie auf die Registerkarte Discover Multi-Paths.

    3. Aktivieren Sie Add support for iSCSI devices und klicken Sie auf Add.

    4. Starten Sie neu, wenn Sie dazu aufgefordert werden.

    5. Überprüfen Sie die Multipath-Konfiguration im Geräte-Manager unter Disk drives.

  11. Volumes initialisieren und formatieren

    1. Starten Sie die Computerverwaltung (compmgmt.msc und wählen Sie Datenträgerverwaltung.

    2. Initialisieren, partitionieren und formatieren Sie jede Festplatte mit 64K Zuordnungseinheit:

      Format-Volume -DriveLetter <DriveLetter> -FileSystem NTFS -NewFileSystemLabel <Label> -AllocationUnitSize 65536 -Confirm:$false
    3. Weisen Sie Laufwerksbuchstaben zu (zum Beispiel D: für Data, E: für Log, F: für Backup, G: für Temp).

    4. Erstellen Sie die Verzeichnisstruktur für SQL Server:

      $paths = "D:\MSSQL\DATA","E:\MSSQL\Log","F:\MSSQL\Backup","G:\MSSQL\Temp"
      $paths | % { New-Item -ItemType Directory -Path $_ -Force }

SQL Server konfigurieren

Konfigurieren Sie SQL Server auf beiden Knoten so, dass das Domänendienstkonto verwendet wird, aktualisieren Sie die Standardpfade, um NetApp Volumes zu verwenden, und verschieben Sie die Systemdatenbanken an die neuen Speicherorte.

Schritte
  1. Aktualisieren Sie die SQL Server- und SQL Server Agent-Dienste, damit sie unter dem Domänendienstkonto für die Cluster-Authentifizierung und Failover-Unterstützung ausgeführt werden.

    1. Öffnen Sie auf jeder SQL-Instanz services.msc.

    2. Aktualisieren Sie Anmelden als domain\sqlsvc für SQL Server- und SQL Server Agent-Dienste.

    3. Öffnen Sie SQL Server Management Studio (SSMS) und verbinden Sie sich mit Ihrem Domänenkonto.

      Falls die Verbindung fehlschlägt, starten Sie SSMS als <local computer>\Administrator. Stellen Sie sicher, dass das Administrator-Konto in Benutzer & Gruppen mit dem entsprechenden Passwort aktiviert ist.

  2. Erstellen Sie die Domänenkonto-Logins mit den erforderlichen Berechtigungen.

    Hinweis Ersetzen Sie CVSDEMO durch Ihren tatsächlichen Domänennamen in den folgenden SQL-Befehlen.
    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. Aktualisieren Sie die Standardpfade, um die NetApp Volumes anstelle des OS-Laufwerks zu verwenden:

    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. Verschieben Sie die Systemdatenbanken (model, msdb, tempdb und master) vom Betriebssystemlaufwerk auf die NetApp Volumes, um eine bessere Leistung und Verwaltung zu gewährleisten.

    1. Aktuelle Pfade überprüfen:

      -- Check current paths
      SELECT name, physical_name
      FROM sys.master_files
      WHERE database_id IN (DB_ID('model'), DB_ID('msdb'));
    2. Aktualisierung auf neue Standorte:

      -- 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. Stoppen Sie SQL Server, verschieben Sie die Dateien manuell vom alten Speicherort in die neuen Pfade, dann starten Sie SQL Server neu.

    4. Verschieben Sie die tempdb Datenbank

      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. Starten Sie SQL Server neu, damit die Änderungen wirksam werden:

      Restart-Service -Name "MSSQLSERVER" -Force
  5. Verschieben Sie die Master-Datenbank

    1. Öffnen Sie den SQL Server Configuration Manager.

    2. Navigieren Sie zu SQL Server Services, klicken Sie mit der rechten Maustaste auf SQL Server (MSSQLSERVER) und wählen Sie Properties.

    3. Klicken Sie auf die Registerkarte Startup Parameters.

    4. Suchen Sie unter Vorhandene Parameter die Parameter, die mit -d, -e und -l beginnen.

    5. Entfernen Sie die alten Parameter und fügen Sie neue hinzu:

      -dD:\MSSQL\Data\master.mdf
      -lE:\MSSQL\Log\mastlog.ldf
      -eE:\MSSQL\Log\ERRORLOG
      iSCSI-Zielportale entdecken
    6. Klicken Sie auf OK.

  6. SQL Server-Dienst anhalten.

  7. Verschieben Sie master.mdf und mastlog.ldf manuell vom alten Standort zu den neuen Pfaden.

  8. Wenn Sie den Pfad zum Fehlerprotokoll aktualisiert haben, verschieben Sie die ERRORLOG Datei ebenfalls.

  9. Starten Sie den SQL Server service.

    SQL Server Configuration Manager – Startparameter

Failovercluster einrichten

Richten Sie Windows Server Failover Clustering ein, um eine hohe Verfügbarkeit für SQL Server zu gewährleisten. Weitere Informationen finden Sie unter "Windows Server Failover Clustering-Dokumentation".

Firewall-Regeln konfigurieren

Öffnen Sie die erforderlichen Netzwerkports auf beiden SQL-Knoten, um die Clusterkommunikation, die SQL Server-Konnektivität und die Verfügbarkeitsgruppenreplikation zu ermöglichen.

Schritte
  1. Öffnen Sie die erforderlichen Ports auf beiden SQL-Knoten für die Clusterkommunikation.

    Erforderliche Ports sind: UDP 3343, TCP 3343, TCP 1433, TCP 5022, TCP 135, TCP 445, TCP 49152-65535 (dynamic RPC).

  2. Führen Sie den folgenden Checkpoint auf beiden Servern aus, um SQL Server und die Clusterkommunikation durch die Firewall zuzulassen.

    Passen Sie die Portnummern an, wenn Sie benutzerdefinierte Konfigurationen haben.

    # 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

    Detaillierte Informationen zu den Firewall-Anforderungen finden Sie unter "Anforderungen an Windows Server-Dienste und Netzwerkports".

  3. Führen Sie Validierungsprüfungen auf beiden Knoten durch, bevor Sie den Cluster erstellen:

    Test-Connection servername
    Resolve-DnsName servername
    Get-NetAdapterBinding -ComponentID ms_tcpip6

Erstellen Sie den Failover-Cluster

Erstellen Sie einen Windows Server Failover Cluster mit beiden SQL Server-Knoten, um Hochverfügbarkeit und automatische Failover-Funktionen zu ermöglichen.

Schritte
  1. Führen Sie cluadmin.msc aus oder öffnen Sie den Failover-Cluster-Manager über den Server-Manager.

    Failover Cluster Manager
  2. Wählen Sie Create Cluster.

  3. Fügen Sie beide SQL-Nodes (sqlnode1, sqlnode2) hinzu.

  4. Führen Sie Validierungstests durch und stellen Sie sicher, dass alle Prüfungen erfolgreich sind. Überprüfen und beheben Sie alle Warnungen, bevor Sie fortfahren.

  5. Geben Sie einen Clusternamen an (zum Beispiel sqlcluwest1).

  6. Schließen Sie die Clustererstellung ab.

    Erstellung eines Failover Cluster

Cluster-Quorum mit File Share Witness konfigurieren

Konfigurieren Sie einen Dateifreigabezeugen, um das Quorum in einer Zwei-Node-Cluster-Konfiguration aufrechtzuerhalten. Der Zeuge stellt eine zusätzliche Stimme bereit, um Split-Brain-Szenarien zu verhindern und die Clusterverfügbarkeit sicherzustellen.

Dateifreigabe erstellen

Erstellen Sie eine Dateifreigabe auf einer VM in einer anderen Zone oder Region, die über Netzwerkverbindung verfügt und sich innerhalb derselben Active Directory-Domäne befindet.

Schritte
  1. Stellen Sie eine Verbindung zur Datei-Freigabe-Zeugenserver-VM her.

  2. Im Server-Manager wählen Sie Tools > Computer Management.

  3. Wählen Sie Freigegebene Ordner, klicken Sie mit der rechten Maustaste auf Freigaben und wählen Sie Neue Freigabe.

    Neue Freigabe für Cluster-Quorum-Witness erstellen
  4. Verwenden Sie den Assistenten zum Erstellen eines freigegebenen Ordners, um eine Freigabe zu erstellen \\servername\share.

  5. Auf der Seite Ordnerpfad wählen Sie Durchsuchen aus.

  6. Suchen oder erstellen Sie einen Pfad für den freigegebenen Ordner und wählen Sie dann Weiter.

  7. Überprüfen Sie auf der Seite Name, Beschreibung und Einstellungen den Freigabenamen und den Pfad und wählen Sie dann Weiter.

  8. Wählen Sie auf der Seite Berechtigungen für freigegebene Ordner die Option Berechtigungen anpassen und klicken Sie auf Benutzerdefiniert

  9. Im Dialogfeld Berechtigungen anpassen wählen Sie Hinzufügen, um das Clusterkonto hinzuzufügen.

    Stellen Sie sicher, dass das Konto, das zum Erstellen des Clusters verwendet wird (sqlcluwest1$), über vollständige Kontrolle verfügt.

  10. Klicken Sie auf OK, um die Berechtigungen zu speichern.

  11. Wählen Sie auf der Seite Berechtigungen für freigegebene Ordner Fertig stellen und dann erneut Fertig stellen aus.

Quorum-Einstellungen konfigurieren

Konfigurieren Sie den Cluster so, dass er den Dateifreigabezeugen für die Quorumsabstimmung verwendet.

Schritte
  1. Klicken Sie im Failover Cluster Manager mit der rechten Maustaste auf den Cluster und wählen Sie Weitere Aktionen > Cluster-Quorumeinstellungen konfigurieren.

    Menü „Cluster-Quorum-Einstellungen konfigurieren“
  2. Klicken Sie im Assistenten zum Konfigurieren des Cluster-Quorums auf Next.

  3. Auf der Seite Select Quorum Configuration wählen Sie Select the quorum witness und klicken Sie auf Next.

  4. Wählen Sie auf der Seite Quorumzeuge auswählen die Option Dateifreigabezeugen konfigurieren.

  5. Wählen Sie auf der Seite Dateifreigabezeuge konfigurieren die Option Dateifreigabezeuge konfigurieren.

  6. Geben Sie den Pfad zu der von Ihnen erstellten Freigabe ein (zum Beispiel \\servername\share) und klicken Sie auf Weiter.

  7. Überprüfen Sie die Einstellungen auf der Bestätigungsseite und klicken Sie auf Next.

  8. Klicken Sie auf Finish.

Die Cluster-Kernressourcen sind jetzt mit einem Dateifreigabezeugen konfiguriert.

Cluster-Quorum mit Dateifreigabe-Zeugen konfiguriert

Always On-Verfügbarkeitsgruppen aktivieren

Aktivieren Sie Always On availability groups auf beiden SQL Server-VMs:

Schritte
  1. Öffnen Sie über das Startmenü den SQL Server Configuration Manager.

  2. Wählen Sie im Browserbaum SQL Server Services aus.

  3. Klicken Sie mit der rechten Maustaste auf SQL Server (MSSQLSERVER) und wählen Sie Properties.

  4. Wählen Sie die Registerkarte Always On High Availability aus.

  5. Aktivieren Sie Enable Always On availability groups.

  6. Klicken Sie auf Anwenden und starten Sie dann den SQL Server-Dienst neu, wenn Sie dazu aufgefordert werden.

    Always On Hochverfügbarkeit aktivieren
  7. Wiederholen Sie den Vorgang für die zweite SQL Server instance.

Erstellen Sie eine Datenbank auf der ersten SQL Server-Instanz

Erstellen Sie eine Datenbank auf der ersten SQL Server Instanz.

Schritte
  1. Stellen Sie eine Verbindung zur ersten SQL Server VM mit einem Domänenkonto her, das Mitglied der festen Server-Rolle ist.

  2. Öffnen Sie SQL Server Management Studio und stellen Sie eine Verbindung zur ersten SQL Server instance her.

  3. Klicken Sie im Object Explorer mit der rechten Maustaste auf Databases und wählen Sie New Database.

  4. Geben Sie einen Datenbanknamen (zum Beispiel MyDB1) ein und klicken Sie auf OK.

  5. Stellen Sie den Datenbank-Recovery-Modus auf Voll ein:

    ALTER DATABASE MyDB1 SET RECOVERY FULL;
    GO

Verfügbarkeitsgruppe erstellen und konfigurieren

Erstellen Sie eine Always On-Verfügbarkeitsgruppe mit synchronem Commit und automatischem Failover, um eine hohe Verfügbarkeit Ihrer SQL Server-Datenbanken zu gewährleisten.

  1. Erstellen Sie sowohl ein vollständiges Backup als auch ein Transaktionsprotokoll-Backup der Datenbank.

    -- 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. Kopieren Sie die Sicherungsdateien auf die zweite SQL Server-Instanz und stellen Sie sie mit NORECOVERY wieder her.

    -- 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. Erstellen Sie die Verfügbarkeitsgruppe mit synchronem Commit, automatischem Failover und lesbaren sekundären Replikaten:

    -- 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. Erstellen Sie die Verfügbarkeitsgruppe mithilfe des Availability Group Wizard.

    Assistent zum Erstellen von Verfügbarkeitsgruppen
    Datenbank und Replikate zur Verfügbarkeitsgruppe hinzufügen
    Wichtig Stellen Sie sicher, dass Firewall-Port 5022 auf beiden SQL-Knoten freigegeben ist.
    Verfügbarkeitsgruppensynchronisierung
Verfügbarkeitsgruppe erfolgreich erstellt

DNN-Listenerressource erstellen

Erstellen Sie einen Distributed Network Name (DNN)-Listener, um den Datenverkehr ohne Load Balancer an die entsprechende Clusterressource weiterzuleiten.

Verwenden Sie PowerShell, um die DNN-Ressource zu erstellen:

$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]"

Mögliche Besitzer konfigurieren

Standardmäßig bindet der Cluster den DNN-DNS-Namen an alle Knoten. Schließen Sie Knoten aus, die nicht an der Verfügbarkeitsgruppe teilnehmen:

Schritte
  1. Suchen Sie im Failover Cluster Manager die DNN-Ressource.

  2. Klicken Sie mit der rechten Maustaste auf die DNN resource und wählen Sie Properties.

    DNN-Ressourceneigenschaften
  3. Deaktivieren Sie das Kontrollkästchen für alle Knoten, die nicht an der Verfügbarkeitsgruppe teilnehmen.

    Konfigurieren Sie mögliche DNN-Besitzer
  4. Klicken Sie auf OK, um die Einstellungen zu speichern.

Anwendungsverbindungszeichenfolgen aktualisieren

Aktualisieren Sie die Verbindungszeichenfolgen, um den DNN-Listenernamen zu verwenden und den MultiSubnetFailover=True Parameter einzuschließen:

Beispiel für eine Verbindungszeichenfolge
Server=AOAGDNN,1433;Database=MyDB1;MultiSubnetFailover=True;
Hinweis Wenn Ihr Client den MultiSubnetFailover Parameter nicht unterstützt, ist er nicht mit DNN kompatibel.

Failover testen

Überprüfen Sie die Konfiguration der Verfügbarkeitsgruppe und testen Sie das Failover, um sicherzustellen, dass das automatische Failover korrekt zwischen den Nodes funktioniert.

  1. Führen Sie den folgenden Befehl auf einer beliebigen Replik aus, um die Konfiguration der Availability Group zu überprüfen.

    Beide Replikate sollten SYNCHRONOUS_COMMIT für den Verfügbarkeitsmodus und AUTOMATIC für den Failover-Modus anzeigen, was einen Datenverlust bei automatischem Failover ausschließt.

    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');
    Failover testen
  2. Führen Sie den folgenden Befehl auf dem sekundären Knoten aus, um den Failover zu initiieren:

    ALTER AVAILABILITY GROUP sqlagwest1 FAILOVER;
    GO
  3. Prüfen Sie, ob das Verbindungsziel auf das neue primäre Ziel umgeschaltet wurde:

    --
    SELECT @@SERVERNAME AS NowPrimary;

    Erweitern Sie in SSMS den Knoten der Verfügbarkeitsgruppe, klicken Sie mit der rechten Maustaste auf Always On High Availability und wählen Sie Show Dashboard.

    Das Dashboard sollte beide Knoten mit gesundem Status anzeigen und das Failover bestätigen.

    Always On High Availability-Dashboard zeigt erfolgreiches Failover an

Ressourcen bereinigen

Nach Abschluss des Tutorials löschen Sie die erstellten Ressourcen, um zusätzliche Kosten zu vermeiden:

  • Compute Engine-Instanzen (sqlnode1, sqlnode2) löschen

  • Google Cloud NetApp Volumes löschen (Volumes, Storage-Pools, Host-Gruppen)

  • Löschen Sie VPC- und Netzwerkressourcen, wenn sie speziell für dieses Tutorial erstellt wurden

  • Löschen Sie den Dateifreigabe-Zeugenserver, falls zutreffend

Siehe "Google Cloud NetApp Volumes-Dokumentation" und "Google Compute Engine-Dokumentation" für detaillierte Schritte zum Löschen von Ressourcen.

Wo Sie weitere Informationen finden

Weitere Informationen zu SQL Server auf Google Cloud mit NetApp storage finden Sie in der folgenden Dokumentation: