設定 SQL Server 容錯移轉叢集執行個體

如果您需要在 Compute Engine 中讓 Microsoft SQL Server 具有高可用性和備援功能,可以在設定 Always On 容錯移轉叢集執行個體 (FCI) 時,納入「儲存空間直接存取」(S2D) 功能。

Always On FCI 可提供單一 Microsoft SQL Server 執行個體,這個執行個體會安裝在各個 Windows Server 容錯移轉叢集 (WSFC) 節點中。只有一個 WSFC 節點會有效託管 SQL 執行個體。如需進行容錯移轉,WSFC 服務會將執行個體資源的擁有權轉移至指定容錯移轉節點。

S2D 提供軟體式虛擬 SAN,其可使用 Compute Engine VM 資料磁碟儲存 SQL 資料庫。

本教學課程提供設定範例。在本教學課程中,您將在 Compute Engine 上,建立附帶 S2D 功能的 Always On SQL Server FCI。

目標

  • 透過 Windows 網域控制站設定 VPC 網路。
  • 建立兩個 Windows SQL Server VM 執行個體做為叢集節點。
  • 設定容錯移轉叢集,包括叢集儲存空間。
  • 設定內部負載平衡器,將流量導向有效節點。
  • 測試容錯移轉作業,驗證叢集是否運作正常。

費用

本教學課程使用的 Compute Engine 映像檔包含 Windows Server 授權。也就是說,如果您讓 VM 保持運作狀態,執行本教學課程的費用可能會十分可觀。因此,建議您不使用時就停止 VM。

請使用 Pricing Calculator 預估完成本教學課程需要的費用。

事前準備

  1. 登入您的 Google 帳戶。

    如果您沒有帳戶,請申請新帳戶

  2. 選取或建立 Google Cloud Platform 專案。

    前往「Manage resources」(管理資源) 頁面

  3. 請確認您已啟用 Google Cloud Platform 專案的計費功能。

    瞭解如何啟用計費功能

  4. 啟用Compute Engine API。

    啟用 API

  5. 啟動 Cloud Shell 執行個體;您可在當中執行本教學課程的所有 gcloud 指令。
    開啟 Cloud Shell
  6. 視需要查看您的 SSD 永久磁碟配額並要求提高配額。本教學課程需要 500 GB。

總覽

本設定範例包含下列元件和 IP 位址:

  • 自訂 VPC 網路:10.0.0.0/24
  • Active Directory 網域控制站:10.0.0.3
  • 兩個已連結 S2D 儲存空間的 WSFC 節點
    • node-1: 10.0.0.4
    • node-2: 10.0.0.5
  • Windows Server 容錯移轉叢集 (用於管理叢集):10.0.0.201
  • 內部負載平衡器和 SQL FCI 接聽程式 (用於 SQL 連線):10.0.0.200

負載平衡器會接聽要求,並根據健康狀態檢查結果,知道哪個 SQL Server 節點有效,然後將流量導向該節點。如果有效節點失敗,FCI 容錯移轉節點就會啟用。健康狀態檢查工具會接收健康狀態良好節點的信號,負載平衡器則會重新導向流量。此外,儲存在 S2D 磁碟區中的資料庫仍可持續使用。

顯示容錯移轉叢集中有兩個 Compute Engine VM 的架構圖

設定虛擬私人雲端網路

您可以使用現有網路進行本教學課程,但最佳做法是將系統隔離成不同的網路與子網路,並設定防火牆規則限制流量。

  1. 建立自訂模式 VPC 網路,這可讓您完全控管其子網路和 IP 範圍。

    gcloud compute networks create wsfcnet --subnet-mode custom
    
  2. 新增子網路 wsfc-subnet1,這個子網路會包含本教學課程中的所有 VM。

    gcloud compute networks subnets create wsfc-subnet1 \
        --network wsfcnet \
        --region us-central1 \
        --range 10.0.0.0/24
    
  3. 建立防火牆規則以允許這個網路中 VM 之間的內部流量。

    gcloud compute firewall-rules create allow-internal-ports \
        --network wsfcnet \
        --allow tcp:1-65535,udp:1-65535,icmp \
        --source-ranges 10.0.0.0/24
    
  4. 建立防火牆規則以允許通訊埠 3389 上的遠端桌面協定連入流量。請注意,這樣做會將 tcp:3389 開放給所有 IP 位址 (0.0.0.0/0);在實際工作環境中,您只會將存取權授予獲核准的 IP。

    gcloud compute firewall-rules create allow-rdp \
        --network wsfcnet \
        --allow tcp:3389 \
        --source-ranges 0.0.0.0/0
    

建立及設定 Windows 網域控制站

本教學課程需要使用網域名稱服務、Windows 容錯移轉叢集和儲存空間直接存取功能,這些功能皆需使用 Active Directory 網域。AD 網域控制站不一定要在相同的虛擬私人雲端中,但這樣做可以化繁為簡,有利本教學課程進行。

本教學課程中的網域為 gontoso.com,網域控制站 VM 名稱為 dc-windows (根據預設,Windows 電腦名稱與這個 VM 名稱 dc-windows 一致)。VM 則會在子網路的 10.0.0.3 建立。

  1. 建立要當做網域控制站使用的 VM。您可以指定您需要的任何機器類型和 Windows 伺服器,但針對這個範例,請使用下列參數。

    gcloud compute instances create "dc-windows" \
        --zone "us-central1-a" \
        --machine-type "n1-standard-2" \
        --subnet "wsfc-subnet1" \
        --private-network-ip "10.0.0.3" \
        --can-ip-forward \
        --image-family "windows-2016" \
        --image-project "windows-cloud" \
        --boot-disk-size "200" \
        --boot-disk-type "pd-standard" \
        --boot-disk-device-name "dc-windows"
    
  2. 產生密碼,這樣您就能使用本機帳戶連線至網域控制站 VM。請記下這組使用者名稱和密碼,以供日後使用。

  3. 使用遠端桌面協定以及您的本機帳戶使用者名稱與密碼,連線至網域控制站 VM。

  4. 在 VM 中,以管理員身分執行 PowerShell,藉此開啟已啟用進階權限的 PowerShell 提示。

  5. 設定管理員使用者。

    1. 執行以下指令,接著輸入一組密碼,之後您也將以同組密碼操作管理員帳戶。

      PS C:\> $Password = Read-Host -AsSecureString
      

      請記下您輸入的密碼。您將使用這組密碼登入管理員帳戶。

    2. 設定管理員帳戶密碼。

      PS C:\> Set-LocalUser -Name Administrator -Password $Password
      
    3. 啟用管理員帳戶。

      PS C:\> Enable-LocalUser -Name Administrator
      
  6. 設定 SQL Server 服務帳戶;您將使用這個帳戶做為 SQL 代理程式和 SQL 管理員帳戶。

    1. 在安全無虞的情況下,輸入要用於 SQL Server 服務帳戶的密碼。

      PS C:\> $Password = Read-Host -AsSecureString
      

      請記下您輸入的密碼。您將使用這組密碼登入 SQL Server 服務帳戶。

    2. 建立 SQL Server 服務帳戶,並設定帳戶的密碼。

      PS C:\> New-LocalUser -Name "service_account" -Description "SQL Agent and SQL Admin account."  -Password $Password
      
  7. 登出,然後使用遠端通訊協定搭配管理員帳戶與密碼,重新連線至網域控制站 VM。

  8. 在已啟用進階權限的 PowerShell 中設定下列變數,以用於設定 Active Directory 樹系。

    PS C:\> $DomainName = "gontoso.com";
    PS C:\> $DomainMode = "Win2012R2";
    PS C:\> $ForestMode = "Win2012R2";
    PS C:\> $DatabasePath = "C:\Windows\NTDS";
    PS C:\> $LogPath = "C:\Windows\NTDS";
    PS C:\> $SysvolPath = "C:\Windows\SYSVOL";
    
  9. 安裝 Active Directory 服務和工具。

    PS C:\> Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
    Success Restart Needed Exit Code      Feature Result
    ------- -------------- ---------      --------------
    True    No             Success        {Active Directory Domain Services, Group P...
    
    
  10. 安裝並設定 Active Directory 樹系。這項指令會提示您提供憑證;請使用您在先前步驟中建立的 Administrator 使用者名稱和密碼。

    PS C:\> Install-ADDSForest -CreateDnsDelegation:$false -DatabasePath $DatabasePath -LogPath $LogPath -SysvolPath $SysvolPath -DomainName $DomainName -DomainMode $DomainMode -ForestMode $ForestMode -InstallDNS:$true -NoRebootOnCompletion:$false -SafeModeAdministratorPassword ((Get-Credential).Password) -Force:$true;
    
    cmdlet Get-Credential at command pipeline position 1
    Supply values for the following parameters:
    Credential
    ...
    
    

    機器會重新啟動。

  11. VM 重新啟動後,請使用遠端桌面協定重新連線至 VM。請使用與您的原始憑證相符的本機帳戶憑證。

建立叢集的 VM 和資料磁碟

建立兩個包含額外資料磁碟的 SQL Server VM,其中一個 VM 做為有效 FCI 節點,另一個做為容錯移轉節點,額外磁碟則做為 S2D 磁碟區。

每個 SQL Server VM 都必須符合下列條件:

  • 在您先前定義的 wsfc-subnet1 子網路中建立。
  • 子網路範圍 10.0.0.0/24 中有私人 IP。
  • 已安裝 Windows Server 容錯移轉叢集功能。
  • 已啟用 Compute Engine WSFC 代理程式,這個程式可監控容錯移轉叢集中的有效節點。
  1. 透過 Cloud Shell 建立兩個包含額外資料磁碟的 SQL Server VM。這些磁碟會做為 S2D 容量和快取磁碟區使用。

    gcloud compute instances create "node-1" \
        --zone "us-central1-f" \
        --machine-type "n1-highmem-4" \
        --subnet "wsfc-subnet1" \
        --private-network-ip "10.0.0.4" \
        --can-ip-forward \
        --image-family "sql-ent-2016-win-2016" \
        --image-project "windows-sql-cloud" \
        --boot-disk-size "50" \
        --boot-disk-type "pd-ssd" \
        --boot-disk-device-name "node-1" \
        --create-disk=name=node-1-datadisk-1,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-1-datadisk-2,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-1-datadisk-3,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-1-datadisk-4,size=50,type=pd-ssd,auto-delete=no \
        --metadata enable-wsfc=true,sysprep-specialize-script-ps1="Install-WindowsFeature Failover-Clustering -IncludeManagementTools;"
    
    gcloud compute instances create "node-2" \
        --zone "us-central1-a" \
        --machine-type "n1-highmem-4" \
        --subnet "wsfc-subnet1" \
        --private-network-ip "10.0.0.5" \
        --can-ip-forward \
        --image-family "sql-ent-2016-win-2016" \
        --image-project "windows-sql-cloud" \
        --boot-disk-size "50" \
        --boot-disk-type "pd-ssd" \
        --boot-disk-device-name "node-2" \
        --create-disk=name=node-2-datadisk-1,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-2-datadisk-2,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-2-datadisk-3,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-2-datadisk-4,size=50,type=pd-ssd,auto-delete=no \
        --metadata enable-wsfc=true,sysprep-specialize-script-ps1="Install-WindowsFeature Failover-Clustering -IncludeManagementTools;"
      
  2. 視需要使用遠端桌面協定連線至各個節點,並透過已啟用進階權限的 PowerShell,驗證容錯移轉叢集已啟用。

    PS C:> Get-WindowsFeature Failover-Clustering
    Display Name                                            Name                       Install State


    [X] Failover Clustering Failover-Clustering Installed

設定叢集 VM 的網路

  1. 設定第一個節點。

    1. node-1 產生密碼。請記下這組使用者名稱和密碼,以供日後使用。

    2. 使用遠端桌面協定連線至 node-1

    3. 開啟已啟用進階權限的 PowerShell。

    4. 新增防火牆規則,為 Compute Engine WSFC 代理程式開放某個通訊埠。根據預設,Compute Engine WSFC 代理程式會在 tcp:59998 上接聽。您可以將其改為其他通訊埠,但這個通訊埠必須與您之後定義的健康狀態檢查工具通訊埠一致。健康狀態檢查程序會定期對每個叢集節點的代理程式執行連線偵測,以判斷其可用性。

      PS C:\> netsh advfirewall firewall add rule name="Open Compute Engine WSFC agent port for Health Check" dir=in action=allow protocol=TCP localport=59998
      
    5. 新增防火牆規則,為 SQL Server 執行個體開放某個通訊埠;SQL Server 執行個體通常是透過 tcp:1433 執行。

      PS C:\> netsh advfirewall firewall add rule name="Open SQL Server port" dir=in action=allow protocol=TCP localport=1433
      
    6. 將 DNS 設為網域控制站。

      PS C:\> netsh interface ip set dns Ethernet static 10.0.0.3
      
    7. 更新節點以使用靜態 IP 位址,並設定網路遮罩。

      PS C:\> netsh interface ip set address name=Ethernet static 10.0.0.4 255.255.0.0 10.0.0.1 1
      

      您會與 VM 中斷連線。請透過遠端桌面協定,使用您的本機使用者名稱和密碼重新連線。

    8. 將節點新增至您先前建立的 Active Directory 網域。

      PS C:\> Add-Computer -DomainName gontoso.com -Restart -Force -Credential gontoso.com\Administrator
      

      系統會提示您提供憑證。您已於先前的步驟中設定網域控制站 VM,請使用當時設定的管理員使用者名稱和密碼。

      機器會重新啟動。

  2. 設定第二個節點。

    1. node-2 產生密碼。請記下這組使用者名稱和密碼,以供日後使用。

    2. 使用遠端桌面協定連線至 node-2

    3. 開啟已啟用進階權限的 PowerShell。

    4. 新增防火牆規則,為 Compute Engine WSFC 代理程式開放某個通訊埠。這個通訊埠必須與您之後定義的健康狀態檢查工具通訊埠一致。

      PS C:\> netsh advfirewall firewall add rule name="Open Compute Engine WSFC agent port for Health Check" dir=in action=allow protocol=TCP localport=59998
      
    5. 新增防火牆規則,為 SQL Server 執行個體開放某個通訊埠;SQL Server 執行個體通常是透過 tcp:1433 執行。

      PS C:\> netsh advfirewall firewall add rule name="Open SQL Server port" dir=in action=allow protocol=TCP localport=1433
      
    6. 將 DNS 設為網域控制站。

      PS C:\> netsh interface ip set dns Ethernet static 10.0.0.3
      
    7. 更新節點以使用靜態 IP 位址,並設定網路遮罩。

      PS C:\> netsh interface ip set address name=Ethernet static 10.0.0.5 255.255.0.0 10.0.0.1 1
      

      您會與 VM 中斷連線。請透過遠端桌面協定,使用您的本機使用者名稱和密碼重新連線。

    8. 將節點新增至您先前建立的 Active Directory 網域。

      PS C:\> Add-Computer -DomainName gontoso.com -Restart -Force -Credential gontoso.com\Administrator
      

      系統會提示您提供憑證。您已於先前的步驟中設定網域控制站 VM,請使用當時設定的管理員使用者名稱和密碼。

      機器會重新啟動。

建立檔案共用見證

如要針對容錯移轉情境提供關鍵票並達成仲裁,請建立檔案共用做為見證。為進行本教學課程,您必須在網域控制站 VM 中建立檔案共用見證。在實際工作環境中,您可以在其他地方建立見證。

  1. 使用遠端桌面協定和管理員帳戶連線至網域控制站 VM dc-windows

  2. 開啟已啟用進階權限的 PowerShell。

  3. 建立見證資料夾。

    PS C:\> New-Item "C:\QWitness" –type directory
    
  4. 共用資料夾。

    PS C:\> New-SmbShare -Name "QWitness" -Path "C:\QWitness" -Description "SQL File Share Witness" -FullAccess "gontoso.com\Administrator", "gontoso.com\node-1$", "gontoso.com\node-2$"
    
  5. 視需要使用遠端桌面協定,以 gontoso.com\Administrator 連線至任一節點,然後確認您可以存取共用目錄。

    PS C:\> dir \\\\dc-windows\QWitness
    

建立內部負載平衡器

內部負載平衡器可為 SQL Server 提供單一 IP。負載平衡器會接聽要求,並將網路流量轉送至有效叢集節點。而負載平衡器之所以能找出有效節點,是因為健康狀態檢查工具會檢查各個節點;節點若回應狀態良好,就是有效節點。如果有效節點故障,SQL FCI 容錯移轉節點就會啟用。健康狀態檢查工具收到信號後,流量就會重新導向至新節點。

  1. 建立兩個執行個體群組,並為各個群組分別新增一個 SQL Server 節點。這些執行個體群組是做為後端使用,負載平衡器可將流量導向至這些後端。

    gcloud compute instance-groups unmanaged create wsfc-group-f --zone us-central1-f
    gcloud compute instance-groups unmanaged add-instances wsfc-group-f --instances node-1 --zone us-central1-f
    
    gcloud compute instance-groups unmanaged create wsfc-group-a --zone us-central1-a
    gcloud compute instance-groups unmanaged add-instances wsfc-group-a --instances node-2 --zone us-central1-a
    
  2. 建立健康狀態檢查,供負載平衡器用來判斷哪個是有效節點。

    gcloud compute health-checks create tcp sql-healthcheck \
        --check-interval="2s" \
        --healthy-threshold=1 \
        --unhealthy-threshold=2 \
        --port=59998 \
        --request=10.0.0.200 \
        --timeout="1s" \
        --response=1
    
  3. 新增防火牆規則,允許進行健康狀態檢查。

    gcloud compute firewall-rules create allow-health-check \
        --network wsfcnet \
        --source-ranges 130.211.0.0/22,35.191.0.0/16 \
        --allow tcp
    
  4. 建立一個後端服務,並新增兩個後端執行個體群組。

    gcloud compute backend-services create wsfcbackend \
        --load-balancing-scheme internal \
        --region us-central1 \
        --health-checks sql-healthcheck \
        --protocol tcp
    
    gcloud compute backend-services add-backend wsfcbackend \
        --instance-group wsfc-group-a \
        --instance-group-zone us-central1-a \
        --region us-central1
    
    gcloud compute backend-services add-backend wsfcbackend \
        --instance-group wsfc-group-f \
        --instance-group-zone us-central1-f \
        --region us-central1
    
  5. 建立內部負載平衡器,將要求轉送至 SQL FCI 中的有效節點。FCI 將在稍後建立,並會設為透過 10.0.0.200 接聽。

    gcloud compute forwarding-rules create wsfc-forwarding-rule \
        --load-balancing-scheme internal \
        --ports 1433 \
        --network wsfcnet \
        --subnet wsfc-subnet1 \
        --region us-central1 \
        --backend-service wsfcbackend \
        --address 10.0.0.200
    

建立 Windows 容錯移轉叢集

  1. 使用遠端桌面協定,以 gontoso.com\Administrator 重新連線至 node-1。您可能需要刪除先前的憑證才能重新連線。

  2. 開啟已啟用進階權限的 PowerShell。

  3. 建立叢集。

    PS C:\> New-Cluster -Name windows-fci -Node node-1, node-2 -StaticAddress 10.0.0.201 -NoStorage
    
    PS C:\> Set-ClusterQuorum -FileShareWitness \\\\dc-windows\QWitness
    
  4. 測試叢集。您會看到一些可忽略的警告。

    PS C:\> Test-Cluster
    WARNING: System Configuration - Validate All Drivers Signed: The test reported some warnings..
    WARNING: Network - Validate Network Communication: The test reported some warnings..
    WARNING:
    Test Result:
    HadUnselectedTests, ClusterConditionallyApproved
    Testing has completed for the tests you selected. You should review the warnings in the Report.  A cluster solution is
    supported by Microsoft only if you run all cluster validation tests, and all tests succeed (with or without warnings).
    Test report file path: C:\Users\Administrator\AppData\Local\Temp\Validation Report 2018.05.01 At 19.25.01.htm
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    -a----         5/1/2018   7:26 PM         747166 Validation Report 2018.05.01 At 19.25.01.htm
    
    

    您也可以執行 cluadmin.msc,藉此啟動叢集管理員 GUI 並查看叢集的健康狀態。

啟用儲存空間直接存取功能

  1. 使用遠端桌面協定連線至 node-1node-2,然後開啟已啟用進階權限的 PowerShell。

  2. 啟用儲存空間直接存取功能。

    PS C:\> Enable-ClusterS2D
    
    Confirm
    Are you sure you want to perform this action?
    Performing operation 'Enable Cluster Storage Spaces Direct' on Target 'windows-fci'.
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y
    WARNING: 2018/05/01-19:36:41.315 Node node-1: No disks found to be used for cache
    WARNING: 2018/05/01-19:36:41.330 Node node-2: No disks found to be used for cache
    WARNING: 2018/05/01-19:36:41.362 C:\Windows\Cluster\Reports\Enable-ClusterS2D on 2018.05.01-19.36.41.362.htm
    
    

    系統提示您進行確認時,接受預設值。您會看到一些可忽略的警告。

    • (選用) 如要提高磁碟效能,除標準 SSD 永久磁碟外,您還可以將本機 SSD 新增至叢集的 VM。本機 SSD 可做為 S2D 快取層。請確認容量硬碟數需為本機 SSD 的倍數。容量硬碟在本教學課程是指 SSD 永久磁碟。然後執行下列以快取啟用 S2D 的指令:

      PS C:\> Enable-ClusterS2D -CacheDeviceModel "EphemeralDisk"
      
    • 您也可以啟用叢集共用磁碟區 (CSV) 記憶體內快取,進而提高讀取總處理量:

      PS C:\> (Get-Cluster).BlockCacheSize = 2048
      
  3. 由於 S2D 在管理時需要每個磁碟區 2 GB 的容量,而每個節點有四個 50 GB 的磁碟區,因此請定義儲存空間集區,並將其大小設為 192 GB。

    PS C:\> New-Volume -StoragePoolFriendlyName S2D* -FriendlyName VDisk01 -FileSystem CSVFS_REFS -Size 192GB
    
  4. 確認儲存空間磁碟區處於讀/寫模式。

    PS C:\> dir C:\ClusterStorage\Volume1\ | Get-ACL
    
    Directory: C:\ClusterStorage\Volume1
    
    Path                Owner                  Access
    ----                -----                  ------
    MSSQL13.MSSQLSERVER BUILTIN\Administrators BUILTIN\Administrators Allow  FullControl...
    
    

使用 FCI 為 SQL Server 設定高可用性

  1. 從第一個節點中移除預設的 SQL Server 執行個體。您之後會將其改成新的 FCI 設定。

    1. 使用遠端桌面協定,以 gontoso.com\Administrator 連線至 node-1

    2. 開啟已啟用進階權限的 PowerShell。

    3. 移除預設的 SQL Server 執行個體。

      PS C:\> C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
      
    4. 重新啟動 VM。

      PS C:\> shutdown /r
      
  2. 從第二個節點中移除預設的 SQL Server 執行個體。您之後會將其改成新的 FCI 設定。

    1. 使用遠端桌面協定,以 gontoso.com\Administrator 登入 node-2

    2. 開啟已啟用進階權限的 PowerShell。

    3. 移除預設的 SQL Server 執行個體。

      PS C:\> C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
      
    4. 重新啟動 VM。

      PS C:\> shutdown /r
      
  3. 在第一個節點中使用 FCI 重新安裝 SQL Server。

    1. 使用遠端桌面協定,以 gontoso\Administrator 登入 node-1

    2. 開啟文字編輯器,例如記事本。

    3. fci_install_master_node.ini 設定檔的內容複製到 node-1 上的文字編輯器。換行符號可能不會保留,但仍然有效。

    4. 使用您的 gontoso.com\service_account 密碼更新設定檔。您必須在 AGTSVCPASSWORDSQLSVCPASSWORD 這兩個地方更新密碼。請搜尋 changeme 並將其改成您定義的密碼,然後以 C:\fci_install_master_node.ini 這個檔案名稱,將檔案儲存為純文字檔案。

    5. 開啟已啟用進階權限的 PowerShell,然後使用設定檔安裝 SQL Server。

      PS C:\> C:\sql_server_install\Setup.exe /CONFIGURATIONFILE=C:\fci_install_master_node.ini
      
  4. 在第二個節點中使用 FCI 重新安裝 SQL Server。

    1. 使用遠端桌面協定,以 gontoso\Administrator 登入 node-2

    2. 開啟文字編輯器,例如記事本。

    3. fci_add_node.ini 設定檔的內容複製到 node-1 上的文字編輯器。

    4. 使用您的 gontoso.com\service_account 密碼更新設定檔。您必須在 AGTSVCPASSWORDSQLSVCPASSWORD 這兩個地方更新密碼。請搜尋 changeme 並將其改成您定義的密碼,然後以 C:\fci_add_node.ini 這個檔案名稱,將檔案儲存為純文字檔案。

    5. 開啟已啟用進階權限的 PowerShell,然後安裝 SQL Server。

      PS C:\> C:\sql_server_install\Setup.exe /CONFIGURATIONFILE=C:\fci_add_node.ini
      

測試容錯移轉情境

準備用戶端

  1. 在 Cloud Shell 中,建立新 VM 做為 SQL 用戶端。

    gcloud compute instances create "sqlclient-1" \
    --zone "us-central1-a" \
    --machine-type "n1-standard-2" \
    --subnet "wsfc-subnet1" \
    --private-network-ip "10.0.0.10" \
    --can-ip-forward \
    --image-family "sql-ent-2016-win-2016" \
    --image-project "windows-sql-cloud" \
    --boot-disk-size "200" \
    --boot-disk-type "pd-standard" \
    --boot-disk-device-name "sqlclient-1"
    
  2. 使用遠端桌面協定連線至 sqlclient-1

  3. 開啟已啟用進階權限的 PowerShell。

  4. 設定用戶端。

    1. 將 DNS 設為網域控制站。

      PS C:\> netsh interface ip set dns Ethernet static 10.0.0.3
      
    2. 將節點新增至您先前建立的 Active Directory 網域。

      PS C:\> Add-Computer -DomainName gontoso.com -Restart -Force -Credential gontoso.com\Administrator
      

      系統會提示您提供憑證。您已於先前的步驟中設定網域控制站 VM,請使用當時設定的管理員使用者名稱和密碼。

      機器會重新啟動。

    3. 使用遠端桌面協定和管理員帳戶重新連線。

    4. gontoso.com\service_account 新增至本機管理員群組。

      PS C:\> Add-LocalGroupMember -Group "Administrators" -Member "gontoso.com\service_account"
      
    5. 登出。

      PS C:\> logoff
      

執行測試

  1. 使用遠端桌面協定以及 gontoso.com\service_account 使用者名稱和密碼重新連線至 sqlclient-1

  2. 在 PowerShell 中,針對系統的 dm_os_cluster_nodes 資料表執行測試查詢。

    PS C:\> & "c:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE" -S 10.0.0.200 -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    
    NodeName                       status      status_description is_current_owner
    \------------------------------ ----------- ------------------ ----------------
    NODE-1                                   0 up                                1
    NODE-2                                   0 up                                0
    
    (2 rows affected)
    
    

    請注意,node-1 是 SQL Server 容錯移轉叢集資源目前的擁有者。

  3. 使用 Cloud Shell 關閉 node-1 VM 來測試容錯移轉情境。

    gcloud compute instances stop node-1 --zone us-central1-f
    
  4. sqlclient-1 VM 中,再次執行測試查詢。

    PS C:\> & "c:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE" -S 10.0.0.200 -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    
    NodeName                       status      status_description is_current_owner
    \------------------------------ ----------- ------------------ ----------------
    NODE-1                                   1 down                              0
    NODE-2                                   0 up                                1
    
    (2 rows affected)
    
    

    雖然失去 node-1,查詢還是執行成功,並顯示 node-2 現在是容錯移轉叢集目前的擁有者。

清理

如何避免系統向您的 Google Cloud Platform 帳戶收取您在本教學課程中使用資源的相關費用:

完成 SQL Server FCI 教學課程後,您可以清除在 Google Cloud Platform 建立的資源,這樣日後就不需再為這些資源付費。下列各節將說明如何刪除或停用這些資源。

刪除專案

如要避免被收費,最簡單的方法就是刪除您在教學課程中建立的專案。

如何刪除專案:

  1. 前往 GCP 主控台的「Projects」(專案) 頁面。

    前往專案頁面

  2. 在專案清單中選取要刪除的專案,然後按一下 [Delete] (刪除)
  3. 在對話方塊中輸入專案 ID,按一下 [Shut down] (關閉) 即可刪除專案。

刪除執行個體

刪除 Compute Engine 執行個體:

刪除永久磁碟

如何刪除永久磁碟:

  1. 前往 GCP 主控台的「磁碟」頁面。

    前往磁碟頁面

  2. 找出您要刪除的磁碟,然後選取磁碟名稱旁的核取方塊。

  3. 點選頁面頂端的 [刪除] 按鈕。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件