Microsoft SQL Server Always On 可用性群組可讓您跨多個 SQL Server Enterprise 執行個體複製資料庫。
與 SQL Server 容錯移轉叢集執行個體類似,Always On 可用性群組會使用 Windows Server 容錯移轉叢集 (WSFC) 實作高可用性。不過,這兩項功能在以下方面有所不同:
Always On 可用性群組 | 容錯移轉叢集執行個體 | |
---|---|---|
容錯移轉範圍 | 資料庫群組 | 執行個體 |
儲存空間 | 未共用 | 共用 |
如需更詳細的比較,請參閱容錯移轉叢集執行個體與可用性群組的比較。
Always On 可用性群組支援多種可用性模式。 本教學課程說明如何以同步認可模式部署 Always On 可用性群組,為一或多個資料庫實作高可用性。
在設定過程中,您將建立三個 VM 執行個體。兩個 VM 執行個體 (node-1
和 node-2
) 會做為叢集節點,並執行 SQL Server。第三個 VM 執行個體 witness
用於在容錯移轉情境中達到法定人數。這三個 VM 執行個體分布在三個區域,並共用一個子網路。
使用 SQL Server Always On 可用性群組時,範例資料庫 bookshelf
會在兩個 SQL Server 執行個體之間同步複製。
在內部部署的 Windows 叢集環境中,位址解析通訊協定 (ARP) 公告會觸發 IP 位址容錯移轉。Trusted Cloud,但會忽略 ARP 公告。因此,您必須實作下列其中一個選項:使用內部負載平衡器和分散式網路名稱 (DNN)。
本文假設您已在 Trusted Cloud by S3NS上部署 Active Directory,且具備 SQL Server、Active Directory 和 Compute Engine 的基本知識。如要進一步瞭解 Active Directory,請參閱 Trusted Cloud「事前準備」一節。
使用 SQL Server Always On 可用性群組時,範例資料庫 bookshelf
會在兩個 SQL Server 執行個體之間同步複製。叢集前端的分布式網路名稱 (DNN) 接聽程式會為 SQL Server 用戶端提供單一端點。
如要進一步瞭解 DNN,請參閱「為可用性群組設定 DNN 接聽程式」。
這張圖包含下列項目:
- 兩個 VM 執行個體位於相同區域,但可用區不同,用於容錯移轉叢集,分別稱為
node-1
和node-2
。一個節點會代管 SQL Server 資料庫的主要副本,另一個節點則代管次要副本。 - 第三部 VM 稱為
witness
,做為檔案共用見證,提供關鍵票並達成仲裁,以利容錯移轉。 - 叢集前端的 DNN 接聽程式會為 SQL Server 用戶端提供單一端點。
目標
- 部署 WSFC,其中包含兩個 SQL Server VM 執行個體,以及做為檔案共用見證的第三個 VM 執行個體。
- 建立具有同步認可的可用性群組。
- 設定分散式網路名稱 (DNN),將流量導向 SQL Server 可用性群組
- 模擬容錯移轉,確認設定是否正常運作。
費用
本教學課程使用 Trusted Cloud by S3NS的計費元件,包括:
使用 Pricing Calculator,根據您的預測使用量來產生預估費用。
事前準備
如要完成本教學課程中的工作,請確認下列事項:
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
-
Verify that billing is enabled for your Trusted Cloud project.
- 您擁有 Active Directory 網域,且至少有一個網域控制器。您可以使用 Managed Microsoft AD 建立 Active Directory 網域。或者,您也可以在 Compute Engine 上部署自訂 Active Directory 環境,並設定私人 DNS 轉送區域,將 DNS 查詢轉送至網域控制站。
-
您有權限將電腦加入網域,並可使用 RDP 登入 Active Directory 使用者。如果您使用受管理的 Microsoft AD,可以透過
setupadmin
使用者。如要進一步瞭解如何佈建 Active Directory 使用者帳戶,請參閱「佈建 Active Directory 使用者帳戶」一文。 - Trusted Cloud 專案和虛擬私有雲 (VPC),並連線至 Active Directory 網域控制站。
- 用於 Windows Server 容錯移轉叢集 VM 執行個體的子網路。 完成本教學課程後,您可以刪除建立的資源以避免繼續計費。詳情請參閱「清除所用資源」一節。
準備專案和網路
如要部署 SQL Server Always On 可用性群組,您必須先準備Trusted Cloud 專案和虛擬私有雲,以利部署作業。以下各節將詳細說明如何完成這項操作。
設定專案和區域
如要準備 Trusted Cloud 專案以部署 SQL Server Always On 可用性群組,請完成下列步驟:
在 Trusted Cloud 控制台中,按一下「啟用 Cloud Shell」
按鈕,開啟 Cloud Shell。
初始化下列變數。
VPC_NAME=
VPC_NAME
SUBNET_NAME=SUBNET_NAME
更改下列內容:
VPC_NAME
:虛擬私有雲名稱SUBNET_NAME
:子網路名稱
設定預設的專案 ID。
gcloud config set project
PROJECT_ID
將
PROJECT_ID
替換為專案 ID。 Trusted Cloud設定預設區域。
gcloud config set compute/region
REGION
將
REGION
替換為要部署的地區 ID。
建立防火牆規則
如要允許用戶端連線至 SQL Server,以及叢集節點之間的通訊,您需要建立多項防火牆規則。您可以使用網路標記簡化這些防火牆規則的建立程序,如下所示:
- 兩個叢集節點會以
wsfc-node
標記加上註解。 - 所有伺服器 (包括
witness
) 都以wsfc
標記加上註解。
如要建立使用這些網路標記的防火牆規則,請按照下列步驟操作:
- 返回現有的 Cloud Shell 工作階段。
建立防火牆規則,允許叢集節點之間的流量。
SUBNET_CIDR=$(gcloud compute networks subnets describe $SUBNET_NAME --format=value\('ipCidrRange'\)) gcloud compute firewall-rules create allow-all-between-wsfc-nodes \ --direction=INGRESS \ --action=allow \ --rules=tcp,udp,icmp \ --enable-logging \ --source-tags=wsfc \ --target-tags=wsfc \ --network=$VPC_NAME \ --priority 10000 gcloud compute firewall-rules create allow-sql-to-wsfc-nodes \ --direction=INGRESS \ --action=allow \ --rules=tcp:1433 \ --enable-logging \ --source-ranges=$SUBNET_CIDR \ --target-tags=wsfc-node \ --network=$VPC_NAME \ --priority 10000
建立 VM 執行個體
建立並部署兩個 VM 執行個體,做為容錯移轉叢集。在任何時間點,其中一個 VM 會代管 SQL Server 資料庫的主要副本,另一個節點則代管次要副本。這兩個 VM 執行個體必須符合下列條件:
- 已安裝容錯移轉叢集和 SQL Server。
- 啟用 Compute Engine WSFC 支援。
使用預先安裝 SQL Server 2022 的 SQL Server 進階映像檔。
如要針對容錯移轉情境提供關鍵票並達成仲裁,請按照下列步驟部署第三部 VM,做為檔案共用見證:
- 返回現有的 Cloud Shell 工作階段。
為 WSFC 節點建立專用指令碼。這個指令碼會安裝必要的 Windows 功能,並為 WSFC 和 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 WSFC netsh advfirewall firewall add rule name="Allow WSFC 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
建立 VM 執行個體。在做為叢集節點的兩個 VM 上,附加額外的資料磁碟,並將中繼資料鍵
enable-wsfc
設為true
,啟用 Windows Server 容錯移轉叢集:REGION=$(gcloud config get-value compute/region) ZONE1=
ZONE1
ZONE2=ZONE2
ZONE3=ZONE3
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 e2-medium \ --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"根據您使用的區域,替換 ZONE1、ZONE2、ZONE3。
如要將這三個 VM 執行個體加入 Active Directory,請針對每個 VM 執行個體執行下列操作:
查看 VM 的序列埠輸出內容,監控初始化程序。
gcloud compute instances tail-serial-port-output
NAME
將
NAME
替換為 VM 執行個體名稱。等待幾分鐘,直到看到
Instance setup finished
輸出內容,然後按下 Ctrl+C。此時,VM 執行個體已可供使用。使用遠端桌面連線至 VM,並使用上一步建立的使用者名稱和密碼登入。
以滑鼠右鍵按一下「開始」按鈕 (或按 Win+X 鍵),然後按一下「Windows PowerShell (系統管理員)」。
按一下「是」,確認提升權限提示。
將電腦加入 Active Directory 網域,然後重新啟動。
Add-Computer -Domain
DOMAIN -Restart
將
DOMAIN
換成 Active Directory 網域的 DNS 名稱。輸入有權將 VM 加入網域的帳戶憑證
等待 VM 重新啟動。您現在已將 VM 執行個體加入 Active Directory。
部署容錯移轉叢集
現在您可以使用 VM 執行個體部署 Windows Server 容錯移轉叢集和 SQL Server。以下各節將詳細說明如何執行這項操作。
準備 SQL Server
按照下列步驟,在 Active Directory 中為 SQL Server 建立新的使用者帳戶。
node-1
使用遠端桌面連線。 使用網域使用者帳戶登入。- 以滑鼠右鍵按一下「開始」按鈕 (或按下 Win+X 鍵),然後按一下「Windows PowerShell (系統管理員)」。
- 按一下「是」,確認提升權限提示。
為 SQL Server 和 SQL 代理程式建立網域使用者帳戶,並指派密碼:
$Credential = Get-Credential -UserName sql_server -Message 'Enter password' New-ADUser ` -Name "sql_server" ` -Description "SQL Admin account." ` -AccountPassword $Credential.Password ` -Enabled $true -PasswordNeverExpires $true
如要在 node-1
和 node-2
上設定 SQL Server,請按照下列步驟操作:
- 開啟 SQL Server 設定管理員。
- 在導覽窗格中,選取「SQL Server Services」。
- 在服務清單中,以滑鼠右鍵按一下「SQL Server (MSSQLSERVER)」,然後選取「內容」。
在「以以下身分登入」下方,按照下列步驟變更帳戶:
- 帳戶名稱:
DOMAIN\sql_server
其中DOMAIN
是 Active Directory 網域的 NetBIOS 名稱。 - 密碼:輸入先前選擇的密碼。
- 帳戶名稱:
按一下 [確定]。
系統提示重新啟動 SQL Server 時,請選取「是」。
SQL Server 現在會以網域使用者帳戶執行。
<0x0建立檔案共用區
在 VM 執行個體 witness
上建立兩個檔案共用區,以便儲存 SQL Server 備份並做為檔案共用見證:
- 使用遠端桌面連線至
witness
。 使用網域使用者帳戶登入。 - 以滑鼠右鍵按一下「開始」按鈕 (或按 Win+X 鍵),然後按一下「Windows PowerShell (系統管理員)」。
- 按一下「是」,確認提升權限提示。
建立見證檔案共用,並授予自己和兩個叢集節點檔案共用存取權。
New-Item "C:\QWitness" –type directory icacls C:\QWitness\ /grant 'node-1$:(OI)(CI)(M)' icacls C:\QWitness\ /grant 'node-2$:(OI)(CI)(M)' New-SmbShare ` -Name QWitness ` -Path "C:\QWitness" ` -Description "SQL File Share Witness" ` -FullAccess $env:username,node-1$,node-2$
建立另一個檔案共用來儲存備份,並授予 SQL Server 完整存取權:
New-Item "C:\Backup" –type directory New-SmbShare ` -Name Backup ` -Path "C:\Backup" ` -Description "SQL Backup" ` -FullAccess $env:USERDOMAIN\sql_server
建立容錯移轉叢集
如要建立容錯移轉叢集,請按照下列步驟操作:
- 返回
node-1
的遠端桌面工作階段。 - 以滑鼠右鍵按一下「開始」按鈕 (或按 Win+X 鍵),然後按一下「Windows PowerShell (系統管理員)」。
- 按一下「是」,確認提升權限提示。
建立新叢集。
New-Cluster ` -Name sql-cluster ` -Node node-1,node-2 ` -NoStorage ` -ManagementPointNetworkType Distributed
返回
witness
的 PowerShell 工作階段,授予叢集的虛擬電腦物件存取檔案共用區的權限。icacls C:\QWitness\ /grant 'sql-cluster$:(OI)(CI)(M)' Grant-SmbShareAccess ` -Name QWitness ` -AccountName 'sql-cluster$' ` -AccessRight Full ` -Force
返回
node-1
的 PowerShell 工作階段,將叢集設為使用witness
的檔案共用做為叢集仲裁。Set-ClusterQuorum -FileShareWitness \\witness\QWitness
確認叢集已成功建立。
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).
您也可以執行
cluadmin.msc
,藉此啟動容錯移轉叢集管理員 MMC 嵌入式管理單元,並查看叢集的健康狀態。如果您使用受管理 AD,請將 Windows 叢集使用的電腦帳戶新增至「Cloud Service Domain Join Accounts」群組,以便將電腦加入網域。
Add-ADGroupMember ` -Identity "Cloud Service Domain Join Accounts" ` -Members sql-cluster$
在兩個節點上啟用 Always On 可用性群組。
Enable-SqlAlwaysOn -ServerInstance node-1 -Force Enable-SqlAlwaysOn -ServerInstance node-2 -Force
建立可用性群組
現在請建立範例資料庫 bookshelf
,將其納入名為 bookshelf-ag
的新可用性群組,並設定高可用性。
建立資料庫
建立新的資料庫。為配合本教學課程,資料庫不需要包含任何資料。
- 返回
node-1
的遠端桌面工作階段。 - 開啟 SQL Server Management Studio。
- 在「連線到伺服器」對話方塊中,確認伺服器名稱已設為
node-1
,然後選取「連線」。 - 在選單中,依序選取「檔案」>「新增」>「使用目前連線查詢」。
將下列 SQL 指令碼貼到編輯器中:
-- Create a sample database CREATE DATABASE bookshelf ON PRIMARY ( NAME = 'bookshelf', FILENAME='d:\Data\bookshelf.mdf', SIZE = 256MB, MAXSIZE = UNLIMITED, FILEGROWTH = 256MB) LOG ON ( NAME = 'bookshelf_log', FILENAME='d:\Logs\bookshelf.ldf', SIZE = 256MB, MAXSIZE = UNLIMITED, FILEGROWTH = 256MB) GO USE [bookshelf] SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON GO -- Create sample table CREATE TABLE [dbo].[Books] ( [Id] [bigint] IDENTITY(1,1) NOT NULL, [Title] [nvarchar](max) NOT NULL, [Author] [nvarchar](max) NULL, [PublishedDate] [datetime] NULL, [ImageUrl] [nvarchar](max) NULL, [Description] [nvarchar](max) NULL, [CreatedById] [nvarchar](max) NULL, CONSTRAINT [PK_dbo.Books] PRIMARY KEY CLUSTERED ([Id] ASC) WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO -- Create a backup EXEC dbo.sp_changedbowner @loginame = 'sa', @map = false; ALTER DATABASE [bookshelf] SET RECOVERY FULL; GO BACKUP DATABASE bookshelf to disk = '\\witness\Backup\bookshelf.bak' WITH INIT GO
指令碼會建立含有單一資料表的新資料庫,並執行初始備份至
witness
。選取「執行」即可執行 SQL 指令碼。
設定高可用性
您現在可以使用 T-SQL 或 Server Management Studio,為可用性群組設定高可用性。
使用 T-SQL
如要使用 T-SQL 為可用性群組設定高可用性,請按照下列步驟操作:
連線至
node-1
,然後執行下列指令碼,建立bookshelf-ag
可用性群組。CREATE LOGIN [
NET_DOMAIN
\sql_server] FROM WINDOWS; GO USE [bookshelf]; CREATE USER [NET_DOMAIN
\sql_server] FOR LOGIN [NET_DOMAIN
\sql_server]; GO USE [master]; CREATE ENDPOINT bookshelf_endpoint STATE=STARTED AS TCP (LISTENER_PORT=5022) FOR DATABASE_MIRRORING (ROLE=ALL); GO GRANT CONNECT ON ENDPOINT::[bookshelf_endpoint] TO [NET_DOMAIN
\sql_server] GO連線至
node-2
並執行下列指令碼。CREATE LOGIN [
NET_DOMAIN
\sql_server] FROM WINDOWS; GO CREATE ENDPOINT bookshelf_endpoint STATE=STARTED AS TCP (LISTENER_PORT=5022) FOR DATABASE_MIRRORING (ROLE=ALL); GO GRANT CONNECT ON ENDPOINT::[bookshelf_endpoint] TO [NET_DOMAIN
\sql_server] GO在
node-1
上執行下列指令碼,建立bookshelf-ag
可用性群組。USE master; GO CREATE AVAILABILITY GROUP [bookshelf-ag] WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY, CLUSTER_TYPE = WSFC, DB_FAILOVER = ON ) FOR DATABASE [bookshelf] REPLICA ON N'node-1' WITH ( ENDPOINT_URL = 'TCP://node-1:5022', AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, FAILOVER_MODE = AUTOMATIC, BACKUP_PRIORITY = 50, SEEDING_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO) ), N'node-2' WITH ( ENDPOINT_URL = 'TCP://node-2:5022', AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, FAILOVER_MODE = AUTOMATIC, BACKUP_PRIORITY = 50, SEEDING_MODE = AUTOMATIC, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO) ); GO
連線至
node-2
,然後執行下列指令碼,將次要副本加入可用性群組,並啟用自動植入。USE master; GO ALTER AVAILABILITY GROUP [bookshelf-ag] JOIN; ALTER AVAILABILITY GROUP [bookshelf-ag] GRANT CREATE ANY DATABASE;
檢查可用性群組的狀態。
SELECT * FROM sys.dm_hadr_availability_group_states; GO
您應該會看到
synchronization_health_desc
為HEALTHY
。
使用 SQL Server Management Studio
如要使用 SQL Server Management Studio 為可用性群組設定高可用性,請按照下列步驟操作:
- 在「物件總管」視窗中,以滑鼠右鍵按一下「Always On High Availability」,然後選取「New Availability Group Wizard」。
- 在「Specify Options」(指定選項) 頁面上,將可用性群組名稱設為
bookshelf-ag
,然後選取「Next」(下一步)。 - 在「Select Databases」(選取資料庫) 頁面上,選取
bookshelf
資料庫,然後選取「Next」(下一步)。 在「Specify Replicas」(指定副本) 頁面上,選取「Replicas」(副本) 分頁標籤。
- 選取「新增副本」。
在「連線到伺服器」對話方塊中,輸入伺服器名稱
node-2
,然後選取「連線」。可用性副本清單現在包含 SQL Server 執行個體、
node-1
和node-2
。將兩個執行個體的「可用性模式」設為「同步認可」。
將兩個執行個體的「Automatic failover」(自動容錯移轉) 設為「Enabled」(啟用)。
選取「下一步」。
在「Select Data Synchronization」(選取資料同步處理) 頁面上,選取「Automatic Seeding」(自動播種)。
在「驗證」頁面中,確認所有檢查都成功。您可以忽略可用性群組接聽程式檢查。
在「摘要」頁面選取「完成」。
在「結果」頁面中,選取「關閉」。
設定可用性群組的 DNN 接聽程式
DNN 接聽程式可做為 SQL Server 用戶端的單一端點。如要設定 DNN 接聽程式,請按照下列步驟操作:
- 返回
node-1
的 PowerShell 工作階段。 執行下列指令碼,建立 DNN 接聽程式。
$Ag='bookshelf-ag' $Port='
DNN_PORT
' $Dns='DNN_NAME
' # create the DNN resource with the port as the resource name Add-ClusterResource -Name $Port -ResourceType "Distributed Network Name" -Group $Ag # set the DNS name of the DNN resource Get-ClusterResource -Name $Port | Set-ClusterParameter -Name DnsName -Value $Dns # start the DNN resource Start-ClusterResource -Name $Port # add the Dependency from availability group resource to the DNN resource Set-ClusterResourceDependency -Resource $Ag -Dependency "[$Port]" # restart the availability group resource Stop-ClusterResource -Name $Ag Start-ClusterResource -Name $Ag將
DNN_PORT
替換為 DNN 接聽埠。DNN 接聽埠必須設定為不重複的通訊埠。詳情請參閱「連接埠注意事項」。將
DNN_NAME
替換為 DNN 接聽程式名稱。在
node-1
和node-2
上,為 DNN 接聽埠建立防火牆規則。netsh advfirewall firewall add rule name="Allow DNN listener" dir=in action=allow protocol=TCP localport=
DNN_PORT
測試容錯移轉
現在可以測試容錯移轉是否正常運作:
- 返回
witness
的 PowerShell 工作階段。 執行下列指令碼。
while ($True){ $Conn = New-Object System.Data.SqlClient.SqlConnection $Conn.ConnectionString = "Server=
DNN_NAME
,DNN_PORT
;Integrated Security=true;Initial Catalog=master" $Conn.Open() $Cmd = New-Object System.Data.SqlClient.SqlCommand $Cmd.Connection = $Conn $Cmd.CommandText = "SELECT SERVERPROPERTY('ServerName')" $Adapter = New-Object System.Data.SqlClient.SqlDataAdapter $Cmd $Data = New-Object System.Data.DataSet $Adapter.Fill($Data) | Out-Null $Data.Tables[0] + (Get-Date -Format "MM/dd/yyyy HH:mm:ss") Start-Sleep -Seconds 2 }將
DNN_NAME
替換為 DNN 接聽程式名稱,並將DNN_PORT
替換為 DNN 接聽程式連接埠。每隔 2 秒,指令碼就會使用可用性群組接聽程式連線至 SQL Server,並查詢伺服器名稱。
讓指令碼繼續執行。
返回
node-1
上的遠端桌面工作階段,觸發容錯移轉。- 在 SQL Server Management Studio 中,依序前往「Always On High Availability」>「Availability Groups」>「bookshelf-ag (Primary)」,然後以滑鼠右鍵按一下節點。
- 選取「Failover」。
- 在「選取新的主要副本」頁面,確認已選取
node-2
做為新的主要副本,且「容錯移轉準備就緒」欄顯示No data loss
。然後選取「下一步」。 - 在「Connect to replica」(連線至副本) 頁面中,選取「Connect」(連線)。
- 在「連線到伺服器」對話方塊中,確認伺服器名稱為
node-2
,然後按一下「連線」。 - 依序選取「下一步」和「完成」。
- 在「結果」頁面上,確認容錯移轉是否成功。
返回
witness
的 PowerShell 工作階段。觀察執行指令碼的輸出內容,並注意伺服器名稱會因容錯移轉而從
node-1
變更為node-2
。按下
Ctrl+C
鍵停止指令碼。
清除所用資源
完成教學課程後,您可以清除所建立的資源,這樣資源就不會繼續使用配額,也不會產生費用。下列各節將說明如何刪除或關閉這些資源。
刪除專案
如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。
如要刪除專案:
- In the Trusted Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.