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:

Membuat skrip

Gunakan PowerShell untuk membuat sumber daya nama jaringan terdistribusi (DNN) dan mengaitkannya dengan grup ketersediaan Anda.

Untuk melakukannya, ikuti 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"
    
    
    #bounce 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>. 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:

View the DNN listener under availability group listeners in SQL Server Management Studio (SSMS)

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

Use sys.availability_group_listeners to identify DNN listeners that have a value of 1 in 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 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:

  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.

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: