Konfigurace naslouchacího procesu DNN pro skupinu dostupnosti
Platí pro: SQL Server na virtuálním počítači Azure
Tip
Existuje mnoho metod nasazení skupiny dostupnosti. Zjednodušte nasazení a eliminujte potřebu služby Azure Load Balancer nebo názvu distribuované sítě (DNN) pro vaši skupinu dostupnosti AlwaysOn vytvořením virtuálních počítačů s SQL Serverem v několika podsítích ve stejné virtuální síti Azure. Pokud jste skupinu dostupnosti už vytvořili v jedné podsíti, můžete ji migrovat do prostředí s více podsítěmi.
S SQL Serverem na virtuálních počítačích Azure v jedné podsíti směruje název distribuované sítě (DNN) provoz do příslušného clusterovaného prostředku. Poskytuje jednodušší způsob, jak se připojit ke skupině dostupnosti AlwaysOn (AG) než naslouchacímu procesu názvu virtuální sítě (VNN), aniž by bylo potřeba azure Load Balancer.
V tomto článku se naučíte nakonfigurovat naslouchací proces DNN tak, aby nahradil naslouchací proces VNN a směroval provoz do vaší skupiny dostupnosti SQL Serverem na virtuálních počítačích Azure pro zajištění vysoké dostupnosti a zotavení po havárii (HADR).
Pro alternativní možnost připojení zvažte místo toho naslouchací proces sítě VNN a Azure Load Balancer .
Přehled
Naslouchací proces DNN (Distributed Network Name) nahrazuje tradiční naslouchací proces skupiny dostupnosti virtuální sítě (VNN), když se používá se skupinami dostupnosti AlwaysOn na virtuálních počítačích s SQL Serverem. To neguje potřebu Azure Load Balanceru směrovat provoz, zjednodušit nasazení, údržbu a zlepšit převzetí služeb při selhání.
Naslouchací proces DNN použijte k nahrazení existujícího naslouchacího procesu VNN, případně ho použijte ve spojení s existujícím naslouchacím procesem sítě VNN, aby vaše skupina dostupnosti má dva odlišné spojovací body – jeden s názvem naslouchacího procesu virtuální sítě (a portem, pokud není výchozí) a druhý s názvem a portem naslouchacího procesu DNN.
Upozornění
Chování směrování při použití sítě DNN se při použití sítě VNN liší. Nepoužívejte port 1433. Další informace najdete v části Aspekty portů dále v tomto článku.
Požadavky
Než dokončíte kroky v tomto článku, měli byste už mít:
- SQL Server počínaje SQL Serverem 2019 CU8 a novějším, SQL Serverem 2017 CU25 a novějším nebo SQL Serverem 2016 SP3 a novějším ve Windows Serveru 2016 a novějším.
- Rozhodli jste se, že název distribuované sítě je vhodnou možností připojení pro vaše řešení HADR.
- Nakonfigurovali jste skupinu dostupnosti AlwaysOn.
- Nainstalovali jsme nejnovější verzi PowerShellu.
- Identifikovali jste jedinečný port, který budete používat pro naslouchací proces DNN. Port používaný pro naslouchací proces DNN musí být jedinečný pro všechny repliky skupiny dostupnosti nebo instance clusteru s podporou převzetí služeb při selhání. Žádné jiné připojení nemůže sdílet stejný port.
Poznámka:
Pokud máte ve stejném clusteru více skupin AG nebo FCI a používáte buď naslouchací proces DNN, nebo naslouchací proces VNN, potřebuje každá skupina dostupnosti nebo FCI vlastní nezávislý spojovací bod.
Vytvoření skriptu
Pomocí PowerShellu vytvořte prostředek DNN (Distributed Network Name) a přidružte ho ke skupině dostupnosti.
Postup je následující:
Otevřete textový editor, například Poznámkový blok.
Zkopírujte a vložte následující skript:
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
Uložte skript jako
.ps1
soubor, napříkladadd_dnn_listener.ps1
.
Spustit skript
Pokud chcete vytvořit naslouchací proces DNN, spusťte skript předávající parametry pro název skupiny dostupnosti, název naslouchacího procesu a port.
Předpokládejme například, že název skupiny dostupnosti , název naslouchacího ag1
procesu a port naslouchacího dnnlsnr
procesu jako 6789
, postupujte takto:
Otevřete nástroj pro rozhraní příkazového řádku, například příkazový řádek nebo PowerShell.
Přejděte do umístění, kam jste skript uložili
.ps1
, například c:\Documents.Spusťte skript:
add_dnn_listener.ps1 <ag name> <listener-name> <listener port>
. Příklad:c:\Documents> .\add_dnn_listener.ps1 ag1 dnnlsnr 6789
Ověření naslouchacího procesu
K potvrzení úspěšného vytvoření naslouchacího procesu DNN použijte SQL Server Management Studio nebo Transact-SQL.
SQL Server Management Studio
Rozbalte naslouchací procesy skupin dostupnosti v aplikaci SQL Server Management Studio (SSMS) a zobrazte naslouchací proces DNN:
Transact-SQL
Stav naslouchacího procesu DNN zobrazíte pomocí jazyka Transact-SQL:
SELECT * FROM SYS.AVAILABILITY_GROUP_LISTENERS
Hodnota pro is_distributed_network_name
označení naslouchacího 1
procesu je naslouchací proces DNN (Distributed Network Name):
Aktualizace připojovací řetězec
Aktualizujte připojovací řetězec pro všechny aplikace, které se potřebují připojit k naslouchacímu procesu DNN. Naslouchacímu procesu DNN musí připojovací řetězec zadat číslo portu DNN a zadat MultiSubnetFailover=True
v připojovací řetězec. Pokud klient SQL parametr nepodporuje MultiSubnetFailover=True
, není kompatibilní s naslouchacím procesem DNN.
Následuje příklad připojovací řetězec pro název naslouchacího procesu DNN_Listener a port 6789:
DataSource=DNN_Listener,6789;MultiSubnetFailover=True
Test převzetí služeb při selhání
Otestujte převzetí služeb při selhání skupiny dostupnosti, abyste zajistili funkčnost.
K otestování převzetí služeb při selhání postupujte takto:
- Připojte se k naslouchacímu procesu DNN nebo k jedné z replik pomocí aplikace SQL Server Management Studio (SSMS).
- Rozbalte skupinu dostupnosti AlwaysOn v Průzkumník objektů.
- Klikněte pravým tlačítkem na skupinu dostupnosti a zvolte Převzetí služeb při selhání a otevřete Průvodce převzetím služeb při selhání.
- Postupujte podle pokynů a zvolte cíl převzetí služeb při selhání a skupinu dostupnosti převeďte na sekundární repliku.
- Ověřte, že je databáze v synchronizovaném stavu na nové primární replice.
- (Volitelné) Navrácení služeb po obnovení na původní primární nebo jinou sekundární repliku
Test připojení
Otestujte připojení k naslouchacímu procesu DNN pomocí následujícího postupu:
- Otevřete SQL Server Management Studio.
- Připojte se k naslouchacímu procesu DNN.
- Otevřete nové okno dotazu a zkontrolujte, ke které replice jste připojení spuštěním
SELECT @@SERVERNAME
. - Převzetí služeb při selhání skupiny dostupnosti na jinou repliku
- Po přiměřené době spusťte
SELECT @@SERVERNAME
ověření, že je vaše skupina dostupnosti hostovaná na jiné replice.
Omezení
- Naslouchací procesy DNN musí být nakonfigurované s jedinečným portem. Port nelze sdílet s žádným jiným připojením na žádné replice.
- Klient, který se připojuje k naslouchacímu procesu DNN, musí podporovat
MultiSubnetFailover=True
parametr v připojovací řetězec. - Při práci s dalšími funkcemi SQL Serveru a skupinou dostupnosti s DNN může být potřeba zvážit další aspekty. Další informace najdete v tématu Skupina dostupnosti s interoperabilitou DNN.
Důležité informace o portech
Naslouchací procesy DNN jsou navržené tak, aby naslouchaly na všech IP adresách, ale na konkrétním jedinečném portu. Položka DNS pro název naslouchacího procesu by se měla přeložit na adresy všech replik ve skupině dostupnosti. To se provádí automaticky pomocí skriptu PowerShellu uvedeného v části Vytvořit skript . Vzhledem k tomu, že naslouchací procesy DNN přijímají připojení na všech IP adresách, je důležité, aby port naslouchacího procesu byl jedinečný a nepoužíl ji žádná jiná replika ve skupině dostupnosti. Vzhledem k tomu, že SQL Server naslouchá na portu 1433 ve výchozím nastavení přímo nebo prostřednictvím služby SQL Browser, důrazně nedoporučujeme používat port 1433 pro naslouchací proces DNN.
Pokud je port naslouchacího procesu naslouchacího procesu VNN mezi 49 152 a 65 536 ( výchozí dynamický rozsah portů pro TCP/IP, přidejte pro toto vyloučení. Tím zabráníte dynamickému přiřazování stejného portu jiným systémům.
Vyloučení portů můžete přidat pomocí následujícího příkazu: netsh int ipv4 add excludedportrange tcp startport=<Listener Port> numberofports=1 store=persistent
Další kroky
Po nasazení skupiny dostupnosti zvažte optimalizaci nastavení HADR pro SQL Server na virtuálních počítačích Azure.
Další informace najdete v následujících tématech: