Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: program SQL Server na maszynie wirtualnej platformy Azure
Napiwek
Istnieje wiele metod wdrażania grupy dostępności. Uprość wdrażanie i eliminuje konieczność korzystania z usługi Azure Load Balancer lub rozproszonej nazwy sieci (DNN) dla zawsze włączonej grupy dostępności, tworząc maszyny wirtualne programu SQL Server w wielu podsieciach w tej samej sieci wirtualnej platformy Azure. Jeśli grupa dostępności została już utworzona w jednej podsieci, możesz ją zmigrować do środowiska z wieloma podsieciami.
Istnieją pewne funkcje programu SQL Server, które opierają się na zakodowanej nazwie sieci wirtualnej (VNN). W związku z tym w przypadku korzystania z zasobu nazwy sieci rozproszonej (DNN) z wystąpieniem klastra trybu failover i programem SQL Server na maszynach wirtualnych platformy Azure należy wziąć pod uwagę dodatkowe zagadnienia.
W tym artykule dowiesz się, jak skonfigurować alias sieci podczas korzystania z zasobu sieci rozproszonej, a także funkcje programu SQL Server wymagają dodatkowej uwagi.
Tworzenie aliasu sieciowego (FCI)
Niektóre składniki po stronie serwera opierają się na zakodowanej wartości sieci wirtualnej i wymagają aliasu sieciowego, który mapuje nazwę sieci wirtualnej na nazwę DNS nazwy sieci rozproszonej w celu prawidłowego działania. Wykonaj kroki opisane w temacie Tworzenie aliasu serwera, aby utworzyć alias mapujący nazwę sieci wirtualnej na nazwę DNS nazwy sieci rozproszonej.
W przypadku wystąpienia domyślnego można mapować nazwę sieci VNN na nazwę DNS nazwy sieci rozproszonej bezpośrednio, tak aby nazwa DNS sieci VNN = nazwa DNS sieci rozproszonej.
Jeśli na przykład nazwa sieci VNN to , nazwa wystąpienia to FCI1
, a nazwa sieci rozproszonej to MSSQLSERVER
FCI1DNN
(klienci wcześniej połączeni z FCI
serwerem , a teraz łączą się z FCI1DNN
usługą ), zamapuj nazwę FCI1
sieci wirtualnej na nazwę sieci rozproszonej FCI1DNN
.
W przypadku wystąpienia nazwanego należy wykonać mapowanie aliasu sieciowego dla pełnego wystąpienia, tak aby VNN\Instance
= DNN\Instance
.
Jeśli na przykład nazwa sieci VNN to , nazwa wystąpienia to FCI1
, a nazwa sieci rozproszonej to instA
FCI1DNN
(klienci wcześniej połączeni z FCI1\instA
serwerem , a teraz łączą się z FCI1DNN\instaA
usługą ), zamapuj nazwę FCI1\instaA
sieci wirtualnej na nazwę sieci rozproszonej FCI1DNN\instaA
.
Sterowniki klienta
W przypadku sterowników ODBC, OLEDB, ADO.NET, JDBC, PHP i Node.js użytkownicy muszą jawnie określić nazwę DNS nazwy sieci rozproszonej jako nazwę serwera w parametry połączenia. Aby zapewnić szybką łączność po przejściu w tryb failover, dodaj MultiSubnetFailover=True
go do parametry połączenia, jeśli klient SQL go obsługuje.
Narzędzia
Użytkownicy programu SQL Server Management Studio, sqlcmd, Azure Data Studio i SQL Server Data Tools muszą jawnie określić nazwę DNS nazwy sieci rozproszonej jako nazwę serwera w parametry połączenia.
Grupy dostępności i wystąpienia klastra trybu failover
Możesz skonfigurować zawsze włączoną grupę dostępności przy użyciu wystąpienia klastra trybu failover jako jednej z replik. W tej konfiguracji adres URL punktu końcowego dublowania dla repliki wystąpienia klastra trybu failover musi używać nazwy rozproszonej klastra trybu failover. Podobnie, jeśli wystąpienia klastra trybu failover są używane jako replika tylko do odczytu, routing tylko do odczytu do repliki fcI musi używać nazwy rozproszonej klastra trybu failover.
Format punktu końcowego dublowania to: ENDPOINT_URL = 'TCP://<DNN DNS name>:<mirroring endpoint port>'
.
Jeśli na przykład nazwa DNS nazwy domeny to dnnlsnr
i 5022
jest portem punktu końcowego dublowania wystąpienia klastra trybu failover, fragment kodu Transact-SQL (T-SQL) w celu utworzenia adresu URL punktu końcowego wygląda następująco:
ENDPOINT_URL = 'TCP://dnnlsnr:5022'
Podobnie format adresu URL routingu tylko do odczytu to: TCP://<DNN DNS name>:<SQL Server instance port>
.
Jeśli na przykład nazwa DNS nazwy sieci rozproszonej to dnnlsnr
, i 1444
jest portem używanym przez docelową usługę SQL Server FCI tylko do odczytu, fragment kodu T-SQL do utworzenia adresu URL routingu tylko do odczytu wygląda następująco:
READ_ONLY_ROUTING_URL = 'TCP://dnnlsnr:1444'
Możesz pominąć port w adresie URL, jeśli jest to domyślny port 1433. W przypadku nazwanego wystąpienia skonfiguruj port statyczny dla nazwanego wystąpienia i określ go w adresie URL routingu tylko do odczytu.
Replikacja
Replikacja ma trzy składniki: Wydawca, Dystrybutor, Subskrybent. Każdy z tych składników może być wystąpieniem klastra trybu failover. Ponieważ nazwa sieci wirtualnej wystąpienia klastra trybu failover jest intensywnie używana w konfiguracji replikacji, zarówno jawnie, jak i niejawnie, alias sieci mapujący nazwę sieci wirtualnej na nazwę sieci rozproszonej może być konieczny do działania replikacji.
Przed skonfigurowaniem replikacji należy używać nazwy sieci wirtualnej jako nazwy wystąpienia klastra trybu failover, ale przed skonfigurowaniem replikacji utwórz alias sieci w następujących sytuacjach zdalnych:
Składnik replikacji (FCI z siecią DNN) | Składnik zdalny | Mapa aliasu sieciowego | Serwer z mapą sieci |
---|---|---|---|
Publisher | Dystrybutor | Nazwa sieci wirtualnej wydawcy do nazwy sieci rozproszonej programu Publisher | Dystrybutor |
Dystrybutor | Subskrybent | Dystrybutor sieci VNN do dystrybutora sieci rozproszonej | Subskrybent |
Dystrybutor | Publisher | Dystrybutor sieci VNN do dystrybutora sieci rozproszonej | Publisher |
Subskrybent | Dystrybutor | Nazwa sieci wirtualnej subskrybenta do nazwy sieci rozproszonej subskrybenta | Dystrybutor |
Załóżmy na przykład, że masz wydawcę, który jest skonfigurowany jako wystąpienie klastra trybu failover przy użyciu nazwy sieci rozproszonej w topologii replikacji, a dystrybutor jest zdalny. W takim przypadku utwórz alias sieciowy na serwerze dystrybutora, aby zamapować nazwę VNN wydawcy na nazwę sieci rozproszonej wydawcy:
Użyj pełnej nazwy wystąpienia dla nazwanego wystąpienia, takiego jak na poniższym przykładzie:
Dublowanie bazy danych
Dublowanie bazy danych można skonfigurować za pomocą wystąpienia klastra trybu failover jako jeden z partnerów dublowania bazy danych. Skonfiguruj ją przy użyciu języka Transact-SQL (T-SQL), a nie interfejsu GUI programu SQL Server Management Studio. Użycie języka T-SQL zapewni utworzenie punktu końcowego dublowania bazy danych przy użyciu nazwy sieci rozproszonej zamiast nazwy sieci wirtualnej.
Jeśli na przykład nazwa DNS nazwy domeny to dnnlsnr
, a punkt końcowy dublowania bazy danych to 7022, poniższy fragment kodu T-SQL konfiguruje partnera dublowania bazy danych:
ALTER DATABASE AdventureWorks
SET PARTNER =
'TCP://dnnlsnr:7022'
GO
W przypadku dostępu klienta właściwość Partner trybu failover może obsługiwać tryb failover dublowania bazy danych, ale nie tryb failover wystąpienia klastra trybu failover.
MSDTC
FcI może uczestniczyć w transakcjach rozproszonych koordynowanych przez koordynatora transakcji rozproszonych firmy Microsoft (MSDTC). Klastrowane MSDTC i lokalne MSDTC są obsługiwane w przypadku nazwy rozproszonej klastra trybu failover. Na platformie Azure usługa Azure Load Balancer jest niezbędna do wdrożenia klastrowanego msdTC.
Napiwek
Nazwa sieci rozproszonej zdefiniowana w klastrze klastra MSDTC nie zastępuje wymagania usługi Azure Load Balancer.
FileStream
Mimo że usługa FileStream jest obsługiwana dla bazy danych w klastrze trybu failover, uzyskiwanie dostępu do elementu FileStream lub FileTable przy użyciu interfejsów API systemu plików z siecią DNN nie jest obsługiwane.
Serwery połączone
Korzystanie z serwera połączonego z siecią DNN wystąpienia klastra trybu failover jest obsługiwane. Użyj nazwy sieci rozproszonej bezpośrednio do skonfigurowania połączonego serwera lub użyj aliasu sieciowego, aby zamapować nazwę sieci wirtualnej na nazwę sieci rozproszonej.
Aby na przykład utworzyć połączony serwer z nazwą dnnlsnr
DNS nazwy sieci rozproszonej dla nazwanego wystąpienia insta1
, użyj następującego polecenia Języka Transact-SQL (T-SQL):
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver
@server = N'dnnlsnr\inst1',
@srvproduct=N'SQL Server' ;
GO
Alternatywnie można utworzyć połączony serwer przy użyciu nazwy sieci wirtualnej (VNN), ale następnie należy zdefiniować alias sieciowy, aby zamapować nazwę sieci wirtualnej na nazwę sieci rozproszonej.
Na przykład w przypadku nazwy wystąpienia , nazwy insta1
vnnname
sieci wirtualnej i nazwy dnnlsnr
nazwy sieci rozproszonej użyj następującego polecenia Języka Transact-SQL (T-SQL), aby utworzyć serwer połączony przy użyciu nazwy sieci wirtualnej:
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver
@server = N'vnnname\inst1',
@srvproduct=N'SQL Server' ;
GO
Następnie utwórz alias sieciowy do mapowania vnnname\insta1
na dnnlsnr\insta1
.
Często zadawane pytania
Która wersja programu SQL Server zapewnia obsługę sieci rozproszonej?
PROGRAM SQL Server 2019 CU2 lub nowszy.
Jaki jest oczekiwany czas pracy w trybie failover, kiedy jest używana nazwa sieci rozproszonej?
W przypadku nazwy sieci rozproszonej czas pracy w trybie failover będzie tylko czasem pracy w trybie failover wystąpienia klastra trybu failover bez konieczności dodawania czasu (na przykład czasu sondy, gdy używasz usługi Azure Load Balancer).
Czy istnieją jakieś wymagania dotyczące wersji dla klientów SQL do obsługi nazwy rozproszonej z oleDB i ODBC?
Zalecamy
MultiSubnetFailover=True
parametry połączenia obsługę sieci rozproszonej. Jest ona dostępna od programu SQL Server 2012 (11.x).Czy do korzystania z nazwy sieci rozproszonej są wymagane jakiekolwiek zmiany konfiguracji programu SQL Server?
Program SQL Server nie wymaga żadnej zmiany konfiguracji w celu używania nazwy sieci rozproszonej, ale niektóre funkcje programu SQL Server mogą wymagać większej uwagi.
Czy nazwa sieci rozproszonej obsługuje klastry z wieloma podsieciami?
Tak. Klaster wiąże nazwę sieci rozproszonej w systemie DNS z fizycznymi adresami IP wszystkich węzłów w klastrze niezależnie od podsieci. Klient SQL próbuje wszystkich adresów IP nazwy DNS niezależnie od podsieci.
Następne kroki
Aby dowiedzieć się więcej, zobacz:
- Klaster trybu failover systemu Windows Server z programem SQL Server na maszynach wirtualnych platformy Azure
- Wystąpienia klastra trybu failover z programem SQL Server na maszynach wirtualnych platformy Azure
- Omówienie wystąpienia klastra trybu failover
- Ustawienia usługi HADR dla programu SQL Server na maszynach wirtualnych platformy Azure