Sie verwenden ein SQL Server-Premium-Image, auf dem SQL Server 2022 vorinstalliert ist.

Für eine Tiebreak-Abstimmung und zur Erfüllung eines Quorums für das Failover-Szenario stellen Sie eine dritte VM bereit, die als Dateifreigabezeuge verwendet wird.

  1. Kehren Sie zu Ihrer bestehenden Cloud Shell-Sitzung zurück.
  2. Erstellen Sie ein Spezialisierungsskript für die Clusterknoten. Das Skript installiert das erforderliche Windows-Feature und erstellt Firewallregeln für den Failover-Cluster und SQL Server.

    cat << "EOF" > specialize-node.ps1
    
    $ErrorActionPreference = "stop"
    
    # Install required Windows features
    Install-WindowsFeature Failover-Clustering -IncludeManagementTools
    Install-WindowsFeature RSAT-AD-PowerShell
    
    # Open firewall for availability group listener
    netsh advfirewall firewall add rule name="Allow SQL Server Listener health check" dir=in action=allow protocol=TCP localport=59997
    
    # Open firewall for the Failover Cluster
    netsh advfirewall firewall add rule name="Allow SQL Server health check" dir=in action=allow protocol=TCP localport=59998
    
    # 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
    
    # Format data disk
    Get-Disk |
     Where partitionstyle -eq 'RAW' |
     Initialize-Disk -PartitionStyle MBR -PassThru |
     New-Partition -AssignDriveLetter -UseMaximumSize |
     Format-Volume -FileSystem NTFS -NewFileSystemLabel 'Data' -Confirm:$false
    
    # Create data and log folders for SQL Server
    md d:\Data
    md d:\Logs
    EOF
    
  3. Erstellen Sie die VM-Instanzen. Fügen Sie auf den beiden VMs, die als Clusterknoten dienen, ein zusätzliches Datenlaufwerk hinzu und aktivieren Sie das Windows Server Failover Clustering. Setzen Sie dazu den Metadatenschlüssel enable-wsfc auf true.

    REGION=$(gcloud config get-value compute/region)
    ZONE1=$(gcloud config get-value compute/zone)
    ZONE2=$(gcloud config get-value compute/zone)
    ZONE3=$(gcloud config get-value compute/zone)
    PD_SIZE=200
    MACHINE_TYPE=n2-standard-8
    
    gcloud compute instances create node-1 \
      --zone $ZONE1 \
      --machine-type $MACHINE_TYPE \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --tags wsfc,wsfc-node \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --boot-disk-device-name "node-1" \
      --create-disk=name=node-1-datadisk,size=$PD_SIZE,type=pd-ssd,auto-delete=no \
      --metadata enable-wsfc=true \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1
    
    gcloud compute instances create node-2 \
      --zone $ZONE2 \
      --machine-type $MACHINE_TYPE \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --tags wsfc,wsfc-node \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --boot-disk-device-name "node-2" \
      --create-disk=name=node-2-datadisk,size=$PD_SIZE,type=pd-ssd,auto-delete=no \
      --metadata enable-wsfc=true \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1
    
    gcloud compute instances create "witness" \
      --zone $ZONE3 \
      --machine-type n2-standard-2 \
      --subnet $SUBNET_NAME \
      --image-family=windows-2022 \
      --image-project=windows-cloud \
      --tags wsfc \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --metadata sysprep-specialize-script-ps1="add-windowsfeature FS-FileServer"
    
  4. Führen Sie für jede der drei VM-Instanzen folgende Schritte aus, um sie jeweils mit Active Directory zu verknüpfen.

    1. Überwachen Sie den Initialisierungsprozess der VM. Rufen Sie dazu die Ausgabe des seriellen Ports auf.

      gcloud compute instances tail-serial-port-output NAME
      

      Ersetzen Sie NAME durch den Namen der VM-Instanz.

      Warten Sie etwa drei Minuten, bis die Ausgabe Instance setup finished angezeigt wird, und drücken Sie dann STRG + C. Jetzt kann die VM-Instanz verwendet werden.

    2. Erstellen Sie einen Nutzernamen und ein Passwort für die VM-Instanz.

    3. Stellen Sie mithilfe von Remote Desktop eine Verbindung zur VM her und melden Sie sich mit dem Nutzernamen und dem Passwort an, den bzw. das Sie im vorherigen Schritt erstellt haben.

    4. Klicken Sie mit der rechten Maustaste auf Start (oder drücken Sie Win + X) und klicken Sie anschließend auf Windows PowerShell (Administrator).

    1. Bestätigen Sie die Eingabeaufforderung für erhöhte Rechte durch Klicken auf Ja.
    2. Verbinden Sie den Computer mit Ihrer Active Directory-Domain und starten Sie ihn neu.

      Add-Computer -Domain DOMAIN -Restart
      

      Ersetzen Sie DOMAIN durch den DNS-Namen Ihrer Active Directory-Domain.

    3. Geben Sie die Anmeldedaten eines Kontos ein, das berechtigt ist, eine VM mit der Domain zu verbinden. Warten Sie etwa eine Minute, bis der Neustart abgeschlossen ist.