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 FCI1
instance je MSSQLSERVER
a síť DNN je FCI1DNN
(klienti dříve připojeni FCI
a nyní se připojují) FCI1DNN
pak 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 FCI1
instance je instA
a síť DNN je FCI1DNN
(klienti dříve připojeni FCI1\instA
a nyní se připojují) FCI1DNN\instaA
pak namapujte síť VNN FCI1\instaA
na síť DNN FCI1DNN\instaA
.
Klientské ovladače
U 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 dnnlsnr
napří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 dnnlsnr
napří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:
Pro pojmenovanou instanci použijte úplný název instance, například v následujícím příkladu obrázku:
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 dnnlsnr
napří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 insta1
sítě VNN vnnname
a název dnnlsnr
DNN 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:
- Cluster s podporou převzetí služeb při selhání Windows Serveru s SQL Serverem na virtuálních počítačích Azure
- Instance clusteru s podporou převzetí služeb při selhání s SQL Serverem na virtuálních počítačích Azure
- Přehled instance clusteru s podporou převzetí služeb při selhání
- Nastavení HADR pro SQL Server na virtuálních počítačích Azure