Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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. Konfigurasi ini menghilangkan kebutuhan akan penggunaan Azure Load Balancer untuk merutekan lalu lintas, yang menyederhanakan penyebaran, mempermudah pemeliharaan, dan meningkatkan proses failover.
Gunakan pendengar DNN untuk menggantikan pendengar VNN yang ada. Atau, 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 dan port pendengar 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 ingin 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.
Catatan
Setiap grup ketersediaan atau instans kluster failover pada kluster yang sama memerlukan titik koneksi independennya sendiri, baik itu pendengar VNN atau pendengar DNN.
Membuat skrip
Gunakan PowerShell untuk membuat sumber daya nama jaringan terdistribusi (DNN) dan mengaitkannya dengan grup ketersediaan Anda.
Untuk melakukannya, ikuti langkah-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" # restart the AG resource Stop-ClusterResource -Name $Ag Start-ClusterResource -Name $AgSimpan 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>. Contohnya: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:
Transact-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 MultiSubnetFailover=True parameter , maka 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
Menguji 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 @@SERVERNAMEuntuk mengonfirmasi grup ketersediaan Anda sekarang dihosting di replika lain.
Batasan
- Pendengar DNN HARUS dikonfigurasi dengan port unik. Port tidak dapat dibagikan dengan koneksi lain pada replika apa pun.
- Klien yang terhubung ke pendengar DNN harus mendukung parameter
MultiSubnetFailover=Truedalam string koneksi. - Mungkin ada lebih banyak pertimbangan saat Anda bekerja dengan fitur SQL Server lainnya 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 sistem nama domain (DNS) untuk listener harus diarahkan ke alamat semua replika yang ada dalam grup ketersediaan. Konfigurasi ini dilakukan secara otomatis dengan skrip PowerShell yang disediakan di bagian Buat Skrip . Karena pendengar DNN menerima koneksi di semua alamat IP, sangat penting agar port pendengar adalah 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 port ini. Dengan demikian mencegah sistem lain mendapat penugasan dinamis ke port yang sama.
Anda dapat menambahkan pengecualian port dengan perintah berikut: netsh int ipv4 add excludedportrange tcp startport=<Listener Port> numberofports=1 store=persistent