Samouczek: konfigurowanie replikacji transakcyjnej między Azure SQL Managed Instance i SQL Server

Dotyczy:Azure SQL Managed Instance

Replikacja transakcyjna umożliwia replikowanie danych z jednej bazy danych do innej hostowanej na SQL Server lub Azure SQL Managed Instance. SQL Managed Instance może być wydawcą, dystrybutorem lub subskrybentem w topologii replikacji. Aby uzyskać dostępne konfiguracje, zobacz Konfiguracje replikacji transakcyjnej.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Skonfiguruj wystąpienie zarządzane SQL jako wydawcę replikacji.
  • Konfigurowanie wystąpienia zarządzanego SQL jako dystrybutora replikacji.
  • Skonfiguruj SQL Server jako subskrybent.

Diagram przedstawiający replikację między wydawcą wystąpienia zarządzanego SQL, dystrybutorem wystąpienia zarządzanego SQL i subskrybentem SQL Server.

Ten samouczek jest przeznaczony dla doświadczonych odbiorców i zakłada, że użytkownik jest zaznajomiony z wdrażaniem i nawiązywaniem połączenia z wystąpieniami zarządzanymi SQL i maszynami wirtualnymi SQL Server w Azure.

Uwaga

W tym artykule opisano użycie replikacji transakcyjnej w Azure SQL Managed Instance. Nie jest to związane z grupami failover funkcji Azure SQL Managed Instance, które umożliwiają tworzenie kompletnych do odczytu replik poszczególnych wystąpień. Podczas konfigurowania replikacji transakcyjnej z grupami failover należy wziąć pod uwagę dodatkowe zagadnienia.

Wymagania wstępne

Aby ukończyć ten samouczek, upewnij się, że dysponujesz następującymi elementami:

  • Subskrypcja Azure.
  • Doświadczenie w wdrażaniu dwóch wystąpień zarządzanych SQL w tej samej sieci wirtualnej.
  • Subskrybent SQL Server lokalnie lub na maszynie wirtualnej Azure. W tym samouczku używana jest maszyna wirtualna Azure.
  • SQL Server Management Studio (SSMS) 18.0 lub nowszy.
  • Najnowsza wersja Azure PowerShell.
  • Porty 445 i 1433 zezwalają na ruch SQL zarówno w zaporze Azure, jak i zaporze Windows.

Wymagane nazwy i ustawienia sieciowe

W tym samouczku są używane następujące nazwy zasobów i ustawienia:

Resource Name Notatki
Zarządzana instancja SQL dla wydawcy sql-mi-publisher Dołączanie losowych znaków w celu unikatowości
sieć wirtualna Publisher vnet-sql-mi-publisher Hostuje instancję wydawcy
Dystrybutor zarządzanej instancji SQL sql-mi-distributor Musi znajdować się w tej samej sieci wirtualnej co wydawca
Maszyna wirtualna SQL Server (instancja z subskrypcji) sql-vm-subscriber Użyj obsługiwanej wersji SQL Server zgodnie z macierzą zgodności
Sieć wirtualna subskrybenta sql-vm-subscriber-vnet Wymaga peeringu sieci wirtualnych z siecią wirtualną wydawcy
strefa prywatna DNS repldns.com Dowolna nazwa routingu DNS
Wymagane porty 445 (SMB), 1433 (SQL) Musi być otwarty na zaporze Azure Firewall i Zapora systemu Windows

Tworzenie grupy zasobów

Użyj poniższego fragmentu kodu programu PowerShell, aby utworzyć nową grupę zasobów.

Ustaw zmienne:

$ResourceGroupName = "SQLMI-Repl"
$Location = "East US 2"

Utwórz grupę zasobów:

New-AzResourceGroup -Name $ResourceGroupName -Location $Location

Sprawdź, czy grupa zasobów została utworzona:

Get-AzResourceGroup -Name $ResourceGroupName | Select-Object ResourceGroupName, Location

Tworzenie dwóch wystąpień zarządzanych SQL

Utwórz dwa wystąpienia zarządzane SQL w tej nowej grupie zasobów przy użyciu portalu Azure.

  • Nazwa wystąpienia zarządzanego SQL wydawcy powinna być sql-mi-publisher (wraz z kilkoma znakami dla losowego wyboru), a nazwa sieci wirtualnej powinna być vnet-sql-mi-publisher.

  • Nazwa dystrybutora zarządzanego wystąpienia SQL powinna być sql-mi-distributor (z kilkoma losowymi znakami dla unikalności) i powinna znajdować się w tej samej sieci wirtualnej co zarządzane wystąpienie SQL wydawcy.

    Zrzut ekranu przedstawiający użycie sieci wirtualnej VNet wydawcy dla dystrybutora.

Aby uzyskać więcej informacji na temat tworzenia zarządzanego wystąpienia SQL, zobacz Quickstart: Create Azure SQL Managed Instance.

Uwaga

Dla uproszczenia ten samouczek umieszcza zarządzane wystąpienie SQL dystrybutora w tej samej sieci wirtualnej co wydawca. Jednak można utworzyć dystrybutora w oddzielnej sieci wirtualnej z odpowiednim peeringiem VNet.

Tworzenie maszyny wirtualnej SQL Server

Utwórz maszynę wirtualną SQL Server przy użyciu portalu Azure. Maszyna wirtualna SQL Server powinna mieć następujące cechy:

  • Nazwa: sql-vm-subscriber
  • Obraz: SQL Server wersja obsługująca replikację transakcyjną z Azure SQL Managed Instance zgodnie z macierzą zgodności
  • Grupa zasobów: taka sama jak wystąpienie zarządzane SQL
  • Sieć wirtualna: sql-vm-subscriber-vnet

Aby uzyskać więcej informacji na temat wdrażania maszyny wirtualnej SQL Server w Azure, zobacz Quickstart: Tworzenie SQL Server na maszynie wirtualnej Windows w portalu Azure.

Konfiguracja komunikacji sieci wirtualnych

Skonfiguruj równorzędność sieci VNet, aby umożliwić komunikację między siecią wirtualną dwóch zarządzanych wystąpień SQL a siecią wirtualną SQL Server.

Ustaw zmienne:

$SubscriptionId = '<SubscriptionID>'
$resourceGroup = 'SQLMI-Repl'
$pubvNet = 'sql-mi-publisher-vnet'
$subvNet = 'sql-vm-subscriber-vnet'
$pubsubName = 'Pub-to-Sub-Peer'
$subpubName = 'Sub-to-Pub-Peer'

Pobierz sieci wirtualne:

$virtualNetwork1 = Get-AzVirtualNetwork -ResourceGroupName $resourceGroup -Name $pubvNet
$virtualNetwork2 = Get-AzVirtualNetwork -ResourceGroupName $resourceGroup -Name $subvNet

Skonfiguruj peering VNet od wydawcy do subskrybenta:

Add-AzVirtualNetworkPeering `
  -Name $pubsubName `
  -VirtualNetwork $virtualNetwork1 `
  -RemoteVirtualNetworkId $virtualNetwork2.Id

Skonfiguruj VNet peering od subskrybenta do wydawcy.

Add-AzVirtualNetworkPeering `
  -Name $subpubName `
  -VirtualNetwork $virtualNetwork2 `
  -RemoteVirtualNetworkId $virtualNetwork1.Id

Sprawdź status połączenia równorzędnego w VNet wydawcy (powinien zwrócić wartość Connected):

Get-AzVirtualNetworkPeering -ResourceGroupName $resourceGroup -VirtualNetworkName $pubvNet | Select-Object PeeringState

Sprawdź stan peeringu w wirtualnej sieci subskrybenta (powinien zwrócić wartość Connected):

Get-AzVirtualNetworkPeering -ResourceGroupName $resourceGroup -VirtualNetworkName $subvNet | Select-Object PeeringState

Po nawiązaniu peeringu sieci wirtualnych VNet, przetestuj łączność, uruchamiając SQL Server Management Studio (SSMS) na hoście SQL Server i łącząc się z dwoma wystąpieniami zarządzanymi SQL. Aby uzyskać więcej informacji na temat nawiązywania połączenia z SQL managed instance przy użyciu programu SSMS, zobacz Używanie programu SSMS do nawiązywania połączenia z SQL Managed Instance.

Zrzut ekranu przedstawiający sposób testowania łączności z wystąpieniami zarządzanymi SQL.

Tworzenie prywatnej strefy DNS

Prywatna strefa DNS umożliwia routing DNS między SQL Managed Instances i SQL Server.

Tworzenie strefy prywatnej

  1. Zaloguj się do portalu Azure.

  2. Wybierz pozycję Utwórz zasób aby utworzyć nowy zasób Azure.

  3. Wyszukaj private dns zone w Azure Marketplace.

  4. Wybierz strefę Private DNS opublikowaną przez Microsoft, a następnie wybierz Utwórz aby utworzyć strefę DNS.

  5. Wybierz subskrypcję i grupę zasobów z listy rozwijanej.

  6. Podaj dowolną nazwę strefy DNS, taką jak repldns.com.

    Zrzut ekranu przedstawiający tworzenie prywatnej strefy DNS w portalu Azure.

  7. Wybierz Przejrzyj i utwórz. Przejrzyj parametry prywatnej strefy DNS, a następnie wybierz pozycję Utwórz , aby utworzyć zasób.

Tworzenie rekordu A

  1. Przejdź do nowej strefy Private DNS i wybierz Przegląd.

  2. Wybierz pozycję + Dodaj rekord, aby utworzyć nowy rekord A.

  3. Podaj nazwę maszyny wirtualnej SQL Server oraz prywatny wewnętrzny adres IP.

    Zrzut ekranu przedstawiający sposób konfigurowania rekordu A.

  4. Wybierz przycisk OK , aby utworzyć rekord A.

  1. Przejdź do nowej strefy Private DNS i wybierz Linki sieciowe .

  2. Wybierz + Dodaj.

  3. Podaj nazwę linku, na przykład Pub-link.

  4. Wybierz swoją subskrypcję z listy rozwijanej, a następnie wybierz wirtualną sieć dla zarządzanego wystąpienia SQL wydawcy.

  5. Zaznacz pole wyboru obok pozycji Włącz automatyczną rejestrację.

    Zrzut ekranu przedstawiający sposób tworzenia linku sieci wirtualnej.

  6. Wybierz przycisk OK , aby połączyć sieć wirtualną.

  7. Powtórz te kroki, aby dodać link dla sieci wirtualnej subskrybenta z nazwą taką jak Sub-link.

Tworzenie konta magazynu Azure

Utwórz konto magazynowe Azure dla katalogu roboczego, a wówczas utwórz udział plików w koncie magazynowym.

Wartości konfiguracji pamięci

Podczas konfigurowania dystrybucji potrzebne są następujące wartości:

  • Format ścieżki katalogu roboczego: \\<storage-account-name>.file.core.windows.net\<file-share-name>
  • Format łącza ciągu połączenia Storage: DefaultEndpointsProtocol=https;AccountName=<Storage-Account-Name>;AccountKey=<key>;EndpointSuffix=core.windows.net

Ważne

Użyj tylko ukośników odwrotnych (\) w ścieżce katalogu roboczego. Ukośniki (/) powodują błędy połączenia.

Przykładowe wartości używane w tym samouczku:

Parameter Przykładowa wartość
Katalog roboczy \\replstorage.file.core.windows.net\replshare
Łańcuch połączenia DefaultEndpointsProtocol=https;AccountName=replstorage;AccountKey=123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ==;EndpointSuffix=core.windows.net

Aby uzyskać więcej informacji, zobacz Zarządzanie kluczami dostępu do konta magazynu.

Utwórz bazę danych

Utwórz nową bazę danych w zarządzanym wystąpieniu SQL wydawcy. W tym celu wykonaj następujące kroki:

  1. Uruchom SQL Server Management Studio na SQL Server.
  2. Połącz się z zarządzanym wystąpieniem SQL wydawcy (sql-mi-publisher).
  3. Otwórz okno Nowe zapytanie i wykonaj następujące zapytania T-SQL.

Usuń bazę danych, jeśli istnieje i utwórz nową:

USE [master];
GO

IF EXISTS (SELECT * FROM sys.sysdatabases WHERE name = 'ReplTutorial')
BEGIN
    DROP DATABASE ReplTutorial;
END
GO

CREATE DATABASE [ReplTutorial];
GO

Utwórz tabelę testowej replikacji:

USE [ReplTutorial];
GO

CREATE TABLE ReplTest (
   ID INT NOT NULL PRIMARY KEY,
   c1 VARCHAR(100) NOT NULL,
   dt1 DATETIME NOT NULL DEFAULT getdate()
);
GO

Wstaw przykładowe dane:

USE [ReplTutorial];
GO

INSERT INTO ReplTest (ID, c1) VALUES (6, 'pub');
INSERT INTO ReplTest (ID, c1) VALUES (2, 'pub');
INSERT INTO ReplTest (ID, c1) VALUES (3, 'pub');
INSERT INTO ReplTest (ID, c1) VALUES (4, 'pub');
INSERT INTO ReplTest (ID, c1) VALUES (5, 'pub');
GO

Sprawdź, czy dane zostały wstawione:

SELECT * FROM ReplTest;
GO

Oczekiwane dane wyjściowe: 5 wierszy z identyfikatorami 2, 3, 4, 5 i 6.

Konfigurowanie dystrybucji

Po nawiązaniu łączności i utworzeniu przykładowej bazy danych można skonfigurować dystrybucję w wystąpieniu zarządzanym SQL dystrybutora (sql-mi-distributor).

Parametry konfiguracji dystrybucji

Przed skonfigurowaniem dystrybucji zbierz następujące wartości:

Parameter Description Example
Nazwa DNS dystrybutora Nazwa wystąpienia dystrybutora FQDN sql-mi-distributor.b6bf57.database.windows.net
Nazwa DNS wydawcy Pełna nazwa domeny (FQDN) wystąpienia wydawcy sql-mi-publisher.b6bf57.database.windows.net
@working_directory Azure Files ścieżka udziału (użyj tylko ukośników) \\replstorage.file.core.windows.net\replshare
@storage_connection_string Łańcuch połączenia konta magazynowego danych DefaultEndpointsProtocol=https;AccountName=replstorage;...
@security_mode Tryb uwierzytelniania (0 = uwierzytelnianie SQL) 0
@login / @password Poświadczenia logowania SQL azureuser

Konfigurowanie wystąpienia dystrybutora

  1. Uruchom SQL Server Management Studio na SQL Server.
  2. Połącz się z dystrybutorem wystąpienia zarządzanego SQL (sql-mi-distributor).
  3. Otwórz okno Nowe zapytanie i uruchom następujące polecenia.

Dodaj dystrybutora:

EXECUTE sp_adddistributor
    @distributor = 'sql-mi-distributor.b6bf57.database.windows.net',
    @password = '<distributor_admin_password>';

Utwórz bazę danych dystrybucji:

EXECUTE sp_adddistributiondb @database = N'distribution';

Sprawdź, czy baza danych dystrybucji została utworzona:

SELECT name FROM sys.databases WHERE name = 'distribution';

Dodaj wydawcę do dystrybutora:

EXECUTE sp_adddistpublisher
    @publisher = 'sql-mi-publisher.b6bf57.database.windows.net',
    @distribution_db = N'distribution',
    @security_mode = 0,
    @login = N'azureuser',
    @password = N'<publisher_password>',
    @working_directory = N'\\replstorage.file.core.windows.net\replshare',
    @storage_connection_string = N'DefaultEndpointsProtocol=https;AccountName=replstorage;AccountKey=123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ==;EndpointSuffix=core.windows.net';

Uwaga

Użyj tylko ukośników odwrotnych (\) dla parametru @working_directory . Ukośniki (/) powodują błędy połączenia.

Zarejestruj dystrybutora w wydawcy

  1. Połącz się z zarządzanym wystąpieniem SQL wydawcy (sql-mi-publisher).
  2. Otwórz okno Nowe zapytanie i uruchom następujące polecenie, aby zarejestrować dystrybutora:
USE master;
GO

EXECUTE sys.sp_adddistributor
    @distributor = 'sql-mi-distributor.b6bf57.database.windows.net',
    @password = '<distributor_admin_password>';

Sprawdź, czy dystrybutor jest zarejestrowany:

SELECT * FROM sys.servers WHERE is_distributor = 1;

Tworzenie publikacji

Po skonfigurowaniu dystrybucji można utworzyć publikację. W tym celu wykonaj następujące kroki:

  1. Uruchom SQL Server Management Studio na SQL Server.

  2. Połącz się z zarządzanym wystąpieniem SQL wydawcy (sql-mi-publisher).

  3. W Object Explorer rozwiń węzeł Replication i kliknij prawym przyciskiem myszy na folder Local Publication. Wybierz pozycję Nowa publikacja....

  4. Wybierz przycisk Dalej , aby przejść obok strony powitalnej.

  5. Na stronie Baza danych publikacji, wybierz utworzoną ReplTutorial wcześniej bazę danych. Wybierz Dalej.

  6. Na stronie Typ publikacji wybierz pozycję Publikacja transakcyjna. Wybierz Dalej.

  7. Na stronie Artykuły zaznacz pole wyboru obok pozycji Tabele. Wybierz Dalej.

  8. Na stronie Filtrowanie wierszy tabeli wybierz pozycję Dalej bez dodawania filtrów.

  9. Na stronie Snapshot Agent zaznacz pole wyboru obok pozycji Utwórz migawkę natychmiast i zachowaj migawkę dostępną do inicjowania subskrypcji. Wybierz Dalej.

  10. Na stronie Agent Security wybierz Ustawienia zabezpieczeń.... Podaj dane logowania do SQL Server, aby użyć ich dla Snapshot Agent oraz do połączenia z wydawcą. Wybierz OK, aby zamknąć stronę Zabezpieczenia agenta obrazu. Wybierz Dalej.

    Screenshot przedstawiający sposób konfigurowania Snapshot Agent security.

  11. Na stronie Akcje kreatora wybierz pozycję Utwórz publikację, a (opcjonalnie) wybierz pozycję Wygeneruj plik skryptu z krokami tworzenia publikacji, jeśli chcesz zapisać ten skrypt do późniejszego użycia.

  12. Na stronie Ukończ pracę Kreatora nadaj publikacji nazwę ReplTest, a następnie wybierz Dalej, aby utworzyć publikację.

  13. Po utworzeniu publikacji odśwież węzeł Replication w węźle Object Explorer i rozwiń węzeł Lokalne publikacje aby zobaczyć nową publikację.

Tworzenie subskrypcji

Po utworzeniu publikacji możesz utworzyć subskrypcję. W tym celu wykonaj następujące kroki:

  1. Uruchom SQL Server Management Studio na SQL Server.
  2. Połącz się z zarządzanym wystąpieniem SQL wydawcy (sql-mi-publisher).
  3. Otwórz okno Nowe zapytanie i uruchom następujące polecenia Transact-SQL. Użyj nazwy DNS skonfigurowanej w prywatnej strefie DNS w ramach nazwy subskrybenta.

Parametry subskrypcji

Parameter Wartość Description
@subscriber sql-vm-subscriber.repldns.com Nazwa DNS subskrybenta (z prywatnej strefy DNS)
@destination_db ReplSub Baza danych dla subskrybenta
@subscription_type Push Dystrybutor przesyła zmiany do subskrybenta
@sync_type automatic Automatyczna synchronizacja początkowa

Dodaj subskrypcję:

USE [ReplTutorial];
GO

EXEC sp_addsubscription
    @publication = N'ReplTest',
    @subscriber = N'sql-vm-subscriber.repldns.com',
    @destination_db = N'ReplSub',
    @subscription_type = N'Push',
    @sync_type = N'automatic',
    @article = N'all',
    @update_mode = N'read only',
    @subscriber_type = 0;

Dodaj agenta subskrypcji push:

EXEC sp_addpushsubscription_agent
    @publication = N'ReplTest',
    @subscriber = N'sql-vm-subscriber.repldns.com',
    @subscriber_db = N'ReplSub',
    @job_login = N'azureuser',
    @job_password = '<Complex Password>',
    @subscriber_security_mode = 0,
    @subscriber_login = N'azureuser',
    @subscriber_password = '<Complex Password>',
    @dts_package_location = N'Distributor';
GO

Sprawdź, czy subskrypcja została utworzona:

SELECT * FROM distribution.dbo.MSsubscriptions;

Testowanie replikacji

Po skonfigurowaniu replikacji można ją przetestować, wstawiając nowe elementy po stronie wydawcy i obserwując, jak zmiany są propagowane do subskrybenta.

Wyświetlanie początkowych danych dla subskrybenta

Połącz się z subskrybentem SQL Server i uruchom następujące zapytanie:

USE ReplSub;
GO

SELECT * FROM dbo.ReplTest;

Oczekiwane dane wyjściowe: 5 wierszy z identyfikatorami 2, 3, 4, 5 i 6 (początkowe dane od wydawcy).

Wstawianie nowych danych dla wydawcy

Połącz się z zarządzanym wystąpieniem SQL wydawcy (sql-mi-publisher) i wstaw nowy wiersz:

USE ReplTutorial;
GO

INSERT INTO ReplTest (ID, c1) VALUES (15, 'pub');

Zweryfikuj wkładkę u wydawcy:

SELECT * FROM ReplTest WHERE ID = 15;

Zweryfikuj replikację do subskrybenta

Po kilku chwilach nawiąż połączenie z subskrybentem i sprawdź, czy nowy wiersz został zreplikowany:

USE ReplSub;
GO

SELECT * FROM dbo.ReplTest WHERE ID = 15;

Oczekiwane dane wyjściowe: 1 wiersz z identyfikatorem 15 i wartość c1 "pub".

Czyszczenie zasobów

  1. Przejdź do grupy zasobów w portalu Azure.
  2. Wybierz wystąpienia zarządzane SQL, a następnie wybierz pozycję Usuń. Wpisz yes w polu tekstowym, aby potwierdzić, że chcesz usunąć zasób, a następnie wybierz pozycję Usuń. Ukończenie tego procesu w tle może zająć trochę czasu i dopóki nie zostanie to zrobione, nie będzie można usunąć klastra wirtualnego ani żadnych innych zasobów zależnych. Obserwuj proces usuwania na karcie Działanie, aby upewnić się, że wystąpienie zarządzane SQL zostało usunięte.
  3. Po usunięciu zarządzanego wystąpienia SQL usuń klaster wirtualny, wybierając go w grupie zasobów, a następnie wybierając Usuń. Wpisz yes w polu tekstowym, aby potwierdzić, że chcesz usunąć zasób, a następnie wybierz pozycję Usuń.
  4. Usuń wszystkie pozostałe zasoby. Wpisz yes w polu tekstowym, aby potwierdzić, że chcesz usunąć zasób, a następnie wybierz pozycję Usuń.
  5. Usuń grupę zasobów, wybierając pozycję Usuń grupę zasobów, wpisując nazwę grupy myResourceGroupzasobów, a następnie wybierając pozycję Usuń.

Znane błędy

Logowanie do Windows nie jest obsługiwane

Exception Message: Windows logins are not supported in this version of SQL Server.

Agent został skonfigurowany za pomocą loginu Windows i musi zamiast tego użyć loginu SQL Server. Użyj strony właściwości publikacji Agent Security aby zmienić poświadczenia logowania na SQL Server.

Nie można nawiązać połączenia z Azure Storage

Connecting to Azure Files Storage '\\replstorage.file.core.windows.net\replshare' Failed to connect to Azure Storage '' with OS error: 53.
2019-11-19 02:21:05.07 Obtained Azure Storage Connection String for replstorage
2019-11-19 02:21:05.07 Connecting to Azure Files Storage '\\replstorage.file.core.windows.net\replshare'
2019-11-19 02:21:31.21 Failed to connect to Azure Storage '' with OS error: 53.

Jest to prawdopodobne, ponieważ port 445 jest zamknięty w zaporze Azure, zaporze Windows lub w obu tych zaporach.

Connecting to Azure Files Storage '\\replstorage.file.core.windows.net\replshare' Failed to connect to Azure Storage '' with OS error: 55.

Użycie ukośnika zamiast backslasha w ścieżce pliku dla udziału plików może również spowodować ten błąd.

  • Jest to dopuszczalne: \\replstorage.file.core.windows.net\replshare
  • Może to spowodować błąd systemu operacyjnego 55: \\replstorage.file.core.windows.net/replshare

Nie można nawiązać połączenia z subskrybentem

The process could not connect to Subscriber 'SQL-VM-SUBSCRIBER
Could not open a connection to SQL Server [53].
A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections.

Możliwe rozwiązania:

  • Upewnij się, że port 1433 jest otwarty.
  • Upewnij się, że protokół TCP/IP jest włączony dla subskrybenta.
  • Upewnij się, że nazwa DNS została użyta podczas tworzenia subskrybenta.
  • Sprawdź, czy sieci wirtualne są poprawnie połączone w prywatnej strefie DNS.
  • Sprawdź, czy rekord A jest poprawnie skonfigurowany.
  • Sprawdź, czy peering sieci wirtualnych jest poprawnie skonfigurowany.

Brak publikacji, do których można subskrybować

Podczas dodawania nowej subskrypcji przy użyciu kreatora Nowa subskrypcja na stronie Publikacja może się okazać, że nie ma baz danych i publikacji wymienionych jako dostępne opcje. Może zostać wyświetlony następujący komunikat o błędzie:

There are no publications to which you can subscribe, either because this server has no publications or because you do not have sufficient privileges to access the publications.

Chociaż jest możliwe, że ten komunikat o błędzie jest dokładny i naprawdę nie ma publikacji dostępnych dla wydawcy, z którym nawiązałeś połączenie lub nie masz wystarczających uprawnień, starsza wersja SQL Server Management Studio może również spowodować ten błąd. Spróbuj przeprowadzić uaktualnienie do wersji SQL Server Management Studio 18.0 lub nowszej, aby wykluczyć ją jako główną przyczynę.