Replica transazionale con database singoli, in pool e dell'istanza nel database SQL di AzureTransactional replication with single, pooled, and instance databases in Azure SQL Database

La replica transazionale è una funzionalità del database SQL di Azure e di SQL Server che consente di replicare i dati da una tabella nel database SQL di Azure o in un SQL Server verso tabelle inserite in database remoti.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. Questa funzionalità consente di sincronizzare più tabelle in database diversi.This feature allows you to synchronize multiple tables in different databases.

Quando usare la replica transazionaleWhen to use Transactional replication

La replica transazionale è utile negli scenari seguenti:Transactional replication is useful in the following scenarios:

  • Pubblicare le modifiche apportate in una o più tabelle in un database e distribuirle in uno o più SQL Server o database SQL di Azure che hanno sottoscritto le modifiche.Publish 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.
  • Mantenere più database distribuiti in stato sincronizzato.Keep several distributed databases in synchronized state.
  • Eseguire la migrazione dei database da una SQL Server o da un'istanza gestita a un altro database pubblicando continuamente le modifiche.Migrate databases from one SQL Server or managed instance to another database by continuously publishing the changes.

PanoramicaOverview

I componenti chiave della replica transazionale sono illustrati nell'immagine seguente:The key components in transactional replication are shown in the following picture:

Replica con database SQL

Il server di pubblicazione è un'istanza o un server che pubblica le modifiche apportate in alcune tabelle (articoli) inviando gli aggiornamenti al database di distribuzione.The Publisher is an instance or server that publishes changes made on some tables (articles) by sending the updates to the Distributor. La pubblicazione in un database SQL di Azure qualsiasi da un SQL Server locale è supportata dalle versioni seguenti di SQL Server:Publishing to any Azure SQL database from an on-premises SQL Server is supported by the following versions of SQL Server:

  • SQL Server 2019 (anteprima)SQL Server 2019 (preview)
  • SQL Server da 2016 a 2017SQL Server 2016 to SQL 2017
  • SQL Server 2014 SP1 CU3 o versione successiva (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 o versione successiva (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)
  • Per altre versioni di SQL Server che non supportano la pubblicazione in oggetti in Azure, è possibile usare il metodo di ripubblicazione dei dati per spostare i dati in versioni più recenti di SQL Server.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.

Il database di distribuzione è un'istanza o un server che raccoglie le modifiche negli articoli da un server di pubblicazione e li distribuisce ai sottoscrittori.The Distributor is an instance or server that collects changes in the articles from a Publisher and distributes them to the Subscribers. Il server di distribuzione può essere un'istanza gestita di database SQL di Azure o SQL Server (qualsiasi versione purché sia uguale o superiore alla versione del server di pubblicazione).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).

Il sottoscrittore è un'istanza o un server che riceve le modifiche apportate nel server di pubblicazione.The Subscriber is an instance or server that is receiving the changes made on the Publisher. I sottoscrittori possono essere database singoli, in pool e dell'istanza del database SQL di Azure o di database SQL Server.Subscribers can be either single, pooled, and instance databases in Azure SQL Database or SQL Server databases. Un sottoscrittore in un database singolo o in pool deve essere configurato come sottoscrittore push.A Subscriber on a single or pooled database must be configured as push-subscriber.

RoleRole Database singoli e in poolSingle and pooled databases Database dell'istanzaInstance databases
AutorePublisher NoNo Yes
Database di distribuzioneDistributor NoNo Yes
Sottoscrittore pullPull subscriber NoNo Yes
Sottoscrittore pushPush Subscriber Yes YesYes
     

Nota

Una sottoscrizione pull non è supportata quando il server di distribuzione è un database di istanza e il Sottoscrittore non lo è.A pull subscription is not supported when the distributor is an Instance database and the subscriber is not.

Esistono diversi tipi di replica:There are different types of replication:

ReplicaReplication Database singoli e in poolSingle and pooled databases Database in istanzaInstance databases
Transazionale standardStandard Transactional Sì (solo come sottoscrittore)Yes (only as subscriber) Yes
SnapshotSnapshot Sì (solo come sottoscrittore)Yes (only as subscriber) Yes
Replica di tipo mergeMerge replication NoNo NoNo
Peer-to-peerPeer-to-peer NoNo NoNo
BidirezionaleBidirectional NoNo Yes
Sottoscrizioni aggiornabiliUpdatable subscriptions NoNo NoNo
     

Nota

  • Se si cerca di configurare la replica usando una versione meno recente, potrebbero essere generati gli errori MSSQL_REPL20084. (Il processo non è riuscito a connettersi al sottoscrittore) e MSSQ_REPL40532 (Impossibile aprire il server <nome> richiesto dall'account di accesso.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. Accesso non riuscito).The login failed.)
  • Per usare tutte le funzionalità del database SQL di Azure, è necessario usare le versioni più recenti di SQL Server Management Studio (SSMS) e SQL Server Data Tools (SSDT).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).

Matrice di supporto per i database di istanza e i sistemi localiSupportability matrix for Instance Databases and On-premises systems

La matrice di supporto della replica per i database dell'istanza è identica a quella per SQL Server in locale.The replication supportability matrix for instance databases is the same as the one for SQL Server on-premises.

AutorePublisher Database di distribuzioneDistributor SottoscrittoreSubscriber
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
     

RequisitiRequirements

  • Per la connettività viene usata l'autenticazione SQL tra i partecipanti alla replica.Connectivity uses SQL Authentication between replication participants.
  • Una condivisione di account di archiviazione di Azure per la directory di lavoro usata dalla replica.An Azure Storage Account share for the working directory used by replication.
  • Per accedere alla condivisione file di Azure, è necessario aprire la porta 445 (TCP in uscita) nelle regole di sicurezza della subnet dell'istanza gestita.Port 445 (TCP outbound) needs to be open in the security rules of the managed instance subnet to access the Azure file share.
  • È necessario aprire la porta 1433 (TCP in uscita) se il server di pubblicazione/distribuzione si trova in un'istanza gestita e il Sottoscrittore è in locale.Port 1433 (TCP outbound) needs to be opened if the Publisher/Distributor are on a managed instance and the subscriber is on-premises.

Nota

Confrontare la sincronizzazione dati con la replica transazionaleCompare Data Sync with Transactional Replication

Sincronizzazione datiData Sync Replica transazionaleTransactional Replication
VantaggiAdvantages - Supporto attivo/attivo- Active-active support
- Bidirezionale tra database locali e database SQL di Azure- Bi-directional between on-premises and Azure SQL Database
- Latenza inferiore- Lower latency
- Coerenza delle transazioni- Transactional consistency
- Riutilizzo topologia esistente dopo la migrazione- Reuse existing topology after migration
SvantaggiDisadvantages - Latenza 5 min o superiore- 5 min or more latency
- Nessuna coerenza delle transazioni- No transactional consistency
- Maggiore impatto sulle prestazioni- Higher performance impact
- Impossibilità di pubblicare da database singolo o in pool di Database SQL di Azure- Can’t publish from Azure SQL Database single database or pooled database
- Alti costi di manutenzione- High maintenance cost

Configurazioni comuniCommon configurations

In generale, il server di pubblicazione e il database di pubblicazione devono entrambi essere nel cloud o locali.In general, the publisher and the distributor must be either in the cloud or on-premises. Le configurazioni seguenti sono supportate:The following configurations are supported:

Server di pubblicazione con server di distribuzione locale in un'istanza gestitaPublisher with local Distributor on a managed instance

Singola istanza come server di pubblicazione e database di distribuzione

Il server di pubblicazione e il server di distribuzione sono configurati all'interno di una singola istanza gestita e distribuiscono le modifiche ad altra istanza gestita, database singolo, database in pool o SQL Server in locale.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.

Server di pubblicazione con server di distribuzione remoto in un'istanza gestitaPublisher with remote distributor on a managed instance

In questa configurazione, un'istanza gestita pubblica le modifiche apportate al server di distribuzione in un'altra istanza gestita che può gestire molte istanze gestite di origine e distribuisce le modifiche a una o più destinazioni in istanza gestita, database singolo, database in pool o SQL Server.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.

Istanze separate per server di pubblicazione e database di distribuzione

I database di pubblicazione e distribuzione sono configurati in due istanze gestite.Publisher and distributor are configured on two managed instances. Questa configurazione presenta alcuni vincoli:There are some constraints with this configuration:

  • Entrambe le istanze gestite si trovano nello stesso vNet.Both managed instances are on the same vNet.
  • Le due istanze gestite sono nella stessa posizione.Both managed instances are in the same location.

Server di pubblicazione e database di distribuzione locali con sottoscrittore in un database singolo, in pool e dell'istanzaPublisher and distributor on-premises with a subscriber on a single, pooled, and instance database

Database SQL di Azure come sottoscrittore

In questa configurazione, un database SQL di Azure (database singolo, in pool e dell'istanza) è un sottoscrittore.In this configuration, an Azure SQL Database (single, pooled, and instance database) is a subscriber. Questa configurazione supporta la migrazione dal database locale al database di Azure.This configuration supports migration from on-premises to Azure. Se un sottoscrittore si trova in un database in pool o singolo, deve essere in modalità push.If a subscriber is on a single or pooled database, it must be in push mode.

Passaggi successiviNext steps

  1. Configurare la replica tra due istanze gestite.Configure replication between two managed instances.
  2. Creare una pubblicazione.Create a publication.
  3. Creare una sottoscrizione push usando il nome del server di database SQL di Azure come sottoscrittore (ad esempio N'azuresqldbdns.database.windows.net) e il nome del database SQL di Azure come database di destinazione (ad esempio 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. Informazioni sulle limitazioni della replica transazionale per un'istanza gestitaLearn about the limitations of Transactional replication for a managed instance

Vedere ancheSee Also