Konfigurace naslouchacího procesu DNN pro skupinu dostupnosti

Platí pro:SQL Server na virtuálním počítači Azure

Zpropitné

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.

Předpoklady

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.

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

  1. Otevřete textový editor, například Poznámkový blok.

  2. 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
    
  3. Uložte skript jako .ps1 soubor, například add_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 ag1procesu a port naslouchacího dnnlsnrprocesu jako 6789, postupujte takto:

  1. Otevřete nástroj pro rozhraní příkazového řádku, například příkazový řádek nebo PowerShell.

  2. Přejděte do umístění, kam jste skript uložili .ps1 , například c:\Documents.

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

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

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

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

Aktualizace připojovacího řetězce

Aktualizujte připojovací řetězec pro libovolnou aplikaci, která se musí připojit k naslouchacímu procesu DNN. Připojovací řetězec pro naslouchací proces DNN musí obsahovat číslo portu DNN a zadat MultiSubnetFailover=True v připojovacím řetězci. Pokud klient SQL parametr nepodporuje MultiSubnetFailover=True , není kompatibilní s naslouchacím procesem DNN.

Následuje příklad připojovacího řetězce 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:

  1. Připojte se k naslouchacímu procesu DNN nebo k jedné z replik pomocí aplikace SQL Server Management Studio (SSMS).
  2. Rozbalte skupinu dostupnosti AlwaysOn v Průzkumníku objektů.
  3. 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í.
  4. 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.
  5. Ověřte, že je databáze v synchronizovaném stavu na nové primární replice.
  6. (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:

  1. Otevřete SQL Server Management Studio.
  2. Připojte se k naslouchacímu procesu DNN.
  3. Otevřete nové okno dotazu a zkontrolujte, ke které replice jste připojení spuštěním SELECT @@SERVERNAME.
  4. Převzetí služeb při selhání skupiny dostupnosti na jinou repliku
  5. 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ím řetězci.
  • 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 naleznete v tématu: