Transaktionsreplikation mit Einzeldatenbanken, Pooldatenbanken und Instanzdatenbanken in Azure SQL-DatenbankTransactional replication with single, pooled, and instance databases in Azure SQL Database

Die Transaktionsreplikation ist ein Feature von Azure SQL-Datenbank und SQL Server, die Ihnen die Replikation von Daten aus einer Tabelle in Azure SQL-Datenbank oder einem SQL-Server zu den in Remotedatenbanken platzierten Tabellen ermöglicht.Transactional replication is a feature of Azure SQL Database and SQL Server that enables you to replicate data from a table in Azure SQL Database or a SQL Server to the tables placed on remote databases. Mit diesem Feature können Sie mehrere Tabellen in unterschiedlichen Datenbanken synchronisieren.This feature allows you to synchronize multiple tables in different databases.

Wann ist die Transaktionsreplikation zu verwenden?When to use Transactional replication

Die Transaktionsreplikation ist in den folgenden Szenarien nützlich:Transactional replication is useful in the following scenarios:

  • Veröffentlichen von Änderungen an Tabellen in einer Datenbank, die an SQL Server-Instanzen oder Azure SQL-Datenbanken verteilt werden, die die Änderungen abonniert habenPublish changes made in one or more tables in a database and distribute them to one or many SQL Server or Azure SQL databases that subscribed for the changes.
  • Synchronisierthalten mehrerer verteilter DatenbankenKeep several distributed databases in synchronized state.
  • Migrieren von Datenbanken aus einer SQL Server-Instanz oder einer verwalteten Instanz zu einer anderen Datenbank durch fortlaufendes Veröffentlichen der ÄnderungenMigrate databases from one SQL Server or managed instance to another database by continuously publishing the changes.

ÜbersichtOverview

Die wichtigsten Komponenten der Transaktionsreplikation sind in der folgenden Abbildung dargestellt:The key components in transactional replication are shown in the following picture:

Replikation zu SQL-Datenbank

Der Herausgeber ist eine Instanz oder ein Server, die bzw. der Änderungen an Tabellen (Artikeln) veröffentlicht, indem die Aktualisierungen an den Verteiler gesendet werden.The Publisher is an instance or server that publishes changes made on some tables (articles) by sending the updates to the Distributor. Das Veröffentlichen in einer Azure SQL-Datenbank von einem lokalen SQL Server wird durch die folgenden Versionen von SQL Server unterstützt:Publishing to any Azure SQL database from an on-premises SQL Server is supported by the following versions of SQL Server:

  • SQL Server 2019 (Vorschauversion)SQL Server 2019 (preview)
  • SQL Server 2016 bis SQL 2017SQL Server 2016 to SQL 2017
  • SQL Server 2014 SP1 CU3 oder höher (12.00.4427)SQL Server 2014 SP1 CU3 or greater (12.00.4427)
  • SQL Server 2014 RTM CU10 (12.00.2556)SQL Server 2014 RTM CU10 (12.00.2556)
  • SQL Server 2012 SP3 oder höher (11.0.6020)SQL Server 2012 SP3 or greater (11.0.6020)
  • SQL Server 2012 SP2 CU8 (11.0.5634.0)SQL Server 2012 SP2 CU8 (11.0.5634.0)
  • Für andere Versionen von SQL Server, die keine Veröffentlichung in Objekten in Azure unterstützen, kann die Methode der erneuten Veröffentlichung von Daten verwendet werden, um Daten in neuere Versionen von SQL Server verschieben.For other versions of SQL Server that do not support publishing to objects in Azure, it is possible to utilize the republishing data method to move data to newer versions of SQL Server.

Der Verteiler ist eine Instanz oder ein Server, die bzw. der Änderungen an den Artikeln von einem Herausgeber erfasst und an die Abonnenten verteilt.The Distributor is an instance or server that collects changes in the articles from a Publisher and distributes them to the Subscribers. Der Verteiler kann entweder eine verwaltete Azure SQL-Datenbank-Instanz oder eine SQL Server-Instanz (beliebige Version, sofern nicht älter als die Herausgeberversion) sein.The Distributor can be either Azure SQL Database managed instance or SQL Server (any version as long it is equal to or higher than the Publisher version).

Der Abonnent ist eine Instanz oder ein Server, die bzw. der die auf dem Herausgeber vorgenommenen Änderungen erhält.The Subscriber is an instance or server that is receiving the changes made on the Publisher. Abonnenten können Einzeldatenbanken, Pooldatenbanken und Instanzdatenbanken in Azure SQL-Datenbank- oder SQL Server-Datenbanken sein.Subscribers can be either single, pooled, and instance databases in Azure SQL Database or SQL Server databases. Ein Abonnent einer Einzel- oder Pooldatenbank muss als Push-Abonnent konfiguriert sein.A Subscriber on a single or pooled database must be configured as push-subscriber.

RoleRole Einzel- und PooldatenbankenSingle and pooled databases InstanzdatenbankenInstance databases
HerausgeberPublisher NeinNo JaYes
VerteilerDistributor NeinNo JaYes
Pull-AbonnentPull subscriber NeinNo JaYes
Push-AbonnentPush Subscriber JaYes JaYes
     

Hinweis

Ein Pull-Abonnement wird nicht unterstützt, wenn der Verteiler eine Instanzdatenbank und der Abonnent keine Instanzdatenbank ist.A pull subscription is not supported when the distributor is an Instance database and the subscriber is not.

Es gibt verschiedene Replikationstypen:There are different types of replication:

ReplikationReplication Einzel- und PooldatenbankenSingle and pooled databases InstanzdatenbankenInstance databases
TransaktionsreplikationStandard Transactional Ja (nur als Abonnent)Yes (only as subscriber) JaYes
MomentaufnahmeSnapshot Ja (nur als Abonnent)Yes (only as subscriber) JaYes
MergereplikationMerge replication NeinNo NeinNo
Peer-to-PeerPeer-to-peer NeinNo NeinNo
BidirektionalBidirectional NeinNo JaYes
Aktualisierbare AbonnementsUpdatable subscriptions NeinNo NeinNo
     

Hinweis

  • Der Versuch, Replikationen mit einer älteren Version zu konfigurieren, kann zu dem Fehler mit der Nummer MSSQL_REPL20084 (Der Prozess konnte keine Verbindung mit dem Abonnenten herstellen.) oder MSSQ_REPL40532 (Der von der Anmeldung angeforderte Server <Name> kann nicht geöffnet werden) führen.Attempting to configure replication using an older version can result in error number MSSQL_REPL20084 (The process could not connect to Subscriber.) and MSSQ_REPL40532 (Cannot open server <name> requested by the login. Die Anmeldung ist fehlgeschlagen.)The login failed.)
  • Um alle Features von Azure SQL-Datenbank verwenden zu können, müssen Sie die neuesten Versionen von SQL Server Management Studio (SSMS) und SQL Server Data Tools (SSDT) verwenden.To use all the features of Azure SQL Database, you must be using the latest versions of SQL Server Management Studio (SSMS) and SQL Server Data Tools (SSDT).

Matrix für die Unterstützbarkeit von Instanzdatenbanken und lokalen SystemenSupportability matrix for Instance Databases and On-premises systems

Die Unterstützungsmatrix für die Replikation für Instanzdatenbanken ist identisch mit der für eine lokale SQL Server-Instanz.The replication supportability matrix for instance databases is the same as the one for SQL Server on-premises.

HerausgeberPublisher VerteilerDistributor AbonnentSubscriber
SQL Server 2017SQL Server 2017 SQL Server 2017SQL Server 2017 SQL Server 2017SQL Server 2017
SQL Server 2016SQL Server 2016
SQL Server 2014SQL Server 2014
SQL Server 2016SQL Server 2016 SQL Server 2017SQL Server 2017
SQL Server 2016SQL Server 2016
SQL Server 2017SQL Server 2017
SQL Server 2016SQL Server 2016
SQL Server 2014SQL Server 2014
SQL Server 2012SQL Server 2012
SQL Server 2014SQL Server 2014 SQL Server 2017SQL Server 2017
SQL Server 2016SQL Server 2016
SQL Server 2014SQL Server 2014
SQL Server 2017SQL Server 2017
SQL Server 2016SQL Server 2016
SQL Server 2014SQL Server 2014
SQL Server 2012SQL Server 2012
SQL Server 2008 R2SQL Server 2008 R2
SQL Server 2008SQL Server 2008
SQL Server 2012SQL Server 2012 SQL Server 2017SQL Server 2017
SQL Server 2016SQL Server 2016
SQL Server 2014SQL Server 2014
SQL Server 2012SQL Server 2012
SQL Server 2016SQL Server 2016
SQL Server 2014SQL Server 2014
SQL Server 2012SQL Server 2012
SQL Server 2008 R2SQL Server 2008 R2
SQL Server 2008SQL Server 2008
SQL Server 2008 R2SQL Server 2008 R2
SQL Server 2008SQL Server 2008
SQL Server 2017SQL Server 2017
SQL Server 2016SQL Server 2016
SQL Server 2014SQL Server 2014
SQL Server 2012SQL Server 2012
SQL Server 2008 R2SQL Server 2008 R2
SQL Server 2008SQL Server 2008
SQL Server 2014SQL Server 2014
SQL Server 2012SQL Server 2012
SQL Server 2008 R2SQL Server 2008 R2
SQL Server 2008SQL Server 2008
     

Requirements (Anforderungen)Requirements

  • Für die Verbindung zwischen den Teilnehmern der Replikation wird SQL-Authentifizierung verwendet.Connectivity uses SQL Authentication between replication participants.
  • Ein Azure-Speicherkonto für das von der Replikation verwendete Arbeitsverzeichnis.An Azure Storage Account share for the working directory used by replication.
  • Port 445 (TCP ausgehend) muss in den Sicherheitsregeln des Subnetzes der verwalteten Instanz geöffnet sein, um auf die Azure-Dateifreigabe zugreifen zu können.Port 445 (TCP outbound) needs to be open in the security rules of the managed instance subnet to access the Azure file share.
  • Port 1433 (TCP ausgehend) muss geöffnet sein, wenn sich der Verleger/Verteiler in einer verwalteten Instanz und der Abonnent in der lokalen Umgebung befindet.Port 1433 (TCP outbound) needs to be opened if the Publisher/Distributor are on a managed instance and the subscriber is on-premises.

Hinweis

Vergleichen von Datensynchronisierung und TransaktionsreplikationCompare Data Sync with Transactional Replication

DatensynchronisierungData Sync TransaktionsreplikationTransactional Replication
VorteileAdvantages – Aktiv/Aktiv-Unterstützung- Active-active support
– Bidirektional zwischen lokaler und Azure SQL-Datenbank- Bi-directional between on-premises and Azure SQL Database
– Niedrigere Latenzzeiten- Lower latency
– Transaktionskonsistenz- Transactional consistency
– Wiederverwendung vorhandener Topologie nach der Migration- Reuse existing topology after migration
NachteileDisadvantages – Latenzzeiten von 5 Minuten und mehr- 5 min or more latency
– Keine Transaktionskonsistenz- No transactional consistency
– Größere Auswirkung auf die Leistung- Higher performance impact
– Keine Veröffentlichung über eine Einzel- oder Pooldatenbank in Azure SQL-Datenbank- Can’t publish from Azure SQL Database single database or pooled database
– Hohe Wartungskosten- High maintenance cost

Häufig verwendete KonfigurationenCommon configurations

Im Allgemeinen müssen sich Herausgeber und Verteiler gemeinsam entweder in der Cloud oder an einem lokalen Standort befinden.In general, the publisher and the distributor must be either in the cloud or on-premises. Die folgenden Konfigurationen werden unterstützt:The following configurations are supported:

Verleger mit lokalem Verteiler in verwalteter InstanzPublisher with local Distributor on a managed instance

Einzelinstanz als Herausgeber und Verteiler

Verleger und Verteiler sind in einer einzelnen verwalteten Instanz konfiguriert und verteilen Änderungen an andere verwaltete Instanzen, Einzeldatenbanken, Pooldatenbanken oder lokale SQL Server-Instanzen.Publisher and distributor are configured within a single managed instance and distributing changes to other managed instance, single database, pooled database, or SQL Server on-premises.

Verleger mit Remoteverteiler in verwalteter InstanzPublisher with remote distributor on a managed instance

In dieser Konfiguration veröffentlicht eine verwaltete Instanz Änderungen auf dem Verteiler in einer anderen verwalteten Instanz, die zahlreiche verwaltete Quellinstanzen bedienen und Änderungen an ein oder mehrere Ziele in verwalteten Instanzen, Einzeldatenbanken, Pooldatenbanken oder SQL Server-Instanzen verteilen kann.In this configuration, one managed instance publishes changes to distributor placed on another managed instance that can serve many source managed instances and distribute changes to one or many targets on managed instance, single database, pooled database, or SQL Server.

Separate Instanzen als Herausgeber und Verteiler

Verleger und Verteiler werden in zwei verwalteten Instanzen konfiguriert.Publisher and distributor are configured on two managed instances. Bei dieser Konfiguration gibt es einige Einschränkungen:There are some constraints with this configuration:

  • Beide verwaltete Instanzen befinden sich im gleichen VNET.Both managed instances are on the same vNet.
  • Die beiden verwalteten Instanzen befinden sich am gleichen Standort.Both managed instances are in the same location.

Herausgeber und Verteiler am lokalen Standort mit einem Abonnenten eines Singletons, einer in einem Pool zusammengefassten Datenbank oder einer InstanzdatenbankPublisher and distributor on-premises with a subscriber on a single, pooled, and instance database

Azure SQL-DB als Abonnent

In dieser Konfiguration ist eine Azure SQL-Datenbank (Singleton, in einem Pool zusammengefasste und Instanzdatenbank) ein Abonnent.In this configuration, an Azure SQL Database (single, pooled, and instance database) is a subscriber. Diese Konfiguration unterstützt die Migration vom lokalen Standort zu Azure.This configuration supports migration from on-premises to Azure. Für einen Abonnenten in einer Einzel- oder Pooldatenbank muss dafür der Pushmodus aktiviert sein.If a subscriber is on a single or pooled database, it must be in push mode.

Nächste SchritteNext steps

  1. Konfigurieren Sie die Replikation zwischen zwei verwalteten Instanzen.Configure replication between two managed instances.
  2. Erstellen Sie eine Veröffentlichung.Create a publication.
  3. Erstellen Sie ein Push-Abonnement mit dem Servernamen von Azure SQL-Datenbank als Abonnent (z. B. N'azuresqldbdns.database.windows.net) und dem Namen der Azure SQL-Datenbank als Zieldatenbank (z. B. AdventureWorks).Create a push subscription by using the Azure SQL Database server name as the subscriber (for example N'azuresqldbdns.database.windows.net and the Azure SQL Database name as the destination database (for example Adventureworks. ))
  4. Informieren Sie sich über die Einschränkungen von Transaktionsreplikationen für eine verwaltete Instanz.Learn about the limitations of Transactional replication for a managed instance

Siehe auchSee Also