Współdziałanie funkcji z odbiornikiem grupy dostępności i nazwy sieci rozproszonej

Dotyczy: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 odbiornika nazwy sieci rozproszonej (DNN) z zawsze włączoną grupą dostępności i programem SQL Server na maszynach wirtualnych platformy Azure w jednej podsieci mogą istnieć dodatkowe kwestie.

Ten artykuł zawiera szczegółowe informacje o funkcjach programu SQL Server i współdziałaniu z odbiornikiem sieci rozproszonej grupy dostępności.

Różnice w zachowaniu

Istnieją pewne różnice między funkcjonalnością odbiornika sieci VNN i odbiornika sieci rozproszonej, które są ważne:

  • Czas pracy w trybie failover: czas pracy w trybie failover jest szybszy w przypadku korzystania z odbiornika sieci rozproszonej, ponieważ nie ma potrzeby oczekiwania na wykrycie zdarzenia awarii i zmianę routingu przez moduł równoważenia obciążenia sieciowego.
  • Istniejące połączenia: Połączenie iony nawiązane z określoną bazą danych w ramach zamknięcia grupy dostępności w trybie failover, ale inne połączenia z repliką podstawową pozostają otwarte, ponieważ nazwa sieci rozproszonej pozostaje w trybie online podczas procesu pracy w trybie failover. Różni się to od tradycyjnego środowiska sieci VNN, w którym wszystkie połączenia z repliką podstawową zwykle zamykają się, gdy grupa dostępności przechodzi w tryb failover, odbiornik przechodzi w tryb offline, a replika podstawowa przechodzi do roli pomocniczej. W przypadku korzystania z odbiornika sieci rozproszonej może być konieczne dostosowanie parametry połączenia aplikacji, aby upewnić się, że połączenia są przekierowywane do nowej repliki podstawowej po przejściu w tryb failover.
  • Otwarte transakcje: otwórz transakcje względem bazy danych w grupie dostępności w trybie failover zamknij i wycofaj, a następnie musisz ręcznie ponownie nawiązać połączenie. Na przykład w programie SQL Server Management Studio zamknij okno zapytania i otwórz nowe.

Sterowniki klienta

W przypadku sterowników ODBC, OLEDB, ADO.NET, JDBC, PHP i Node.js użytkownicy muszą jawnie określić nazwę i port odbiornika 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ę i port odbiornika nazwy sieci rozproszonej jako nazwę serwera w parametry połączenia, aby nawiązać połączenie z odbiornikiem.

Tworzenie odbiornika sieci rozproszonej za pośrednictwem graficznego interfejsu użytkownika programu SQL Server Management Studio (SSMS) nie jest obecnie obsługiwane.

Grupy dostępności i wystąpienia klastra trybu failover

Grupę dostępności Always On można skonfigurować przy użyciu wystąpienia klastra trybu failover (FCI) jako jednej z replik. Aby ta konfiguracja działała z odbiornikiem sieci rozproszonej, wystąpienie klastra trybu failover musi również używać nazwy sieci rozproszonej, ponieważ nie ma możliwości umieszczania wirtualnego adresu IP wystąpienia klastra trybu failover na liście adresów IP nazwy sieci rozproszonej grupy dostępności.

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://<FCI DNN DNS name>:<mirroring endpoint port>'.

Jeśli na przykład nazwa DNS nazwy dns nazwy domeny klastra trybu failover to dnnlsnr, a 5022 port 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://<FCI 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.

Rozproszona grupa dostępności

Jeśli odbiornik grupy dostępności jest skonfigurowany przy użyciu nazwy sieci rozproszonej (DNN), konfigurowanie rozproszonej grupy dostępności na podstawie grupy dostępności nie jest obsługiwane.

Replikacja

Transakcyjne, scalane i replikacja migawek obsługują zastępowanie odbiornika sieci VNN odbiornikiem nazwy sieci rozproszonej i portem w obiektach replikacji łączących się z odbiornikiem.

Aby uzyskać więcej informacji na temat używania replikacji z grupami dostępności, zobacz Wydawca i grupa dostępności, Subskrybent i Grupa dostępności oraz Dystrybutor i Grupa dostępności.

MSDTC

Obsługiwane są zarówno lokalne, jak i klastrowane MSDTC, ale MSDTC używa portu dynamicznego, który wymaga standardowego modułu równoważenia obciążenia platformy Azure w celu skonfigurowania portu wysokiej dostępności. W związku z tym maszyna wirtualna musi używać standardowej rezerwacji adresów IP lub nie może być uwidoczniona w Internecie.

Zdefiniuj dwie reguły, jedną dla portu mapowania punktu końcowego RPC 135 i jedną dla rzeczywistego portu MSDTC. Po przejściu w tryb failover zmodyfikuj regułę modułu równoważenia obciążenia do nowego portu MSDTC po zmianie na nowym węźle.

Jeśli msdTC jest lokalny, pamiętaj, aby zezwolić na komunikację wychodzącą.

Zapytanie rozproszone

Zapytanie rozproszone opiera się na połączonym serwerze, który można skonfigurować przy użyciu odbiornika i portu sieci rozproszonej grupy dostępności. Jeśli port nie jest 1433, wybierz opcję Użyj innego źródła danych w programie SQL Server Management Studio (SSMS) podczas konfigurowania serwera połączonego.

FILESTREAM

Funkcja FILESTREAM jest obsługiwana, ale nie w scenariuszach, w których użytkownicy uzyskują dostęp do ograniczonego udziału plików przy użyciu interfejsu API plików systemu Windows.

Filetable

Funkcja FileTable jest obsługiwana, ale nie w scenariuszach, w których użytkownicy uzyskują dostęp do ograniczonego udziału plików przy użyciu interfejsu API plików systemu Windows.

Serwery połączone

Skonfiguruj serwer połączony przy użyciu nazwy odbiornika nazwy sieci rozproszonej grupy dostępności i portu. Jeśli port nie jest 1433, wybierz opcję Użyj innego źródła danych w programie SQL Server Management Studio (SSMS) podczas konfigurowania serwera połączonego.

Często zadawane pytania

Która wersja programu SQL Server zapewnia obsługę odbiornika nazwy sieci rozproszonej grupy dostępności?

PROGRAM SQL Server 2019 CU 8 lub nowszy.

Jaki jest oczekiwany czas pracy w trybie failover, kiedy jest używany odbiornik sieci rozproszonej?

W przypadku odbiornika sieci rozproszonej czas pracy w trybie failover grupy dostępności jest taki sam jak czas pracy w trybie failover grupy dostępności bez dodatkowego czasu (na przykład czasu sondowania, 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ę odbiornika sieci rozproszonej. Jest ona dostępna od programu SQL Server 2012 (11.x).

Czy do korzystania z odbiornika nazwy sieci rozproszonej są wymagane jakiekolwiek zmiany konfiguracji programu SQL Server?

Program SQL Server nie wymaga żadnej zmiany konfiguracji w celu korzystania z 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 replik w grupie dostępności niezależnie od podsieci. Klient SQL próbuje wszystkich adresów IP nazwy DNS niezależnie od podsieci.

Czy odbiornik sieci rozproszonej grupy dostępności obsługuje routing tylko do odczytu?

Tak. Routing tylko do odczytu jest obsługiwany przez odbiornik sieci rozproszonej.