Sdílet prostřednictvím


Interoperabilita funkcí s FCI a DNN SQL Serveru

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.

Existují určité funkce SQL Serveru, které spoléhají na pevně zakódovaný název virtuální sítě (VNN). Při použití prostředku DNN (Distributed Network Name) s instancí clusteru s podporou převzetí služeb při selhání a SQL Serveru na virtuálních počítačích Azure je potřeba zvážit několik dalších aspektů.

V tomto článku se dozvíte, jak nakonfigurovat alias sítě při použití prostředku DNN a jaké funkce SQL Serveru vyžadují další aspekty.

Vytvoření aliasu sítě (FCI)

Některé součásti na straně serveru spoléhají na pevně zakódovanou hodnotu sítě VNN a vyžadují síťový alias, který mapuje síť VNN na název DNS DNN, aby správně fungoval. Podle pokynů v části Vytvoření aliasu serveru vytvořte alias, který mapuje síť VNN na název DNS DNN.

Pro výchozí instanci můžete virtuální síť VNN namapovat přímo na název DNS DNN, aby název VNN = název DNS DNN. Pokud je například název sítě VNN , název FCI1instance je MSSQLSERVERa síť DNN je FCI1DNN (klienti dříve připojeni FCIa nyní se připojují) FCI1DNNpak namapujte síť VNN FCI1 na síť DNN FCI1DNN.

Pro pojmenovanou instanci by mělo být mapování aliasů sítě provedeno pro úplnou instanci, například VNN\Instance = DNN\Instance. Pokud je například název sítě VNN , název FCI1instance je instAa síť DNN je FCI1DNN (klienti dříve připojeni FCI1\instAa nyní se připojují) FCI1DNN\instaApak namapujte síť VNN FCI1\instaA na síť DNN FCI1DNN\instaA.

Klientské ovladače

V případě ovladačů ODBC, OLEDB, ADO.NET, JDBC, PHP a Node.js musí uživatelé explicitně zadat název DNS DNN jako název serveru v připojovací řetězec. Pokud chcete zajistit rychlé připojení při převzetí služeb při selhání, přidejte MultiSubnetFailover=True do připojovací řetězec, pokud ho klient SQL podporuje.

Nástroje

Uživatelé aplikace SQL Server Management Studio, sqlcmd, Azure Data Studio a SQL Server Data Tools musí explicitně zadat název DNS DNN jako název serveru v připojovací řetězec.

Skupiny dostupnosti a FCI

Skupinu dostupnosti AlwaysOn můžete nakonfigurovat pomocí instance clusteru s podporou převzetí služeb při selhání jako jedné z replik. V této konfiguraci musí adresa URL koncového bodu zrcadlení repliky FCI používat síť FCI DNN. Podobně platí, že pokud se služba FCI používá jako replika jen pro čtení, musí směrování jen pro čtení do repliky FCI používat síť FCI DNN.

Formát koncového bodu zrcadlení je: ENDPOINT_URL = 'TCP://<DNN DNS name>:<mirroring endpoint port>'.

Pokud je dnnlsnrnapříklad název DNS DNN a 5022 je portem koncového bodu zrcadlení FCI, fragment kódu Transact-SQL (T-SQL) pro vytvoření adresy URL koncového bodu vypadá takto:

ENDPOINT_URL = 'TCP://dnnlsnr:5022'

Stejně tak formát adresy URL směrování jen pro čtení je: TCP://<DNN DNS name>:<SQL Server instance port>.

Pokud je dnnlsnrnapříklad název DNS DNN a 1444 je port používaný cílovým sql Serverem jen pro čtení, fragment kódu T-SQL k vytvoření adresy URL směrování jen pro čtení vypadá takto:

READ_ONLY_ROUTING_URL = 'TCP://dnnlsnr:1444'

Port v adrese URL můžete vynechat, pokud se jedná o výchozí port 1433. Pro pojmenovanou instanci nakonfigurujte statický port pro pojmenovanou instanci a zadejte ho v adrese URL směrování jen pro čtení.

Replikace

Replikace má tři komponenty: Publisher, Distributor, Subscriber. Libovolnou z těchto komponent může být instance clusteru s podporou převzetí služeb při selhání. Vzhledem k tomu, že síť FCI VNN se v konfiguraci replikace explicitně i implicitně používá, může být potřeba, aby replikace fungovala, a to jak explicitně, tak implicitně, síťový alias, který mapuje síť VNN na síť DNN.

Před konfigurací replikace dál použijte název sítě VNN jako název FCI, ale před konfigurací replikace vytvořte alias sítě v následujících vzdálených situacích:

Komponenta replikace (FCI s DNN) Vzdálená komponenta Mapa aliasů sítě Server s mapou sítě
Publisher Distributor Publisher VNN to Publisher DNN Distributor
Distributor Odběratel Distributor VNN to Distributor DNN Odběratel
Distributor Publisher Distributor VNN to Distributor DNN Publisher
Odběratel Distributor Odběratel VNN pro předplatitele DNN Distributor

Předpokládejme například, že máte Publisher, který je nakonfigurovaný jako FCI pomocí DNN v topologii replikace a distributor je vzdálený. V takovém případě vytvořte na serveru distributora síťový alias, který mapuje síť VNN vydavatele na název DNN vydavatele:

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

Pro pojmenovanou instanci použijte úplný název instance, například v následujícím příkladu obrázku:

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

Zrcadlení databáze

Zrcadlení databáze můžete nakonfigurovat pomocí FCI jako partnera pro zrcadlení databáze. Nakonfigurujte ho pomocí jazyka Transact-SQL (T-SQL) místo grafického uživatelského rozhraní aplikace SQL Server Management Studio. Použití T-SQL zajistí, že se koncový bod zrcadlení databáze vytvoří pomocí sítě DNN místo sítě VNN.

Pokud je dnnlsnrnapříklad název DNS DNN a koncový bod zrcadlení databáze je 7022, nakonfiguruje následující fragment kódu T-SQL partnera pro zrcadlení databáze:

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

Pro klientský přístup může vlastnost Partner převzetí služeb při selhání zpracovat převzetí služeb při selhání zrcadlení databáze, ale ne převzetí služeb při selhání FCI.

MSDTC

FCI se může účastnit distribuovaných transakcí koordinovaných koordinátorem distribuovaných transakcí (MSDTC). Clusterované MSDTC a místní MSDTC jsou podporovány s FCI DNN. V Azure je nástroj Azure Load Balancer nezbytný pro clusterované nasazení MSDTC.

Tip

Síť DNN definovaná v FCI nenahrazuje požadavek azure Load Balanceru pro clusterovaný msDTC.

Filestream

I když je FileStream podporován pro databázi v FCI, přístup k FileStream nebo FileTable pomocí rozhraní API systému souborů s DNN není podporován.

Propojené servery

Použití propojeného serveru s FCI DNN je podporováno. Buď použijte síť DNN přímo ke konfiguraci propojeného serveru, nebo pomocí síťového aliasu namapujte síť VNN na síť DNN.

Pokud například chcete vytvořit propojený server s názvem dnnlsnr DNS DNN pro pojmenovanou instanci insta1, použijte následující příkaz Transact-SQL (T-SQL):

USE [master]   
GO   

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

Případně můžete vytvořit propojený server pomocí názvu virtuální sítě (VNN), ale pak budete muset definovat alias sítě pro mapování sítě VNN na síť DNN.

Například název instance, název insta1sítě VNN vnnnamea název dnnlsnrDNN použijte následující příkaz Transact-SQL (T-SQL) k vytvoření propojeného serveru pomocí sítě VNN:

USE [master]
GO   

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

Potom vytvořte alias sítě pro mapování vnnname\insta1 na dnnlsnr\insta1.

Nejčastější dotazy

  • Která verze SQL Serveru přináší podporu DNN?

    SQL Server 2019 CU2 a novější

  • Jaká je očekávaná doba převzetí služeb při selhání při použití DNN?

    V případě sítě DNN bude doba převzetí služeb při selhání jenom doba převzetí služeb při selhání FCI, aniž by se přidala žádná doba (například čas sondy, když používáte Azure Load Balancer).

  • Existuje nějaký požadavek na verzi, aby klienti SQL podporovali DNN s OLEDB a ODBC?

    MultiSubnetFailover=True Doporučujeme připojovací řetězec podporu sítě DNN. Je k dispozici od SQL Serveru 2012 (11.x).

  • Vyžadují se nějaké změny konfigurace SQL Serveru pro použití DNN?

    SQL Server nevyžaduje žádné změny konfigurace pro použití DNN, ale některé funkce SQL Serveru můžou vyžadovat více pozornosti.

  • Podporuje síť DNN clustery s více podsítěmi?

    Ano. Cluster sváže síť DNN v DNS s fyzickými IP adresami všech uzlů v clusteru bez ohledu na podsíť. Klient SQL zkouší všechny IP adresy názvu DNS bez ohledu na podsíť.

Další kroky

Další informace najdete v následujících tématech: