Bagikan melalui


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. 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:

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:

  1. Buka editor teks, seperti Notepad.

  2. 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 $Ag
    
  3. Simpan skrip sebagai file .ps1, seperti add_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:

  1. Buka alat antarmuka baris perintah, seperti perintah atau PowerShell.

  2. Arahkan ke tempat Anda menyimpan skrip .ps1, seperti c:\Documents.

  3. 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:

Lihat listener DNN pada listener grup ketersediaan di SQL Server Management Studio (SSMS)

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):

Gunakan sys.availability_group_listeners untuk mengidentifikasi listener DNN yang memiliki nilai 1 dalam is_distributed_network_name

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:

  1. Sambungkan ke pendengar DNN atau salah satu replika dengan menggunakan SQL Server Management Studio (SSMS).
  2. Perluas Grup Ketersediaan Always On di Object Explorer.
  3. Klik kanan grup ketersediaan dan pilih Failover untuk membuka Wizard Failover.
  4. Ikuti perintah untuk memilih target kegagalan dan gagalkan grup ketersediaan ke replika sekunder.
  5. Konfirmasikan bahwa database dalam keadaan tersinkronkan pada replika utama baru.
  6. (Opsional) Fail back replika primer asli, atau sekunder lainnya.

Uji konektivitas

Uji konektivitas ke pendengar DNN Anda dengan langkah-langkah berikut:

  1. Buka SQL Server Management Studio.
  2. Sambungkan ke pendengar DNN Anda.
  3. Buka jendela kueri baru dan periksa replika mana yang tersambung dengan Anda dengan menjalankan SELECT @@SERVERNAME.
  4. Gagalkan grup ketersediaan ke replika lain.
  5. Setelah jumlah waktu yang wajar, jalankan SELECT @@SERVERNAME untuk 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=True dalam 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