Kullanılabilirlik grubu için DNN dinleyicisi yapılandırma

Şunlar için geçerlidir:Azure VM'de SQL Server

Bahşiş

Kullanılabilirlik grubu dağıtmak için birçok yöntem vardır. Dağıtımınızı basitleştirin ve aynı Azure sanal ağı içindeki birden çok alt ağda SQL Server sanal makinelerinizi (VM' ler) oluşturarak Always On kullanılabilirlik grubunuz için Azure Load Balancer veya dağıtılmış ağ adı (DNN) gereksinimini ortadan kaldırın. Kullanılabilirlik grubunuzu zaten tek bir alt ağda oluşturduysanız, bunu çok alt ağlı bir ortama geçirebilirsiniz.

Tek bir alt ağdaki Azure VM'lerinde SQL Server ile, dağıtılmış ağ adı (DNN) trafiği uygun kümelenmiş kaynağa yönlendirir. Azure Load Balancer'a gerek kalmadan Always On kullanılabilirlik grubuna (AG) bağlanmak için sanal ağ adı (VNN) dinleyicisinden daha kolay bir yol sağlar.

Bu makalede, yüksek kullanılabilirlik ve olağanüstü durum kurtarma (HADR) için VNN dinleyicisini değiştirmek ve trafiği Azure VM'lerinde SQL Server ile kullanılabilirlik grubunuzla yönlendirmek için bir DNN dinleyicisi yapılandırmayı öğretir.

Alternatif bağlantı seçeneği için bunun yerine bir VNN dinleyicisi ve Azure Load Balancer kullanmayı göz önünde bulundurun.

Genel Bakış

Dağıtılmış ağ adı (DNN) dinleyicisi, SQL Server VM'lerinde Always On kullanılabilirlik gruplarıyla kullanıldığında geleneksel sanal ağ adı (VNN) kullanılabilirlik grubu dinleyicisinin yerini alır. Bu, Azure Load Balancer'ın trafiği yönlendirmesi, dağıtımı, bakımı basitleştirmesi ve yük devretmeyi iyileştirmesi gereksinimini azaltır.

Mevcut bir VNN dinleyicisini değiştirmek için DNN dinleyicisini kullanın veya alternatif olarak, kullanılabilirlik grubunuzun biri VNN dinleyici adını (ve varsayılan değilse bağlantı noktasını) ve biri DNN dinleyici adını ve bağlantı noktasını kullanan olmak üzere iki ayrı bağlantı noktası olması için bunu mevcut bir VNN dinleyicisiyle birlikte kullanın.

Dikkat

DNN kullanırken yönlendirme davranışı, VNN kullanılırken farklılık gösterir. 1433 numaralı bağlantı noktasını kullanmayın. Daha fazla bilgi edinmek için bu makalenin devamında bağlantı noktasıyla ilgili dikkat edilmesi gerekenler bölümüne bakın.

Önkoşullar

Bu makaledeki adımları tamamlamadan önce şunlara sahip olmanız gerekir:

  • SQL Server 2019 CU8 ve üzeri, SQL Server 2017 CU25 ve üzeri veya Windows Server 2016 ve sonraki sürümlerde SQL Server 2016 SP3 ve üzeri ile başlayan SQL Server.
  • Dağıtılmış ağ adının HADR çözümünüz için uygun bağlantı seçeneği olduğuna karar verdi.
  • Always On kullanılabilirlik grubunuzu yapılandırdı.
  • PowerShell'in en son sürümü yüklendi.
  • DNN dinleyicisi için kullanacağınız benzersiz bağlantı noktasını tanımladı. DNN dinleyicisi için kullanılan bağlantı noktası, kullanılabilirlik grubunun veya yük devretme kümesi örneğinin tüm çoğaltmalarında benzersiz olmalıdır. Başka hiçbir bağlantı aynı bağlantı noktasını paylaşamıyor.

Betik oluşturma

PowerShell'i kullanarak dağıtılmış ağ adı (DNN) kaynağını oluşturun ve kullanılabilirlik grubunuzla ilişkilendirin.

Bunu yapmak için aşağıdaki adımları izleyin:

  1. Not Defteri gibi bir metin düzenleyici açın.

  2. Aşağıdaki betiği kopyalayıp yapıştırın:

    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. Betiği gibi bir .ps1 dosya olarak add_dnn_listener.ps1kaydedin.

Betiği yürütme

DNN dinleyicisini oluşturmak için kullanılabilirlik grubunun adı, dinleyici adı ve bağlantı noktası için parametreleri geçiren betiği yürütür.

Örneğin, kullanılabilirlik grubu adı ag1olarak , dinleyici adı dnnlsnrve dinleyici bağlantı noktası olarak 6789varsayarsak şu adımları izleyin:

  1. Komut istemi veya PowerShell gibi bir komut satırı arabirim aracı açın.

  2. Betiği kaydettiğiniz .ps1 yere gidin, örneğin c:\Documents.

  3. Betiği add_dnn_listener.ps1 <ag name> <listener-name> <listener port>yürüt: . Örnek:

    c:\Documents> .\add_dnn_listener.ps1 ag1 dnnlsnr 6789
    

Dinleyiciyi doğrulama

DNN dinleyicinizin başarıyla oluşturulduğunu onaylamak için SQL Server Management Studio veya Transact-SQL kullanın.

SQL Server Management Studio

DNN dinleyicinizi görüntülemek için SQL Server Management Studio'da (SSMS) Kullanılabilirlik Grubu Dinleyicileri'ne genişletin:

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

Transact-SQL

DNN dinleyicisinin durumunu görüntülemek için Transact-SQL kullanın:

SELECT * FROM SYS.AVAILABILITY_GROUP_LISTENERS

değeri 1 , is_distributed_network_name dinleyicinin dağıtılmış bir ağ adı (DNN) dinleyicisi olduğunu gösterir:

Use sys.availability_group_listeners to identify DNN listeners that have a value of 1 in is_distributed_network_name

Bağlantı dizesini güncelleştirme

DNN dinleyicisine bağlanması gereken tüm uygulamaların bağlantı dizesini güncelleştirin. DNN dinleyicisine bağlantı dizesi DNN bağlantı noktası numarasını sağlamalı ve bağlantı dizesinde belirtmelidir MultiSubnetFailover=True . SQL istemcisi parametresini MultiSubnetFailover=True desteklemiyorsa, DNN dinleyicisiyle uyumlu değildir.

Dinleyici adı DNN_Listener ve bağlantı noktası 6789 için bağlantı dizesi örneği aşağıda verilmiştir:

DataSource=DNN_Listener,6789;MultiSubnetFailover=True

Yük devretme testi

İşlevselliği sağlamak için kullanılabilirlik grubunun yük devretme testi.

Yük devretmeyi test etmek için şu adımları izleyin:

  1. SQL Server Management Studio (SSMS) kullanarak DNN dinleyicisine veya çoğaltmalardan birine bağlanın.
  2. Nesne Gezgini'nde AlwaysOn Kullanılabilirlik Grubunu genişletin.
  3. Kullanılabilirlik grubuna sağ tıklayın ve Yük Devretme Sihirbazı'nı açmak için Yük Devretme'yi seçin.
  4. Bir yük devretme hedefi seçmek ve kullanılabilirlik grubunu ikincil çoğaltmaya devretmek için istemleri izleyin.
  5. Veritabanının yeni birincil çoğaltmada eşitlenmiş durumda olduğunu onaylayın.
  6. (İsteğe bağlı) Özgün birincil veya başka bir ikincil çoğaltmaya geri dönün.

Bağlantıyı test etme

Aşağıdaki adımlarla DNN dinleyicinize bağlantıyı test edin:

  1. SQL Server Management Studio’yu açın.
  2. DNN dinleyicinize bağlanın.
  3. Yeni bir sorgu penceresi açın ve komutunu çalıştırarak SELECT @@SERVERNAMEhangi çoğaltmaya bağlandığınızı denetleyin.
  4. Kullanılabilirlik grubunu başka bir çoğaltmaya devret.
  5. Makul bir süre sonra, kullanılabilirlik grubunuzun artık başka bir çoğaltmada barındırıldığından emin olmak için komutunu çalıştırın SELECT @@SERVERNAME .

Sınırlamalar

  • DNN Dinleyicileri benzersiz bir bağlantı noktasıyla yapılandırılmalıdır. Bağlantı noktası herhangi bir çoğaltmadaki diğer bağlantılarla paylaşılamaz.
  • DNN dinleyicisine bağlanan istemcinin bağlantı dizesindeki parametresini MultiSubnetFailover=True desteklemesi gerekir.
  • Diğer SQL Server özellikleriyle ve DNN içeren bir kullanılabilirlik grubuyla çalışırken dikkat edilmesi gereken ek noktalar olabilir. Daha fazla bilgi için bkz . DNN birlikte çalışabilirliği ile AG.

Bağlantı noktasıyla ilgili dikkat edilmesi gerekenler

DNN dinleyicileri tüm IP adreslerinde, ancak belirli bir benzersiz bağlantı noktasında dinleyecek şekilde tasarlanmıştır. Dinleyici adının DNS girdisi, kullanılabilirlik grubundaki tüm çoğaltmaların adreslerine çözümlenmelidir. Bu, Betik Oluşturma bölümünde sağlanan PowerShell betiğiyle otomatik olarak gerçekleştirilir. DNN dinleyicileri tüm IP adreslerindeki bağlantıları kabul ettiğinden, dinleyici bağlantı noktasının benzersiz olması ve kullanılabilirlik grubundaki başka bir çoğaltma tarafından kullanılmaması kritik önem taşır. SQL Server varsayılan olarak 1433 numaralı bağlantı noktasını doğrudan veya SQL Browser hizmeti aracılığıyla dinlediğinden, DNN dinleyicisi için 1433 numaralı bağlantı noktasını kullanmak kesinlikle önerilmez.

VNN dinleyicisi için seçilen dinleyici bağlantı noktası 49.152 ile 65.536 arasındaysa ( TCP/IP için varsayılan dinamik bağlantı noktası aralığı), bunun için bir dışlama ekleyin. Bunun yapılması, diğer sistemlerin dinamik olarak aynı bağlantı noktasına atanmasını engeller.

Aşağıdaki komutla bir bağlantı noktası dışlaması ekleyebilirsiniz: netsh int ipv4 add excludedportrange tcp startport=<Listener Port> numberofports=1 store=persistent

Sonraki adımlar

Kullanılabilirlik grubu dağıtıldıktan sonra Azure VM'lerinde SQL Server için HADR ayarlarını iyileştirmeyi göz önünde bulundurun.

Daha fazla bilgi edinmek için şu makalelere bakın: