Mengonfigurasi Listener DNN untuk grup ketersediaan
Berlaku untuk:SQL Server di Azure VM
Tip
Ada banyak metode untuk menyebarkan grup ketersediaan. Sederhanakan penyebaran Anda dan hilangkan kebutuhan akan Azure Load Balancer atau nama jaringan terdistribusi (DNN) untuk grup ketersediaan AlwaysOn Anda dengan membuat komputer virtual (VM) SQL Server Anda di beberapa subnet dalam jaringan virtual Azure yang sama. Jika Anda telah membuat grup ketersediaan dalam satu subnet, Anda dapat memigrasikannya ke lingkungan multi-subnet.
Dengan SQL Server pada komputer virtual Azure di subnet tunggal, nama jaringan terdistribusi (DNN) merutekan lalu lintas ke sumber daya kluster yang sesuai. Proses ini menyediakan cara yang lebih mudah untuk terhubung ke grup ketersediaan Always On (AG) daripada pendengar nama jaringan virtual (VNN), tanpa perlu Azure Load Balancer.
Artikel ini mengajarkan Anda untuk mengonfigurasi pendengar DNN untuk mengganti pendengar VNN dan merutekan lalu lintas ke grup ketersediaan Anda dengan SQL Server di Komputer Virtual Azure untuk ketersediaan tinggi dan pemulihan bencana (HADR).
Untuk opsi konektivitas alternatif, pertimbangkan pendengar VNN dan Azure Load Balancer sebagai gantinya.
Gambaran Umum
Pendengar nama jaringan terdistribusi (DNN) menggantikan pendengar grup ketersediaan nama jaringan virtual tradisional (VNN) ketika digunakan dengan grup ketersediaan Always On pada komputer virtual SQL Server. Hal ini meniadakan kebutuhan akan lalu lintas perutean Azure Load Balancer, menyederhanakan penyebaran, pemeliharaan, dan mengatasi kegagalan.
Gunakan pendengar DNN untuk mengganti pendengar VNN yang ada, atau sebagai alternatif, gunakan bersama dengan pendengar VNN yang ada sehingga grup ketersediaan Anda memiliki dua titik koneksi yang berbeda - satu menggunakan nama pendengar VNN (dan port jika non-default), dan satu menggunakan nama pendengar dan port DNN.
Perhatian
Perilaku perutean saat menggunakan DNN berbeda dengan saat menggunakan VNN. Jangan gunakan port 1433. Untuk mempelajari lebih lanjut, lihat bagian Pertimbangan port nanti di artikel ini.
Prasyarat
Sebelum Anda menyelesaikan langkah-langkah dalam artikel ini, Anda harus sudah:
- SQL Server yang dimulai dengan SQL Server 2019 CU8 dan yang lebih baru, SQL Server 2017 CU25 dan yang lebih baru, atau SQL Server 2016 SP3 dan yang lebih baru di Windows Server 2016 dan yang lebih baru.
- Memutuskan bahwa nama jaringan terdistribusi adalah opsi konektivitas untuk solusi HADR Anda yang sesuai.
- Mengonfigurasi grup ketersediaan Selalu Hidup Anda.
- Memasang versi terbaru dari PowerShell.
- Mengidentifikasi port unik yang akan Anda gunakan untuk pendengar DNN. Port yang digunakan untuk pendengar DNN harus unik di semua replika grup ketersediaan atau instans kluster failover. Tak ada koneksi lain yang bisa membagi-pakai port yang sama.
Membuat skrip
Gunakan PowerShell untuk membuat sumber daya nama jaringan terdistribusi (DNN) dan mengaitkannya dengan grup ketersediaan Anda.
Untuk melakukannya, ikuti langkah berikut:
Buka editor teks, seperti Notepad.
Salin dan tempel skrip berikut ini:
param ( [Parameter(Mandatory=$true)][string]$Ag, [Parameter(Mandatory=$true)][string]$Dns, [Parameter(Mandatory=$true)][string]$Port ) Write-Host "Add a DNN listener for availability group $Ag with DNS name $Dns and port $Port" $ErrorActionPreference = "Stop" # 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 $Dep = Get-ClusterResourceDependency -Resource $Ag if ( $Dep.DependencyExpression -match '\s*\((.*)\)\s*' ) { $DepStr = "$($Matches.1) or [$Port]" } else { $DepStr = "[$Port]" } Write-Host "$DepStr" # add the Dependency from availability group resource to the DNN resource Set-ClusterResourceDependency -Resource $Ag -Dependency "$DepStr" #bounce the AG resource Stop-ClusterResource -Name $Ag Start-ClusterResource -Name $Ag
Simpan skrip sebagai file
.ps1
, sepertiadd_dnn_listener.ps1
.
Jalankan Skrip
Untuk membuat pendengar DNN, jalankan skrip yang meneruskan parameter untuk nama grup ketersediaan, nama pendengar, dan port.
Misalnya, dengan asumsi nama grup ketersediaan ag1
, nama pendengar dnnlsnr
, dan port pendengar sebagai 6789
, ikuti langkah-langkah berikut:
Buka alat antarmuka baris perintah, seperti perintah atau PowerShell.
Arahkan ke tempat Anda menyimpan skrip
.ps1
, seperti c:\Documents.Jalankan skrip:
add_dnn_listener.ps1 <ag name> <listener-name> <listener port>
. Misalnya:c:\Documents> .\add_dnn_listener.ps1 ag1 dnnlsnr 6789
Memverifikasi pendengar
Gunakan SQL Server Management Studio atau TSQL untuk mengonfirmasi bahwa pendengar DNN Anda berhasil dibuat.
SQL Server Management Studio
Perluas Pendengar Grup Ketersediaan di SQL Server Management Studio (SSMS) untuk melihat pendengar DNN Anda:
T-SQL
Gunakan T-SQL untuk melihat status pendengar DNN:
SELECT * FROM SYS.AVAILABILITY_GROUP_LISTENERS
Nilai 1
untuk is_distributed_network_name
menunjukkan pendengar adalah pendengar nama jaringan terdistribusi (DNN):
Perbarui string koneksi
Perbarui string koneksi untuk aplikasi apa pun yang perlu terhubung ke pendengar DNN. String koneksi ke pendengar DNN harus memberikan nomor port DNN, dan menentukan MultiSubnetFailover=True
dalam string koneksi. Jika klien SQL tidak mendukung parameter MultiSubnetFailover=True
, klien tersebut tidak kompatibel dengan pendengar DNN.
Berikut ini adalah contoh string koneksi untuk nama pendengar DNN_Listener dan port 6789:
DataSource=DNN_Listener,6789;MultiSubnetFailover=True
Pengujian failover
Uji kegagalan grup ketersediaan untuk memastikan fungsionalitas.
Untuk menguji kegagalan, ikuti langkah-langkah berikut:
- Sambungkan ke pendengar DNN atau salah satu replika dengan menggunakan SQL Server Management Studio (SSMS).
- Perluas Grup Ketersediaan Always On di Object Explorer.
- Klik kanan grup ketersediaan dan pilih Failover untuk membuka Wizard Failover.
- Ikuti perintah untuk memilih target kegagalan dan gagalkan grup ketersediaan ke replika sekunder.
- Konfirmasikan bahwa database dalam keadaan tersinkronkan pada replika utama baru.
- (Opsional) Fail back replika primer asli, atau sekunder lainnya.
Uji konektivitas
Uji konektivitas ke pendengar DNN Anda dengan langkah-langkah berikut:
- Buka SQL Server Management Studio.
- Sambungkan ke pendengar DNN Anda.
- Buka jendela kueri baru dan periksa replika mana yang tersambung dengan Anda dengan menjalankan
SELECT @@SERVERNAME
. - Gagalkan grup ketersediaan ke replika lain.
- Setelah jumlah waktu yang wajar, jalankan
SELECT @@SERVERNAME
untuk mengonfirmasi grup ketersediaan Anda sekarang dihosting di replika lain.
Pembatasan
- Pendengar DNN HARUS dikonfigurasi dengan port unik. Porta tak bisa dibagi-pakai dengan sambungan lainnya pada replika apapun.
- Klien yang terhubung ke pendengar DNN harus mendukung parameter
MultiSubnetFailover=True
dalam string koneksi. - Mungkin ada pertimbangan tambahan ketika Anda bekerja dengan fitur SQL Server lain dan grup ketersediaan dengan DNN. Untuk informasi selengkapnya, lihat Grup ketersediaan dengan interoperabilitas DNN.
Pertimbangan port
Pendengar DNN dirancang untuk mendengarkan semua alamat IP, kecuali port tertentu yang unik. Entri DNS untuk nama pendengar harus diatasi ke alamat semua replika dalam grup ketersediaan. Proses ini dilakukan secara otomatis dengan skrip PowerShell yang disediakan di bagian Buat Skrip. Karena pendengar DNN menerima koneksi di semua alamat IP, sangat penting untuk membuat port pendengar yang unik, dan tidak digunakan oleh replika lain dalam grup ketersediaan. Karena SQL Server mendengarkan di port 1433 secara default, baik secara langsung maupun melalui layanan SQL Browser, port 1433 sangat tidak dianjurkan untuk digunakan bagi pendengar DNN.
Jika port pendengar yang dipilih untuk pendengar VNN adalah antara 49.152 dan 65.536 ( rentang port dinamis default untuk TCP/IP, tambahkan pengecualian untuk ini. Melakukan hal tersebut akan mencegah sistem lain secara dinamis ditugaskan port yang sama.
Anda dapat menambahkan pengecualian port dengan perintah berikut: netsh int ipv4 add excludedportrange tcp startport=<Listener Port> numberofports=1 store=persistent
Langkah berikutnya
Setelah grup ketersediaan disebarkan, pertimbangkan untuk mengoptimalkan pengaturan HADR untuk SQL Server di Azure VM.
Untuk mempelajari selengkapnya, lihat:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk