Kullanılabilirlik grubu için DNN dinleyicisi yapılandırma
Şunlar için geçerlidir: Azure VM'de SQL Server
İpucu
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.
Not
Aynı kümede birden çok AG veya FC'niz varsa ve bir DNN veya VNN dinleyicisi kullanıyorsanız, her AG veya FCI'nin kendi bağımsız bağlantı noktasına ihtiyacı vardır.
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:
Not Defteri gibi bir metin düzenleyici açın.
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
Betiği gibi bir
.ps1
dosya olarakadd_dnn_listener.ps1
kaydedin.
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ı ag1
olarak , dinleyici adı dnnlsnr
ve dinleyici bağlantı noktası olarak 6789
varsayarsak şu adımları izleyin:
Komut istemi veya PowerShell gibi bir komut satırı arabirim aracı açın.
Betiği kaydettiğiniz
.ps1
yere gidin, örneğin c:\Documents.Betiği
add_dnn_listener.ps1 <ag name> <listener-name> <listener port>
yürüt: . Örneğin: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:
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:
güncelleştirme bağlantı dizesi
DNN dinleyicisine bağlanması gereken tüm uygulamalar için bağlantı dizesi güncelleştirin. DNN dinleyicisinin bağlantı dizesi DNN bağlantı noktası numarasını sağlamalı ve bağlantı dizesi belirtmelidirMultiSubnetFailover=True
. SQL istemcisi parametresini MultiSubnetFailover=True
desteklemiyorsa, DNN dinleyicisiyle uyumlu değildir.
Dinleyici adı DNN_Listener ve bağlantı noktası 6789 için bir 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:
- SQL Server Management Studio (SSMS) kullanarak DNN dinleyicisine veya çoğaltmalardan birine bağlanın.
- Nesne Gezgini'da Always On Kullanılabilirlik Grubu'nun kapsamını genişletin.
- Kullanılabilirlik grubuna sağ tıklayın ve Yük Devretme Sihirbazı'nı açmak için Yük Devretme'yi seçin.
- Bir yük devretme hedefi seçmek ve kullanılabilirlik grubunu ikincil çoğaltmaya devretmek için istemleri izleyin.
- Veritabanının yeni birincil çoğaltmada eşitlenmiş durumda olduğunu onaylayın.
- (İ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:
- SQL Server Management Studio’yu açın.
- DNN dinleyicinize bağlanın.
- Yeni bir sorgu penceresi açın ve komutunu çalıştırarak
SELECT @@SERVERNAME
hangi çoğaltmaya bağlandığınızı denetleyin. - Kullanılabilirlik grubunu başka bir çoğaltmaya devret.
- 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ı dizesi 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:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin