使用預先安裝 SQL Server 2022 的 SQL Server 進階映像檔

如要針對容錯移轉情境提供關鍵票並達成仲裁,請部署第三部 VM 做為檔案共用見證

  1. 返回現有的 Cloud Shell 工作階段。
  2. 為叢集節點建立 specialize 指令碼。這個指令碼會安裝必要的 Windows 功能,並為容錯移轉叢集和 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. 建立 VM 執行個體。在做為叢集節點的兩個 VM 上,附加額外的資料磁碟,並將中繼資料鍵 enable-wsfc 設為 true,啟用 Windows Server 容錯移轉叢集。

    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. 如要將 3 個 VM 執行個體加入 Active Directory,請針對每個 VM 執行個體執行下列步驟。

    1. 查看 VM 的序列埠輸出內容,監控初始化程序。

      gcloud compute instances tail-serial-port-output NAME
      

      NAME 替換為 VM 執行個體名稱。

      等待約 3 分鐘,直到看到輸出內容 Instance setup finished,然後按下 Ctrl+C。此時,VM 執行個體已可供使用。

    2. 建立 VM 執行個體的使用者名稱和密碼

    3. 使用遠端桌面連線至 VM,並使用上一步建立的使用者名稱和密碼登入。

    4. 以滑鼠右鍵按一下「開始」按鈕 (或按 Win+X 鍵),然後按一下「Windows PowerShell (系統管理員)」

    1. 按一下「是」,確認提升權限提示。
    2. 將電腦加入 Active Directory 網域,然後重新啟動。

      Add-Computer -Domain DOMAIN -Restart
      

      DOMAIN 換成 Active Directory 網域的 DNS 名稱。

    3. 輸入有權將 VM 加入網域的帳戶憑證。等待約 1 分鐘,讓裝置完成重新啟動。