Instance Cluster Failover Always On (FCI) Microsoft SQL Server memungkinkan Anda menjalankan satu instance SQL Server di beberapa node Windows Server Failover Cluster (WSFC). Sewaktu-waktu, salah satu node cluster secara aktif menghosting instance SQL. Jika terjadi kegagalan, WSFC akan mentransfer kepemilikan resource instance ke node lain secara otomatis.
FCI SQL Server mengharuskan data ditempatkan di penyimpanan bersama agar dapat diakses di seluruh node WSFC. Panduan ini menjelaskan cara men-deploy instance cluster failover SQL Server 2022 dan menggunakan persistent disk dalam mode multi-writer sebagai penyimpanan bersama.
Di lingkungan lokal, Anda dapat mengizinkan WSFC melakukan pengumuman ARP jika terjadi failover untuk memberi tahu peralatan jaringan tentang perubahan alamat IP. Namun, Google Cloud mengabaikan pengumuman ARP. Oleh karena itu, Anda harus menerapkan salah satu dari dua opsi berikut:
- Load balancer internal (lihat Menjalankan Cluster Failover Windows Server)
- Nama jaringan terdistribusi (DNN) (lihat Mengonfigurasi DNN untuk instance cluster failover)
Artikel ini berasumsi bahwa Anda telah men-deploy Active Directory di Google Cloud dan memiliki pengetahuan dasar tentang SQL Server, Active Directory, dan Compute Engine.
Tujuan
- Men-deploy WSFC yang terdiri dari dua instance VM SQL Server dan instance VM ketiga yang bertindak sebagai saksi berbagi file.
- Men-deploy FCI SQL Server di WSFC.
- Konfigurasikan load balancer atau nama jaringan terdistribusi (DNN) untuk merutekan traffic ke grup ketersediaan Anda dengan SQL Server.
- Memastikan cluster berfungsi dengan menyimulasikan failover.
Biaya
Tutorial ini menggunakan komponen Google Cloud yang dapat ditagih, termasuk:
- Compute Engine
- Cloud Load Balancing (tidak diperlukan dengan konfigurasi DNN)
Gunakan kalkulator harga untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda proyeksikan.
Sebelum memulai
Untuk menyelesaikan panduan ini, Anda memerlukan hal berikut:
- Domain Active Directory dengan minimal satu pengontrol domain. Anda dapat membuat domain Active Directory dengan menggunakan Microsoft AD Terkelola. Atau, Anda dapat men-deploy lingkungan Active Directory kustom di Compute Engine dan menyiapkan zona penerusan DNS pribadi yang meneruskan kueri DNS ke pengontrol domain Anda.
- Pengguna Active Directory yang memiliki izin untuk menggabungkan komputer ke domain
dan dapat login menggunakan RDP. Jika menggunakan Microsoft AD Terkelola, Anda dapat menggunakan
pengguna
setupadmin
. - Project Google Cloud dan VPC dengan konektivitas ke pengontrol domain Active Directory Anda.
- Subnet yang akan digunakan untuk instance VM WSFC.
Pastikan Anda telah meninjau batasan persistent disk dalam mode multi-penulis, dan memilih zona tempat persistent disk dalam mode multi-penulis tersedia.
Untuk menyelesaikan panduan ini, Anda juga memerlukan project Google Cloud:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Setelah menyelesaikan tutorial ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk informasi selengkapnya, lihat Pembersihan.
Mempersiapkan project dan jaringan
Untuk menyiapkan project Google Cloud dan VPC Anda untuk deployment FCI SQL Server, lakukan hal berikut:
Di konsol Google Cloud, buka Cloud Shell dengan mengklik tombol Aktifkan Cloud Shell .
Lakukan inisialisasi variabel berikut:
VPC_NAME=
VPC_NAME
SUBNET_NAME=SUBNET_NAME
Dengan keterangan:
VPC_NAME
: nama VPC AndaSUBNET_NAME
: nama subnet Anda
Tetapkan project ID default Anda:
gcloud config set project
PROJECT_ID
Ganti
PROJECT_ID
dengan ID project Google Cloud Anda.Tetapkan zona default Anda:
gcloud config set compute/zone
ZONE
Ganti
ZONE
dengan ID zona tempat Anda ingin men-deploy.
Membuat aturan firewall
Agar klien dapat terhubung ke SQL Server, mengizinkan komunikasi antara node WSFC, dan mengaktifkan load balancer untuk melakukan health check, Anda perlu membuat beberapa aturan firewall. Untuk menyederhanakan pembuatan aturan firewall ini, gunakan tag jaringan:
- Dua node WSFC dianotasi dengan tag
wsfc-node
. - Semua server (termasuk saksi) dianotasi dengan tag
wsfc
.
Buat aturan firewall yang menggunakan tag jaringan ini:
- Kembali ke sesi Cloud Shell yang ada.
Buat aturan firewall untuk node WSFC:
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
Buat aturan firewall yang mengizinkan health check dari rentang IP penguji Google Cloud: (tidak diperlukan dengan konfigurasi DNN)
gcloud compute firewall-rules create allow-health-check-to-wsfc-nodes \ --direction=INGRESS \ --action=allow \ --rules=tcp \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=wsfc-node \ --network=$VPC_NAME \ --priority 10000
Membuat instance VM
Sekarang Anda men-deploy dua instance VM untuk cluster failover. Sewaktu-waktu, hanya salah satu dari VM ini yang berfungsi sebagai node FCI aktif, sedangkan node lainnya berfungsi sebagai node failover. Kedua instance VM tersebut harus:
- ditempatkan di zona yang sama sehingga keduanya dapat mengakses persistent disk yang sama.
- menginstal Windows Server Failover Clustering dan SQL Server.
- telah mengaktifkan dukungan Compute Engine WSFC.
Anda menggunakan image premium SQL Server yang sudah disertai dengan SQL Server 2022.
Untuk memberikan suara penentu setelah hasil imbang dan mencapai kuorum untuk skenario failover, Anda men-deploy VM ketiga yang berfungsi sebagai saksi fitur berbagi file.
- Kembali ke sesi Cloud Shell yang ada.
Buat kebijakan penempatan penyebaran yang menyebarkan node WSFC ke seluruh infrastruktur pusat data yang mendasari, sehingga node tidak menggunakan host atau sistem daya yang sama:
ZONE=$(gcloud config get-value compute/zone) gcloud compute resource-policies create group-placement spread-placement \ --availability-domain-count 2 \ --region ${ZONE::-2}
Buat skrip spesialisasi untuk node WSFC. Skrip ini menginstal fitur Windows yang diperlukan serta membuat aturan firewall untuk WSFC dan 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 SQL Server health check" dir=in action=allow protocol=TCP localport=59997 # Open firewall for SQL Server netsh advfirewall firewall add rule name="Allow SQL Server" dir=in action=allow protocol=TCP localport=1433 EOF
Buat instance VM dan aktifkan agen Windows Server Failover Clustering di node WSFC dengan menetapkan kunci metadata
enable-wsfc
ketrue
:MACHINE_TYPE=n2-standard-8 gcloud compute instances create node-1 \ --resource-policies spread-placement \ --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" \ --metadata enable-wsfc=true \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1 gcloud compute instances create node-2 \ --resource-policies spread-placement \ --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" \ --metadata enable-wsfc=true \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1 gcloud compute instances create "witness" \ --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"
Untuk menggabungkan 3 instance VM ke Active Directory, lakukan hal berikut untuk masing-masing dari 3 instance VM:
Pantau proses inisialisasi VM dengan melihat output port serialnya:
gcloud compute instances tail-serial-port-output
NAME
Ganti
NAME
dengan nama instance VM.Tunggu sekitar 3 menit hingga Anda melihat output
Instance setup finished
, lalu tekan Ctrl+C. Pada tahap ini, instance VM siap digunakan.Buat nama pengguna dan sandi untuk instance VM.
Hubungkan ke VM menggunakan Desktop Jarak Jauh dan login menggunakan nama pengguna dan sandi yang dibuat di langkah sebelumnya.
Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
Konfirmasi prompt elevasi dengan mengklik Yes.
Gabungkan komputer ke domain Active Directory Anda, lalu mulai ulang:
Add-Computer -Domain
DOMAIN -Restart
Ganti
DOMAIN
dengan nama DNS domain Active Directory Anda.Tunggu sekitar 1 menit sampai proses mulai ulang selesai.
Membuat persistent disk dalam mode multi-writer
Sekarang Anda membuat 3 persistent disk dalam mode multi-writer dan memasang masing-masing persistent disk ke kedua node WSFC.
- Kembali ke sesi Cloud Shell yang ada.
Buat 3 persistent disk bersama:
PD_SIZE=50 gcloud beta compute disks create datadisk-1 \ --size $PD_SIZE \ --type pd-ssd \ --multi-writer \ --zone $(gcloud config get-value compute/zone) gcloud beta compute disks create datadisk-2 \ --size $PD_SIZE \ --type pd-ssd \ --multi-writer \ --zone $(gcloud config get-value compute/zone) gcloud beta compute disks create datadisk-3 \ --size $PD_SIZE \ --type pd-ssd \ --multi-writer \ --zone $(gcloud config get-value compute/zone)
Pasang disk ke
node-1
:gcloud compute instances attach-disk node-1 --disk datadisk-1 gcloud compute instances attach-disk node-1 --disk datadisk-2 gcloud compute instances attach-disk node-1 --disk datadisk-3
Pasang disk ke
node-2
:gcloud compute instances attach-disk node-2 --disk datadisk-1 gcloud compute instances attach-disk node-2 --disk datadisk-2 gcloud compute instances attach-disk node-2 --disk datadisk-3
Mencadangkan alamat IP cluster
Anda sekarang mencadangkan dua alamat IP statis di VPC Anda. Satu alamat IP digunakan sebagai alamat IP cluster WSFC, dan alamat lainnya digunakan oleh load balancer internal.
Cadangkan IP statis untuk load balancer internal dan ambil alamatnya dalam variabel lingkungan baru bernama
LOADBALANCER_ADDRESS
:gcloud compute addresses create wsfc \ --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \ --subnet $SUBNET_NAME LOADBALANCER_ADDRESS=$(gcloud compute addresses describe wsfc \ --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \ --format=value\(address\)) && \ echo "Load Balancer IP: $LOADBALANCER_ADDRESS"
Catat alamat IP-nya karena Anda akan memerlukannya nanti.
Cadangkan alamat IP statis lainnya yang Anda gunakan sebagai IP cluster: (tidak diperlukan dengan konfigurasi DNN)
gcloud compute addresses create wsfc-cluster \ --subnet $SUBNET_NAME \ --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) && \ CLUSTER_ADDRESS=$(gcloud compute addresses describe wsfc-cluster \ --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \ --format=value\(address\)) && \ echo "Cluster IP: $CLUSTER_ADDRESS"
Catat alamat IP-nya karena Anda akan memerlukannya nanti.
Project dan VPC Anda kini siap untuk men-deploy WSFC dan SQL Server.
Buat berbagi file saksi
Untuk menyiapkan witness
agar berfungsi sebagai saksi berbagi file, buat fitur berbagi file dan beri
diri Anda serta dua node WSFC akses ke berbagi file:
- Hubungkan ke
witness
menggunakan Desktop Jarak Jauh. Login dengan akun pengguna domain Anda. - Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
- Konfirmasi prompt elevasi dengan mengklik Ya.
Buat folder saksi dan bagikan foldernya:
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$
Men-deploy cluster failover
Sekarang Anda menggunakan instance VM untuk men-deploy WSFC dan SQL Server.
Men-deploy WSFC
Sekarang Anda siap membuat cluster failover:
- Hubungkan ke
node-1
menggunakan Desktop Jarak Jauh. Login dengan akun pengguna domain Anda. - Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
- Konfirmasi prompt elevasi dengan mengklik Yes.
Membuat cluster baru:
- Untuk konfigurasi load balancer
New-Cluster ` -Name sql-cluster ` -Node node-1,node-2 ` -NoStorage ` -StaticAddress
CLUSTER_ADDRESS
Ganti
CLUSTER_ADDRESS
dengan alamat IP cluster yang Anda buat sebelumnya.- Untuk konfigurasi DNN
New-Cluster ` -Name sql-cluster ` -Node node-1,node-2 ` -NoStorage ` -ManagementPointNetworkType Distributed
Kembali ke sesi PowerShell di
witness
, lalu berikan izin mengakses fitur berbagi file kepada objek komputer virtual cluster tersebut:icacls C:\QWitness\ /grant 'sql-cluster$:(OI)(CI)(M)' Grant-SmbShareAccess ` -Name QWitness ` -AccountName 'sql-cluster$' ` -AccessRight Full ` -Force
Kembali ke sesi PowerShell di
node-1
, lalu konfigurasikan cluster untuk menggunakan fitur berbagi file diwitness
sebagai kuorum cluster:Set-ClusterQuorum -FileShareWitness \\witness\QWitness
Pastikan bahwa cluster berhasil dibuat:
Test-Cluster
Anda mungkin melihat beberapa peringatan yang dapat diabaikan dengan aman:
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).
Anda juga dapat meluncurkan snap-in MMC Pengelola Cluster Failover untuk meninjau kondisi cluster dengan menjalankan
cluadmin.msc
.Jika Anda menggunakan AD Terkelola, tambahkan akun komputer yang digunakan oleh WSFC ke grup Akun Penggabungan Domain Layanan Cloud agar dapat menggabungkan komputer ke domain:
Add-ADGroupMember ` -Identity "Cloud Service Domain Join Accounts" ` -Members sql-cluster$
Membuat penyimpanan bersama
Sekarang Anda membuat penyimpanan bersama yang menggabungkan tiga persistent disk yang Anda buat sebelumnya, dan menggunakan penyimpanan bersama untuk membuat volume bersama cluster:
- Kembali ke sesi PowerShell di
node-1
. Buat penyimpanan bersama baru yang menggunakan 3 persistent disk:
$NodeName = [System.Net.Dns]::GetHostName() $ClusterDisks = Get-PhysicalDisk -CanPool $True | Where-Object { ($_ | Get-PhysicalDiskStorageNodeView | Select-Object -Property StorageNodeObjectId) -like ('*' + $NodeName + '*') } $Pool = New-StoragePool ` -StorageSubsystemFriendlyName 'Clustered*' ` -FriendlyName FciPool ` -PhysicalDisks $ClusterDisks ` -ResiliencySettingNameDefault Simple ` -Verbose
Di penyimpanan bersama, buat volume baru yang menggunakan versi volume bersama cluster dari ReFS dan ukuran cluster 64 KB:
$Pool | New-Volume ` -FriendlyName FciVolume ` -FileSystem CSVFS_ReFS ` -Size 100GB ` -AllocationUnitSize 65536
Volume akan otomatis muncul di
node-2
karena persistent disk yang mendasarinya terpasang di kedua instance VM.Buka snap-in MMC Pengelola Cluster Failover:
cluadmin.msc
Di panel jendela kiri, buka Pengelola Cluster Failover > sql-cluster > Penyimpanan > Disk.
Klik kanan Disk Virtual Cluster (FciVolume), lalu pilih Hapus Dari Volume Bersama Cluster.
Pilih Disk Virtual Cluster (FciVolume).
Pada tab Volume di bagian bawah, klik kanan volume, lalu pilih Ubah huruf drive.
Pilih huruf drive D, lalu klik OK.
Menguji failover penyimpanan bersama
Secara opsional, kini Anda dapat menguji apakah failover penyimpanan bersama berfungsi dengan baik:
- Hubungkan ke
node-2
menggunakan Desktop Jarak Jauh. Login dengan akun pengguna domain Anda. - Klik kanan tombol Mulai (atau tekan Win+X), lalu pilih Jalankan.
- Masukkan
cluadmin.msc
lalu pilih OK. Di panel jendela kiri, buka Pengelola Cluster Failover > sql-cluster > Penyimpanan > Bersama.
Anda akan melihat kumpulan bernama Cluster Bersama 1 dengan Node pemilik yang ditetapkan ke
node-1
.Kembali ke Cloud Shell, lalu reset VM
node-1
untuk menyimulasikan failover:gcloud compute instances reset node-1
Kembali ke Pengelola Cluster Failover di
node-2
.Amati status penyimpanan bersama dengan menekan F5 berulang kali untuk memuat ulang tampilan.
Setelah sekitar 30 detik, node pemilik akan beralih ke
node-2
secara otomatis.
Menghapus penginstalan SQL Server default
Sekarang Anda menghapus penginstalan SQL Server default dari kedua node dan menggantinya dengan konfigurasi FCI baru.
Untuk masing-masing dari dua node WSFC, node-1
dan node-2
, lakukan langkah-langkah berikut:
- Klik kanan tombol Mulai (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
- Konfirmasi prompt elevasi dengan mengklik Ya.
Hapus instance SQL Server default:
C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
Menghapus Driver OLE Microsoft:
Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
Menghapus Driver ODBC Microsoft:
Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
Mulai ulang komputer:
Restart-Computer
Tunggu sekitar 1 menit sampai proses mulai ulang selesai.
Menginstal FCI SQL Server
Sebelum menginstal konfigurasi FCI baru, pastikan bahwa node-1
adalah
node aktif di cluster:
- Hubungkan kembali ke
node-1
menggunakan Desktop Jarak Jauh dan login menggunakan pengguna domain Anda. - Klik kanan tombol Mulai (atau tekan Win+X), lalu pilih Jalankan.
- Masukkan
cluadmin.msc
lalu pilih OK. Di panel jendela kiri, buka Pengelola Cluster Failover > sql-cluster.
Pastikan bahwa server host saat ini disetel ke
node-1
.Jika server host saat ini disetel ke
node-2
, klik kanan sql-cluster di panel jendela kiri, lalu pilih Tindakan lainnya > Pindahkan resource cluster inti > Pilih node… > node-1 lalu klik OK.Di panel jendela kiri, buka Pengelola Cluster Failover > sql-cluster > Penyimpanan > Bersama.
Pastikan node pemilik Cluster Bersama 1 disetel ke
node-1
.Jika node pemilik disetel ke
node-2
, klik kanan kumpulan tersebut, pilih Pindahkan > Pilih Node > node-1, lalu klik OK.
Sekarang Anda membuat penginstalan cluster failover SQL Server baru di node-1
:
- Klik kanan tombol Mulai (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
- Konfirmasi prompt elevasi dengan mengklik Yes.
Buat akun pengguna domain untuk server SQL dan agen SQL, lalu tetapkan sandi:
$Credential = Get-Credential -UserName sql_server -Message 'Enter password' New-ADUser ` -Name "sql_server" ` -Description "SQL Agent and SQL Admin account." ` -AccountPassword $Credential.Password ` -Enabled $true -PasswordNeverExpires $true
Mulai penyiapan SQL Server:
& c:\sql_server_install\setup.exe
Di menu di sebelah kiri, pilih Penginstalan.
Pilih Penginstalan cluster failover SQL Server baru
Di halaman Edition, centang I have a SQL Server license only dan pilih Next.
Di halaman Persyaratan Lisensi, pelajari persyaratan dan, jika Anda menyetujuinya, pilih Berikutnya.
Di halaman Microsoft Update, pilih Berikutnya untuk memulai penginstalan.
Di halaman Aturan Penginstalan Cluster Failover, Anda akan melihat Peringatan Peringatan verifikasi cluster MSCS dan firewall Windows. Anda dapat mengabaikan peringatan ini dan memilih Berikutnya.
Di halaman Pemilihan Fitur, pilih Layanan Mesin Database, lalu pilih Berikutnya.
Di halaman Konfigurasi Instance, masukkan
sql
sebagai nama jaringan, lalu pilih Berikutnya.Di halaman Grup Resource Cluster, tetap gunakan nilai default dan pilih Berikutnya.
Di halaman Pemilihan Disk Cluster, pilih Disk Virtual Cluster (FciVolume), lalu pilih Berikutnya.
Di halaman Konfigurasi Jaringan Cluster, konfigurasikan setelan berikut, lalu pilih Berikutnya:
- DHCP: kosong
- Alamat IP: masukkan alamat IP load balancer internal.
Di halaman Konfigurasi server, konfigurasikan setelan berikut untuk SQL Server Agent dan SQL Server Database Engine:
- Nama akun:
DOMAIN\sql_server
denganDOMAIN
adalah nama NetBIOS domain Active Directory Anda - Sandi: Masukkan sandi yang Anda buat sebelumnya
- Nama akun:
Pilih tab Kolasi, lalu pilih kolasi yang ingin Anda gunakan. Kemudian klik Berikutnya.
Di halaman Konfigurasi Mesin Database, pilih Tambahkan pengguna saat ini untuk menetapkan pengguna saat ini sebagai administrator SQL Server. Kemudian pilih Berikutnya.
Di halaman Siap Menginstal, tinjau setelan, lalu pilih Instal.
Setelah penginstalan selesai, pilih Tutup.
Sekarang tambahkan node-2
ke cluster failover SQL Server:
- Hubungkan ke
node-2
menggunakan Desktop Jarak Jauh, lalu login menggunakan pengguna domain Anda. - Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
- Konfirmasi prompt elevasi dengan mengklik Ya.
Mulai penyiapan SQL Server:
& c:\sql_server_install\setup.exe
Di menu di sebelah kiri, pilih Penginstalan.
Pilih Tambahkan node ke cluster failover SQL Server.
Ikuti petunjuk wizard penginstalan dan setujui setelan default hingga Anda mencapai halaman Akun Layanan.
Di halaman Akun Layanan, masukkan sandi yang Anda buat sebelumnya untuk SQL Server Agent dan SQL Server Database Engine. Kemudian pilih Berikutnya.
Di halaman Siap Menginstal, tinjau setelan, lalu pilih Instal.
Setelah penginstalan selesai, pilih Tutup.
Mengonfigurasi health check
Sebagai langkah terakhir, konfigurasikan cluster untuk mengekspos endpoint health check yang dapat digunakan oleh load balancer internal:
- Kembali ke sesi PowerShell di
node-2
Lakukan inisialisasi variabel dengan alamat IP load balancer.
$LoadBalancerIP = '
IP_ADDRESS
'Ganti
IP_ADDRESS
dengan alamat IP dari alamatwsfc
yang Anda cadangkan sebelumnya.Konfigurasikan Cluster Failover untuk merespons layanan health check:
$SqlGroup = Get-ClusterGroup | Where-Object {$_.Name.StartsWith("SQL Server")} $SqlIpAddress = Get-ClusterResource | Where-Object {$_.Name.StartsWith("SQL IP Address")} $SqlIpAddress | Set-ClusterParameter -Multiple @{ 'Address'=$LoadBalancerIP; 'ProbePort'= 59997; 'SubnetMask'='255.255.255.255'; 'Network'= (Get-ClusterNetwork).Name; 'EnableDhcp'=0; }
Mulai ulang resource cluster:
$SqlIpAddress | Stop-ClusterResource $SqlIpAddress | Start-ClusterResource
Mulai ulang grup cluster:
$SqlGroup | Stop-ClusterGroup $SqlGroup | Start-ClusterGroup
Membuat load balancer internal
Untuk menyediakan satu endpoint bagi klien SQL Server, Anda sekarang harus men-deploy load balancer internal. Load balancer menggunakan health check yang memastikan bahwa traffic diarahkan ke node aktif WSFC.
- Kembali ke sesi Cloud Shell yang ada.
Buat grup instance tidak terkelola, lalu tambahkan dua node ke grup itu:
gcloud compute instance-groups unmanaged create wsfc-group gcloud compute instance-groups unmanaged add-instances wsfc-group --instances node-1,node-2
Buat health check yang dapat digunakan oleh load balancer untuk memastikan mana yang merupakan node aktif.
gcloud compute health-checks create tcp wsfc-healthcheck \ --check-interval="2s" \ --healthy-threshold=1 \ --unhealthy-threshold=2 \ --port=59997 \ --timeout="1s"
Port pemeriksaan health check
59997
, yaitu port yang sebelumnya Anda konfigurasikan sebagaiProbePort
untuk alamat IP cluster WSFC.Buat layanan backend, lalu tambahkan grup instance:
gcloud compute backend-services create wsfc-backend \ --load-balancing-scheme internal \ --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \ --health-checks wsfc-healthcheck \ --protocol tcp gcloud compute backend-services add-backend wsfc-backend \ --instance-group wsfc-group \ --instance-group-zone $(gcloud config get-value compute/zone) \ --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev)
Buat load balancer internal:
gcloud compute forwarding-rules create wsfc-sql \ --load-balancing-scheme internal \ --address $LOADBALANCER_ADDRESS \ --ports 1433 \ --network $VPC_NAME \ --subnet $SUBNET_NAME \ --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \ --backend-service wsfc-backend
Mengonfigurasi resource DNN dan nama DNS DNN
Serupa dengan load balancer internal, resource DNN bertindak sebagai satu gateway untuk klien SQL Server. Selama failover, cluster akan merutekan traffic ke node FCI SQL Server yang aktif dengan lancar. Klien terhubung ke FCI SQL Server dengan nama DNS.
- Kembali ke sesi PowerShell di
node-1
. Jalankan skrip untuk membuat resource DNN
$DNNResourceName='fci-dnn' $DNN_DNSName='fcidnn' # create the DNN resource Add-ClusterResource -Name $DNNResourceName -ResourceType 'Distributed Network Name' -Group 'SQL Server (MSSQLSERVER)' # set the DNS name of the DNN resource Get-ClusterResource -Name $DNNResourceName | Set-ClusterParameter -Name DnsName -Value $DNN_DNSName # start the DNN resource Start-ClusterResource -Name $DNNResourceName
Mulai ulang
node-1
dannode-2
Menguji cluster failover
Penginstalan cluster failover telah selesai, tetapi Anda masih harus menguji apakah cluster berfungsi dengan benar.
Menyiapkan klien
Buat instance VM baru yang dapat Anda gunakan untuk terhubung dengan cluster failover:
- Kembali ke sesi Cloud Shell yang ada.
Buat instance VM baru:
gcloud compute instances create sqlclient \ --machine-type n2-standard-2 \ --subnet $SUBNET_NAME \ --image-family sql-ent-2022-win-2022 \ --image-project windows-sql-cloud \ --boot-disk-size 50 \ --boot-disk-type pd-ssd
Pantau proses inisialisasi VM dengan melihat output port serialnya:
gcloud compute instances tail-serial-port-output sqlclient
Tunggu sekitar 3 menit hingga Anda melihat penyiapan Instance output selesai, lalu tekan Ctrl+C. Pada tahap ini, instance VM siap digunakan.
Buat nama pengguna dan sandi untuk instance VM.
Hubungkan ke VM menggunakan Desktop Jarak Jauh dan login menggunakan nama pengguna dan sandi yang dibuat di langkah sebelumnya.
Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell (Admin).
Konfirmasi prompt elevasi dengan mengklik Ya.
Gabungkan komputer ke domain Active Directory Anda:
Add-Computer -Domain
DOMAIN
Ganti
DOMAIN
dengan nama DNS domain Active Directory Anda.Mulai ulang komputer:
Restart-Computer
Tunggu sekitar 1 menit sampai proses mulai ulang selesai.
Menjalankan pengujian
Gunakan VM sqlclient
untuk menguji apakah Anda dapat terhubung dengan cluster failover dan
untuk memastikan bahwa failover berfungsi dengan benar:
- Hubungkan ke
sqlclient
menggunakan Desktop Jarak Jauh, lalu login menggunakan pengguna domain Anda. - Klik kanan tombol Start (atau tekan Win+X), lalu klik Windows PowerShell.
Hubungkan ke cluster SQL Server menggunakan nama jaringannya
sql
, lalu buat kueri tabeldm_os_cluster_nodes
:& "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" ` -S
SQL_SERVER_NAME
-E -Q "SELECT * FROM sys.dm_os_cluster_nodes"Ganti
SQL_SERVER_NAME
dengansql
untuk konfigurasi load balancer ataufcidnn
untuk konfigurasi DNN.Output-nya akan terlihat seperti ini:
NodeName status status_description is_current_owner ------------------------------ ----------- ------------------ ---------------- NODE-1 0 up 1 NODE-2 0 up 0 (2 rows affected)
Perhatikan bahwa
node-1
adalah pemilik resource cluster failover SQL Server saat ini.Kembali ke Cloud Shell, lalu turunkan VM node-1 untuk menguji skenario failover.
gcloud compute instances stop node-1
Ulangi kueri:
& "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" ` -S
SQL_SERVER_NAME
-E -Q "SELECT * FROM sys.dm_os_cluster_nodes"Ganti
SQL_SERVER_NAME
dengansql
untuk konfigurasi load balancer ataufcidnn
untuk konfigurasi DNN.Output Anda sekarang akan terlihat seperti ini:
NodeName status status_description is_current_owner ------------------------------ ----------- ------------------ ---------------- NODE-1 1 down 0 NODE-2 0 up 1 (2 rows affected)
Perhatikan bahwa meskipun
node-1
hilang, kueri berhasil, dan menunjukkan bahwanode-2
sekarang menjadi pemilik cluster failover saat ini.
Pembersihan
Setelah menyelesaikan tutorial, Anda dapat membersihkan resource yang dibuat agar resource tersebut berhenti menggunakan kuota dan dikenai biaya. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
Untuk menghapus project:
- In the Google 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.
Langkah berikutnya
- Baca selengkapnya tentang persistent disk dalam mode multi-writer.
- Pelajari cara mengonfigurasi instance cluster failover SQL Server yang menggunakan Storage Spaces Direct.