Delen via


Functie-interoperabiliteit met SQL Server FCI & DNN

Van toepassing op: SQL Server op Azure VM

Tip

Er zijn veel methoden om een beschikbaarheidsgroep te implementeren. Vereenvoudig uw implementatie en elimineer de noodzaak van een Azure Load Balancer of gedistribueerde netwerknaam (DNN) voor uw AlwaysOn-beschikbaarheidsgroep door uw virtuele SQL Server-machines (VM's) te maken in meerdere subnetten binnen hetzelfde virtuele Azure-netwerk. Als u uw beschikbaarheidsgroep al in één subnet hebt gemaakt, kunt u deze migreren naar een omgeving met meerdere subnetten.

Er zijn bepaalde SQL Server-functies die afhankelijk zijn van een in code vastgelegde naam van een virtueel netwerk (VNN). Als u de DNN-resource (Gedistribueerde netwerknaam) gebruikt met uw failoverclusterexemplaren en SQL Server op Virtuele Azure-machines, zijn er enkele aanvullende overwegingen.

In dit artikel leert u hoe u de netwerkalias configureert wanneer u de DNN-resource gebruikt en welke SQL Server-functies extra aandacht vereisen.

Netwerkalias maken (FCI)

Sommige onderdelen aan de serverzijde zijn afhankelijk van een in code vastgelegde VNN-waarde en vereisen een netwerkalias waarmee de VNN wordt toegewezen aan de DNS-naam van de DNN om correct te functioneren. Volg de stappen in Een serveralias maken om een alias te maken waarmee de VNN wordt toegewezen aan de DNS-naam van de DNN.

Voor een standaardexemplaren kunt u de VNN rechtstreeks toewijzen aan de DNS-naam van de DNN, zodat VNN = DNN DNS-naam. Als vnn-naam bijvoorbeeld is FCI1, exemplaarnaam is MSSQLSERVERen de DNN is FCI1DNN (clients die eerder zijn verbonden met FCIen nu verbinding maken met FCI1DNN) wijst u de VNN FCI1 toe aan de DNN FCI1DNN.

Voor een benoemd exemplaar moet de netwerkaliastoewijzing worden uitgevoerd voor het volledige exemplaar, zodat VNN\Instance = DNN\Instance. Als vnn-naam bijvoorbeeld is FCI1, exemplaarnaam is instAen de DNN is FCI1DNN (clients die eerder zijn verbonden met FCI1\instAen nu verbinding maken met FCI1DNN\instaA) wijst u de VNN FCI1\instaA toe aan de DNN FCI1DNN\instaA.

Clientstuurprogramma's

Voor ODBC-, OLEDB-, ADO.NET-, JDBC-, PHP- en Node.js-stuurprogramma's moeten gebruikers expliciet de DNN DNS-naam opgeven als de servernaam in de verbindingsreeks. Als u snelle connectiviteit wilt garanderen bij failover, voegt u deze toe MultiSubnetFailover=True aan de verbindingsreeks als de SQL-client dit ondersteunt.

Extra

Gebruikers van SQL Server Management Studio, sqlcmd, Azure Data Studio en SQL Server Data Tools moeten expliciet de DNN DNS-naam opgeven als de servernaam in de verbindingsreeks.

Beschikbaarheidsgroepen en FCI

U kunt een AlwaysOn-beschikbaarheidsgroep configureren met behulp van een failoverclusterexemplaren als een van de replica's. In deze configuratie moet de eindpunt-URL voor spiegeling voor de FCI-replica gebruikmaken van de FCI-DNN. Als de FCI wordt gebruikt als een alleen-lezen replica, moet de alleen-lezenroutering naar de FCI-replica gebruikmaken van de FCI-DNN.

De indeling voor het eindpunt voor spiegeling is: ENDPOINT_URL = 'TCP://<DNN DNS name>:<mirroring endpoint port>'.

Als uw DNN DNS-naam bijvoorbeeld en de poort van het eindpunt voor spiegeling van de FCI isdnnlsnr5022, ziet het Codefragment Transact-SQL (T-SQL) voor het maken van de eindpunt-URL er als volgt uit:

ENDPOINT_URL = 'TCP://dnnlsnr:5022'

Op dezelfde manier is de indeling voor de alleen-lezen routerings-URL: TCP://<DNN DNS name>:<SQL Server instance port>.

Als uw DNN DNS-naam bijvoorbeeld is dnnlsnren de poort is die 1444 wordt gebruikt door de alleen-lezen-DOEL-SQL Server FCI, ziet het T-SQL-codefragment voor het maken van de alleen-lezen routerings-URL er als volgt uit:

READ_ONLY_ROUTING_URL = 'TCP://dnnlsnr:1444'

U kunt de poort weglaten in de URL als dit de standaardpoort van 1433 is. Configureer voor een benoemd exemplaar een statische poort voor het benoemde exemplaar en geef deze op in de alleen-lezen routerings-URL.

Replicatie

Replicatie heeft drie onderdelen: Uitgever, Distributeur, Abonnee. Elk van deze onderdelen kan een exemplaar van een failovercluster zijn. Omdat de FCI VNN sterk wordt gebruikt in de replicatieconfiguratie, zowel expliciet als impliciet, kan een netwerkalias die de VNN toebedeelt aan de DNN nodig zijn om replicatie te laten werken.

Blijf de VNN-naam gebruiken als de FCI-naam binnen replicatie, maar maak een netwerkalias in de volgende externe situaties voordat u replicatie configureert:

Replicatieonderdeel (FCI met DNN) Extern onderdeel Netwerkaliastoewijzing Server met netwerktoewijzing
Publisher Distributor Publisher VNN naar Publisher DNN Distributor
Distributor Abonnee Distributeur VNN naar Distributeur DNN Abonnee
Distributor Publisher Distributeur VNN naar Distributeur DNN Publisher
Abonnee Distributor VNN van abonnee naar abonnee-DNN Distributor

Stel dat u een uitgever hebt die is geconfigureerd als FCI met behulp van DNN in een replicatietopologie en dat de distributeur extern is. Maak in dit geval een netwerkalias op de Distributor-server om de Publisher VNN toe te wijzen aan de Publisher DNN:

Configure the DNN DNS name as the network alias using SQL Server Configuration Manager.

Gebruik de volledige exemplaarnaam voor een benoemd exemplaar, zoals in het volgende afbeeldingsvoorbeeld:

Use the full instance name when configuring a network alias for a named instance.

Databasespiegeling

U kunt databasespiegeling configureren met een FCI als een databasespiegelingpartner. Configureer deze met behulp van Transact-SQL (T-SQL) in plaats van de GUI van SQL Server Management Studio. Als u T-SQL gebruikt, zorgt u ervoor dat het eindpunt voor databasespiegeling wordt gemaakt met behulp van de DNN in plaats van de VNN.

Als uw DNN DNS-naam bijvoorbeeld is dnnlsnren het eindpunt voor databasespiegeling 7022 is, configureert het volgende T-SQL-codefragment de partner voor databasespiegeling:

ALTER DATABASE AdventureWorks
    SET PARTNER =
    'TCP://dnnlsnr:7022'
GO 

Voor clienttoegang kan de eigenschap Failover Partner failover van databasespiegeling verwerken, maar niet FCI-failover.

MSDTC

De FCI kan deelnemen aan gedistribueerde transacties die worden gecoördineerd door Microsoft Distributed Transaction Coordinator (MSDTC). Geclusterde MSDTC en lokale MSDTC worden ondersteund met FCI DNN. In Azure is een Azure Load Balancer nodig voor een geclusterde MSDTC-implementatie.

Tip

De DNN die in de FCI is gedefinieerd, vervangt niet de Azure Load Balancer-vereiste voor de geclusterde MSDTC.

Filestream

Hoewel FileStream wordt ondersteund voor een database in een FCI, wordt het openen van FileStream of FileTable met behulp van Bestandssysteem-API's met DNN niet ondersteund.

Gekoppelde servers

Het gebruik van een gekoppelde server met een FCI DNN wordt ondersteund. Gebruik de DNN rechtstreeks om een gekoppelde server te configureren of gebruik een netwerkalias om de VNN toe te wijzen aan de DNN.

Als u bijvoorbeeld een gekoppelde server wilt maken met DNN DNS-naam dnnlsnr voor benoemd exemplaar insta1, gebruikt u de volgende Transact-SQL-opdracht (T-SQL):

USE [master]   
GO   

EXEC master.dbo.sp_addlinkedserver    
    @server = N'dnnlsnr\inst1',    
    @srvproduct=N'SQL Server' ;   
GO 

U kunt ook de gekoppelde server maken met behulp van de naam van het virtuele netwerk (VNN), maar u moet vervolgens een netwerkalias definiëren om de VNN toe te wijzen aan de DNN.

Gebruik bijvoorbeeld de insta1vnnnamednnlsnrvolgende Transact-SQL-opdracht (T-SQL) om een gekoppelde server te maken met behulp van de VNN:

USE [master]
GO   

EXEC master.dbo.sp_addlinkedserver   
    @server = N'vnnname\inst1',    
    @srvproduct=N'SQL Server' ;   
GO 

Maak vervolgens een netwerkalias om toe te wijzen vnnname\insta1 aan dnnlsnr\insta1.

Veelgestelde vragen

  • Welke SQL Server-versie biedt DNN-ondersteuning?

    SQL Server 2019 CU2 en hoger.

  • Wat is de verwachte failovertijd wanneer DNN wordt gebruikt?

    Voor DNN is de failovertijd alleen de FCI-failovertijd, zonder dat er tijd is toegevoegd (zoals testtijd wanneer u Azure Load Balancer gebruikt).

  • Is er versievereiste voor SQL-clients om DNN te ondersteunen met OLEDB en ODBC?

    We raden verbindingsreeks MultiSubnetFailover=True ondersteuning voor DNN aan. Deze is beschikbaar vanaf SQL Server 2012 (11.x).

  • Zijn er sql Server-configuratiewijzigingen vereist voor mij om DNN te gebruiken?

    SQL Server vereist geen configuratiewijziging voor het gebruik van DNN, maar sommige SQL Server-functies vereisen mogelijk meer aandacht.

  • Ondersteunt DNN clusters met meerdere subnetten?

    Ja. Het cluster verbindt de DNN in DNS met de fysieke IP-adressen van alle knooppunten in het cluster, ongeacht het subnet. De SQL-client probeert alle IP-adressen van de DNS-naam, ongeacht het subnet.

Volgende stappen

Raadpleeg voor meer informatie: