Bagikan melalui


Mengonfigurasi grup ketersediaan grup kerja

Berlaku untuk: SQL Server di Azure VM

Artikel ini menjelaskan langkah-langkah yang diperlukan untuk membuat kluster independen domain Active Directory dengan grup ketersediaan Always On; ini juga dikenal sebagai kluster grup kerja. Artikel ini berfokus pada langkah-langkah yang relevan dengan mempersiapkan dan mengonfigurasi grup kerja dan grup ketersediaan, dan menerangkan langkah-langkah yang tercakup dalam artikel lain, seperti cara membuat kluster, atau menyebarkan grup ketersediaan.

Prasyarat

Untuk mengonfigurasi grup ketersediaan grup kerja, Anda memerlukan hal-hal berikut ini:

  • Setidaknya dua mesin virtual Windows Server 2016 (atau lebih tinggi) yang menjalankan SQL Server 2016 (atau lebih tinggi), disebarkan ke kumpulan ketersediaan yang sama, atau zona ketersediaan yang berbeda, menggunakan alamat IP statis.
  • Jaringan lokal dengan minimal 4 alamat IP gratis pada subnet.
  • Akun pada setiap mesin di grup administrator yang juga memiliki hak sysadmin dalam SQL Server.
  • Port terbuka: TCP 1433, TCP 5022, TCP 59999.

Sebagai referensi, parameter berikut digunakan dalam artikel ini, tetapi dapat dimodifikasi sebagaimana diperlukan:

Nama Parameter
Node1 AGNode1 (10.0.0.4)
Node2 AGNode2 (10.0.0.5)
Nama kluster AGWGAG (10.0.0.6)
Listener AGListener (10.0.0.7)
Akhiran DNS ag.wgcluster.example.com
Nama grup kerja Grup AGWorkgroup

Set akhiran DNS

Dalam langkah ini, konfigurasikan akhiran DNS untuk kedua server. Contohnya,ag.wgcluster.example.com. Dengan hal ini, Anda dapat menggunakan nama objek yang ingin disambungkan sebagai alamat yang sepenuhnya memenuhi syarat dalam jaringan Anda, seperti AGNode1.ag.wgcluster.example.com.

Untuk mengonfigurasi akhiran DNS, ikuti langkah-langkah berikut:

  1. Lakukan RDP di simpul pertama Anda dan buka Manajer Server.

  2. Pilih Server Lokal lalu pilih nama komputer virtual Anda di bagian Nama komputer.

  3. Pilih Ubah... di bagian Untuk mengganti nama komputer ini....

  4. Ubah nama grup kerja menjadi sesuatu yang bermakna, seperti AGWORKGROUP:

    Mengubah nama grup kerja

  5. Pilih Lainnya... untuk membuka kotak dialog Akhiran DNS dan Nama Komputer NetBIOS.

  6. Ketikkan nama akhiran DNS Anda di bagian Akhiran DNS primer komputer ini, seperti ag.wgcluster.example.com lalu pilih OK:

    Cuplikan layar memperlihatkan kotak dialog Akhiran D N S dan Nama Komputer NetBIOS tempat Anda bisa memasukkan nilai.

  7. Konfirmasikan bahwa nama komputer lengkap sekarang memperlihatkan akhiran DNS, lalu pilih OK untuk menyimpan perubahan Anda:

    Cuplikan layar menunjukkan tempat untuk melihat nama Komputer lengkap Anda.

  8. Mulai ulang server ketika Anda diminta untuk melakukannya.

  9. Ulangi langkah-langkah ini pada simpul lain yang akan digunakan untuk grup ketersediaan.

Mengedit file host

Karena tidak ada direktori aktif, tidak ada cara untuk mengautentikasi koneksi Windows. Dengan demikian, tetapkan kepercayaan dengan mengedit file host dengan editor teks.

Untuk mengedit file host, ikuti langkah-langkah berikut:

  1. RDP ke mesin virtual Anda.

  2. Gunakan File Explorer untuk masuk ke c:\windows\system32\drivers\etc.

  3. Klik kanan file host dan buka file dengan Notepad (atau editor teks lainnya).

  4. Di akhir file, tambahkan entri untuk setiap simpul, grup ketersediaan, dan listener dalam bentuk IP Address, DNS Suffix #comment seperti:

    10.0.0.4 AGNode1.ag.wgcluster.example.com #Availability group node
    10.0.0.5 AGNode2.ag.wgcluster.example.com #Availability group node
    10.0.0.6 AGWGAG.ag.wgcluster.example.com #Cluster IP
    10.0.0.7 AGListener.ag.wgcluster.example.com #Listener IP
    

    Menambahkan entri untuk alamat IP, kluster, dan listener ke file host

Mengatur izin

Karena tidak ada Direktori Aktif untuk mengelola izin, Anda perlu secara manual mengizinkan akun administrator lokal non-bawaan untuk membuat kluster.

Untuk melakukannya, jalankan cmdlet PowerShell berikut dalam sesi PowerShell administratif pada setiap simpul:


new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1

Membuat kluster failover

Dalam langkah ini, Anda akan membuat kluster failover. Jika Anda tidak terbiasa dengan langkah-langkah ini, Anda dapat mengikutinya dari tutorial kluster failover.

Perbedaan penting antara tutorial dan hal yang harus dilakukan untuk kluster grup kerja:

  • Hapus centang Penyimpanan, dan Ruang Penyimpanan Langsung saat menjalankan validasi kluster.
  • Saat menambahkan simpul ke kluster, tambahkan nama yang sepenuhnya memenuhi syarat, seperti:
    • AGNode1.ag.wgcluster.example.com
    • AGNode2.ag.wgcluster.example.com
  • Kosongkan kotak centang Tambahkan semua penyimpanan yang memenuhi syarat ke kluster.

Setelah kluster dibuat, tetapkan alamat IP Kluster statis. Untuk melakukannya, ikuti langkah-langkah berikut:

  1. Di salah satu simpul, buka Manajer Kluster Failover, pilih kluster, klik kanan Nama: <ClusterNam> di bagian Sumber Daya Inti Kluster lalu pilih Properti.

    Luncurkan properti untuk nama kluster

  2. Pilih alamat IP di bawah Alamat IP dan pilih Edit.

  3. Pilih Gunakan Statis, berikan alamat IP kluster, lalu pilih OK:

    Menyediakan alamat IP statis untuk kluster

  4. Pastikan bahwa pengaturan Anda terlihat benar, lalu pilih OK untuk menyimpannya:

    Verifikasi properti kluster

Membuat bukti cloud

Dalam langkah ini, konfigurasikan bukti berbagi cloud. Jika Anda tidak terbiasa dengan langkah-langkahnya, lihat Menyebarkan Saksi Cloud untuk Kluster Failover.

Aktifkan fitur grup ketersediaan

Dalam langkah ini, aktifkan fitur grup ketersediaan. Jika Anda tidak terbiasa dengan langkah-langkahnya, lihat tutorial grup ketersediaan.

Membuat kunci dan sertifikat

Dalam langkah ini, buat sertifikat yang digunakan login SQL pada titik akhir terenkripsi. Buat folder pada setiap simpul untuk menahan cadangan sertifikat, seperti c:\certs.

Catatan

Jika Anda tidak menentukan tanggal kedaluwarsa untuk sertifikat, validitasnya akan menjadi satu tahun sejak tanggal pembuatan. Jika sertifikat kedaluwarsa, koneksi antar titik akhir akan gagal.

Untuk mengonfigurasi simpul pertama, ikuti langkah-langkah berikut:

  1. Buka SQL Server Management Studio dan sambungkan ke simpul pertama Anda, seperti AGNode1.

  2. Buka jendela Kueri Baru dan jalankan pernyataan T-SQL berikut setelah memperbarui ke kata sandi yang kompleks dan aman:

    USE master;  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'PassWOrd123!';  
    GO
    
    --create a cert from the master key
    USE master;  
    CREATE CERTIFICATE AGNode1Cert   
       WITH SUBJECT = 'AGNode1 Certificate';  
    GO  
    
    --Backup the cert and transfer it to AGNode2
    BACKUP CERTIFICATE AGNode1Cert TO FILE = 'C:\certs\AGNode1Cert.crt';  
    GO  
    
  3. Selanjutnya, buat titik akhir HADR, dan gunakan sertifikat untuk autentikasi dengan menjalankan pernyataan T-SQL ini:

    --CREATE or ALTER the mirroring endpoint
    CREATE ENDPOINT hadr_endpoint  
       STATE = STARTED  
       AS TCP (  
          LISTENER_PORT=5022  
          , LISTENER_IP = ALL  
       )   
       FOR DATABASE_MIRRORING (   
          AUTHENTICATION = CERTIFICATE AGNode1Cert  
          , ENCRYPTION = REQUIRED ALGORITHM AES  
          , ROLE = ALL  
       );  
    GO  
    
  4. Gunakan File Explorer untuk masuk ke lokasi file tempat sertifikat Anda berada, seperti c:\certs.

  5. Buat salinan sertifikat secara manual, seperti AGNode1Cert.crt, dari simpul pertama, dan transfer ke lokasi yang sama pada simpul kedua.

Untuk mengonfigurasi simpul kedua, ikuti langkah-langkah berikut:

  1. Sambungkan ke simpul kedua dengan SQL Server Management Studio, seperti AGNode2.

  2. Buka jendela Kueri Baru dan jalankan pernyataan Transact-SQL (T-SQL) berikut setelah memperbarui ke kata sandi yang kompleks dan aman:

    USE master;  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'PassWOrd123!';  
    GO 
    
    --create a cert from the master key
    USE master;  
    CREATE CERTIFICATE AGNode2Cert   
       WITH SUBJECT = 'AGNode2 Certificate';  
    GO  
    --Backup the cert and transfer it to AGNode1
    BACKUP CERTIFICATE AGNode2Cert TO FILE = 'C:\certs\AGNode2Cert.crt';  
    GO
    
  3. Selanjutnya, buat titik akhir HADR, dan gunakan sertifikat untuk autentikasi dengan menjalankan pernyataan T-SQL ini:

    --CREATE or ALTER the mirroring endpoint
    CREATE ENDPOINT hadr_endpoint  
       STATE = STARTED  
       AS TCP (  
          LISTENER_PORT=5022  
          , LISTENER_IP = ALL  
       )   
       FOR DATABASE_MIRRORING (   
          AUTHENTICATION = CERTIFICATE AGNode2Cert  
          , ENCRYPTION = REQUIRED ALGORITHM AES  
          , ROLE = ALL  
       );  
    GO  
    
  4. Gunakan File Explorer untuk masuk ke lokasi file tempat sertifikat Anda berada, seperti c:\certs.

  5. Buat salinan sertifikat secara manual, seperti AGNode2Cert.crt, dari salinan kedua, dan transfer ke lokasi yang sama pada salinan pertama.

Jika ada salinan lain dalam kluster, ulangi langkah-langkah ini di sana juga, memodifikasi nama sertifikat masing-masing.

Membuat info masuk

Autentikasi sertifikat digunakan untuk menyinkronkan data di seluruh simpul. Untuk mengizinkan ini, buat login untuk simpul lain, buat pengguna untuk masuk, buat sertifikat untuk masuk untuk menggunakan sertifikat yang dicadangkan, dan kemudian beri koneksi pada titik akhir pencerminan.

Untuk melakukannya, pertama-tama jalankan kueri T-SQL berikut pada simpul pertama, seperti AGNode1:

--create a login for the AGNode2
USE master;  
CREATE LOGIN AGNode2_Login WITH PASSWORD = 'PassWord123!';  
GO  

--create a user from the login
CREATE USER AGNode2_User FOR LOGIN AGNode2_Login;  
GO  

--create a certificate that the login uses for authentication
CREATE CERTIFICATE AGNode2Cert  
   AUTHORIZATION AGNode2_User  
   FROM FILE = 'C:\certs\AGNode2Cert.crt'  
GO 

--grant connect for login
GRANT CONNECT ON ENDPOINT::hadr_endpoint TO [AGNode2_login];  
GO

Selanjutnya, jalankan kueri T-SQL berikut pada simpul kedua, seperti AGNode2:

--create a login for the AGNode1
USE master;  
CREATE LOGIN AGNode1_Login WITH PASSWORD = 'PassWord123!';  
GO  

--create a user from the login
CREATE USER AGNode1_User FOR LOGIN AGNode1_Login;  
GO  

--create a certificate that the login uses for authentication
CREATE CERTIFICATE AGNode1Cert  
   AUTHORIZATION AGNode1_User  
   FROM FILE = 'C:\certs\AGNode1Cert.crt'  
GO 

--grant connect for login
GRANT CONNECT ON ENDPOINT::hadr_endpoint TO [AGNode1_login];  
GO

Jika ada simpul lain dalam kluster, ulangi langkah-langkah ini di sana juga, memodifikasi nama sertifikat masing-masing.

Mengonfigurasi grup ketersediaan

Dalam langkah ini, konfigurasikan grup ketersediaan Anda, dan tambahkan database Anda ke dalamnya. Jangan membuat listener pada saat ini. Jika Anda tidak terbiasa dengan langkah-langkahnya, lihat tutorial grup ketersediaan. Pastikan untuk memulai failover dan failback untuk memverifikasi bahwa semuanya berfungsi sebagaimana mestinya.

Catatan

Jika ada kegagalan selama proses sinkronisasi, Anda mungkin perlu memberikan hak NT AUTHORITY\SYSTEM sysadmin untuk membuat sumber daya kluster pada simpul pertama, seperti AGNode1 secara sementara.

Mengonfigurasi load balancer

Dalam langkah terakhir ini, konfigurasikan penyeimbang muatan menggunakan portal Microsoft Azure atau PowerShell.

Namun, mungkin ada beberapa batasan saat menggunakan GUI Kluster Windows, dan dengan demikian, Anda harus menggunakan PowerShell untuk membuat titik akses klien atau nama jaringan untuk pendengar Anda dengan contoh skrip berikut:

Add-ClusterResource -Name "IPAddress1" -ResourceType "IP Address" -Group "WGAG" 
Get-ClusterResource -Name IPAddress1 | Set-ClusterParameter -Multiple @{"Network" = "Cluster Network 1";"Address" = "10.0.0.4";"SubnetMask" = "255.0.0.0";"EnableDHCP" = 0} 
Add-ClusterResource -Name "IPAddress2" -ResourceType "IP Address" -Group "WGAG" 
Get-ClusterResource -Name IPAddress2 | Set-ClusterParameter -Multiple @{"Network" = "Cluster Network 2";"Address" = "10.0.0.5";"SubnetMask" = "255.0.0.0";"EnableDHCP" = 0} 
Add-ClusterResource -Name "TestName" -Group "WGAG" -ResourceType "Network Name" 
Get-ClusterResource -Name "TestName" | Set-ClusterParameter -Multiple @{"DnsName" = "TestName";"RegisterAllProvidersIP" = 1} 
Set-ClusterResourceDependency -Resource TestName -Dependency "[IPAddress1] or [IPAddress2]" 
Start-ClusterResource -Name TestName -Verbose 

Langkah berikutnya

Setelah grup ketersediaan disebarkan, pertimbangkan untuk mengoptimalkan pengaturan HADR untuk SQL Server di Azure VM.

Untuk mempelajari selengkapnya, lihat: