Articles

SQLShack

Il volume di dati conservati, gestiti e accessibili oggi non ha precedenti. Le aziende si aspettano che il reparto IT mantenga i dati online e accessibili a tempo indeterminato, esercitando un’intensa pressione sui database necessari per archiviarli e gestirli. Per soddisfare le esigenze di oggi; abbiamo bisogno di sostituire i processi legacy obsoleti e inefficienti con nuove tecniche più agili. La replica di SQL Server è una delle tecniche per soddisfare tali richieste.

  • Nota: Per ulteriori informazioni sulla replica dei database, leggere Diversi stakeholder, diversi punti di vista: perché la gestione dei database richiede un approccio sistematico articolo.

In questo articolo, ti consente di modellare la comprensione della topografia completa di replica di SQL Server, inclusi componenti, interni e SQL per associare tutto insieme. Dopo aver completato la lettura di questo articolo, capirai:

  • la replica di SQL Server, in generale
  • Componenti di transazione, la replica di SQL Server in particolare
  • Come ottenere distributore proprietà
  • Come trovare il publisher utilizzando lo stesso distributore
  • che Cosa sono i database utilizzati per la replica di SQL Server
  • La topologia generale di un ambiente di replica
  • Cosa sono gli articoli associati al tipo di replica di SQL Server modello
  • Come ottenere la pubblicazione di dettagli
  • Come ottenere i dettagli dell’abbonamento
  • la Replica di SQL Server agenti
  • E altro Replication

Replica

SQL Server replication è una tecnologia per copiare e distribuire dati e oggetti di database da un database all’altro e quindi sincronizzare tra database per mantenere la coerenza e l’integrità dei dati. Nella maggior parte dei casi, la replica è un processo di riproduzione dei dati alle destinazioni desiderate. La replica di SQL Server viene utilizzata per copiare e sincronizzare i dati in modo continuo o può anche essere pianificata per l’esecuzione a intervalli predeterminati. Esistono diverse tecniche di replica che supportano una varietà di approcci di sincronizzazione dei dati; unidirezionale; uno-a-molti; molti-a-uno; e bidirezionale, e mantengono diversi set di dati sincronizzati tra loro.

Transactional SQL Server replication components

Il seguente diagramma descrive i componenti della replica transactional SQL Server.

Tra cui la replica di SQL Server …

  • Publisher
  • database di Pubblicazione
  • Pubblicazione
  • Articoli
  • Distributore
  • database di Distribuzione
  • Sottoscrittore
  • database di Sottoscrizione
  • Abbonamento
  • Gli agenti di replica

la replica di SQL Server diagramma

Articolo

L’articolo è l’unità di base di Replica di SQL Server. Un articolo può essere costituito da tabelle, stored procedure e viste. È possibile ridimensionare l’articolo, orizzontalmente e verticalmente utilizzando un’opzione di filtro. Possiamo anche creare più articoli sullo stesso oggetto con alcune restrizioni e limitazioni.

Utilizzando la nuova pubblicazione guidata, l’articolo può essere navigato. Ci consente di visualizzare le proprietà di un articolo e di fornire opzioni per impostare le proprietà per gli articoli. In alcuni casi, le proprietà possono essere impostate durante la creazione della pubblicazione ed è una proprietà di sola lettura.

Dopo la creazione di una pubblicazione di replica di SQL Server, ad esempio, se alcune proprietà richiedono una modifica, a sua volta richiederà la generazione di una nuova istantanea di replica. Se la pubblicazione ha una o più sottoscrizioni, la modifica richiede la reinizializzazione di tutte le sottoscrizioni. Per ulteriori informazioni, vedere Come aggiungere / rilasciare articoli a / dalla pubblicazione esistente in SQL Server article.

Per un elenco di tutti gli articoli pubblicati, eseguire il seguente T-SQL

1
2
3
4
5
6
7
8
9
10
11
12

SELEZIONA
Pub.
,Art.
,Art.
,Art.
,Art.
DAL
.. Art
INNER JOIN .. Pub
SULL’Art. = Pub.
ORDER BY
Pub., Art.

To get the details of articles in transactional or merge SQL Server replication in a published database, run the following T-SQL.

1
2
3
4
5
6
7
8

SELECT st.name , st.schema_id, st.is_published , st.is_merge_published, is_schema_published
DA sys.tabelle st DOVE st. is_published = 1 o st. is_merge_published = 1 o st. is_schema_published = 1
UNION
SELECT sp.name, sp.schema_id, 0, 0, sp. is_schema_published
DA sys.procedure sp DOVE sp. is_schema_published = 1
UNION
SELECT sv.name, sv.schema_id, 0, 0, sv. is_schema_published
DA sys.viste sv DOVE sv. is_schema_published = 1;

To get detailed information about an article in the listed publisher, run the following T-SQL

1
2
3
4
5
6
7

DECLARE @publication AS sysname;
SET @publication = N’PROD_HIST_Pub’;
USE MES_PROD_AP
EXEC sp_helparticle
@publication = @publication;
GO

To get column level details, run the following T-SQL

1
2
3

USE MES_PROD_AP
GO
sp_helparticlecolumns @publication = N’PROD_HIST_Pub’ , @article = ‘tb_Branch_Plant’

elencare le colonne che vengono pubblicati in replica transazionale nel database di pubblicazione, eseguire il seguente T-SQL

1
SELEZIONARE object_name(object_id) , nome DA sys.colonne sc DOVE sc. is_replicated = 1;

Pubblicazioni

Una pubblicazione è una raccolta logica di articoli da un database. L’entità consente di definire e configurare le proprietà dell’articolo al livello superiore in modo che le proprietà vengano ereditate da tutti gli articoli di quel gruppo.

1
EXEC sp_helppublication;

Publisher database

Il publisher è un database che contiene un elenco di oggetti designati come SQL Server replication gli articoli sono noti come publication database. L’editore può avere una o più pubblicazioni. Ogni publisher definisce un meccanismo di propagazione dei dati creando diverse stored procedure di replica interne.

1
2
3

USE Distribution
GO
select * from MSpublications

Publisher

The Publisher is a database instance that makes data available to other locations through SQL Server replication. L’editore può disporre di una o più pubblicazioni, ciascuna delle quali definisce un insieme di oggetti e dati logicamente correlati da replicare.

Distributore

Il distributore è un database che funge da magazzino per i dati specifici di replica associati a uno o più Editori. In molti casi, il distributore è un singolo database che funge sia da editore che da distributore. Nel contesto della replica di SQL Server, questo è comunemente noto come “distributore locale”. D’altra parte, se è configurato su un server separato, è noto come “distributore remoto”. Ogni Editore è associato a un singolo database noto come” database di distribuzione”, ovvero”Distributore”.

Il database di distribuzione identifica e memorizza i dati di stato della replica di SQL Server, i metadati relativi alla pubblicazione e, in alcuni casi, funge da coda per i dati che si spostano dall’Editore agli abbonati.

A seconda del modello di replica, il Distributore potrebbe anche essere responsabile di notificare agli abbonati che hanno sottoscritto una pubblicazione che un articolo è stato modificato. Inoltre, il database di distribuzione mantiene l’integrità dei dati.

Database di distribuzione

Ogni distributore deve avere almeno un database di distribuzione. Il database di distribuzione è costituito da dettagli dell’articolo, metadati di replica e dati. Un distributore può contenere più di un database di distribuzione; tuttavia, tutte le pubblicazioni definite su un singolo editore devono utilizzare lo stesso database di distribuzione.

Per scoprire se …

  • un server è un distributore o no?

    1
    SELECT @@ServerName Servername, case when is_distributor=1 then ‘Yes’ else ‘No’ end status FROM sys.servers WHERE name=’repl_distributor’ AND data_source=@@servername;

  • a distribution database installed or not?

    1
    SELECT name FROM sys.databases WHERE is_distributor = 1
  • a Publisher is using this Distributor or not?

    1
    EXEC sp_get_distributor

  • or just to interrogate various Distributor and Distribution database properties?

    1
    2
    3

    EXEC sp_helpdistributor;
    EXEC sp_helpdistributiondb;
    EXEC sp_helpdistpublisher;

Subscriber

A database instance that consumes SQL Server replication data from a publication is called a Subscriber. L’abbonato può ricevere dati da uno o più editori e pubblicazioni. Il sottoscrittore può anche passare le modifiche ai dati al publisher o ripubblicare i dati ad altri sottoscrittori a seconda del tipo di progetto e modello di replica.

1
EXEC sp_helpsubscriberinfo;

Abbonamenti

Un abbonamento è una richiesta di una copia di una pubblicazione da consegnare a un Abbonato. L’abbonamento definisce quali dati di pubblicazione verranno ricevuti, dove e quando.

Esistono due tipi di abbonamenti: abbonamenti push e abbonamenti pull

  • Abbonamento push: il distributore aggiorna direttamente i dati nel database degli abbonati
  • Abbonamento Pull: l’abbonato deve controllare regolarmente presso il distributore se sono disponibili nuove modifiche e quindi aggiornare i dati nel database dell’abbonamento stesso.
1
EXEC sp_helpsubscription;

database di Sottoscrizione

Un database di destinazione di un modello di replica viene chiamato un database di sottoscrizione.

Agenti di replica

La replica di SQL Server utilizza un set predefinito di programmi autonomi e gli eventi sono noti come agenti, per eseguire le attività associate ai dati. Per impostazione predefinita, gli agenti di replica SQL Server vengono eseguiti come processi pianificati in SQL Server Agent. Gli agenti di replica possono anche essere eseguiti dalla riga di comando e dalle applicazioni che utilizzano gli oggetti di gestione della replica (RMO). Gli agenti di replica di SQL Server possono essere monitorati e amministrati utilizzando Replication Monitor e SQL Server Management Studio.

Replication snapshot Agent

L’agente snapshot di replica viene utilizzato con tutti i tipi di tecnologia di replica di SQL Server in quanto fornisce il set di dati necessario per eseguire la sincronizzazione iniziale dei dati del database di pubblicazione con il database di sottoscrizione. Prepara lo schema e i dati iniziali degli articoli pubblicati, dei file di snapshot e registra le informazioni sul tipo di sincronizzazione nel database di distribuzione.

Log Reader Agent

L’agente Log Reader viene utilizzato solo con la replica transazionale. Sposta le transazioni di replica dal log delle transazioni online del database di pubblicazione al database di distribuzione.

Agente di distribuzione

L’agente di distribuzione viene utilizzato solo con l’istantanea di replica e la replica transazionale di SQL Server. Questo agente applica l’istantanea di replica iniziale al database di sottoscrizione e successivamente, le modifiche ai dati vengono monitorate e registrate nel database di distribuzione e applicate al database di sottoscrizione.

Merge Agent

L’agente Merge viene utilizzato con il modello di replica merge. Per impostazione predefinita, l’agente di unione carica le modifiche dal sottoscrittore al Publisher e quindi scarica le modifiche dal Publisher al Sottoscrittore. Ogni abbonamento ha il proprio agente di unione che si connette sia al Publisher che al Sottoscrittore e aggiorna entrambi. L’agente di unione viene eseguito presso il distributore per le sottoscrizioni push o l’abbonato per le sottoscrizioni pull. Qui, la sincronizzazione è bidirezionale. I conflitti di dati sono gestiti da una serie di trigger che supporta l’intero processo

Finora, abbiamo visto una panoramica di alcuni dei concetti importanti della replica di SQL Server. Inoltre, gli script T-SQL vengono mostrati per interrogare le tabelle di sistema e le stored procedure di replica per rispondere alla maggior parte delle domande più frequenti sulla replica di SQL Server.

Discuterò di più sulla replica di SQL Server nei prossimi articoli. Se avete la sensazione che qualcosa può essere migliorato in questo articolo, non esitate a lasciare il vostro commento qui sotto…

sommario

la replica di SQL Server: Panoramica dei componenti e topografia

la Replica di SQL: Di base di installazione e di configurazione

Come Aggiungere/eliminare articoli da pubblicazioni esistenti in SQL Server

Come fare una rapida stima di confrontare i dati di due grandi database di SQL Server per vedere se sono uguali

SQL Server replica transazionale: Come reinizializzare un abbonamento tramite un backup del database SQL Server

la procedura di installazione di una custom transazioni di SQL Server replica Centrale del modello di abbonati e Più database di pubblicazione

la procedura di installazione di SQL Server personalizzato replica transazionale con un server di pubblicazione centrale e più database di sottoscrizione

Come impostare un DDL e DML di SQL Server database transazionale soluzione di replica

Come per l’installazione di cross-piattaforma transazionale di replica di SQL Server per il database di reporting su Linux

database di SQL Server migrazioni con zero perdita di dati e zero tempi di inattività

Utilizzo della replica dei dati transazionali per riprodurre e testare i carichi di produzione su un server di staging

Come configurare la replica del database di SQL Server per un server di reporting

Replica transazionale di SQL Server: Come reinizializzare un abbonamento mediante un “supporto di Replica solo” –TBA

la Replica di SQL Server il controllo e l’impostazione di avvisi utilizzando PowerShell –TBA

  • Autore
  • Post Recenti
Prashanth Jayaram
ho un Database tecnologo avendo 11 anni di ricca esperienza hands-on su tecnologie di Database. Sono Microsoft Certified Professional e sostenuto con una laurea in Master of Computer Application.
La mia specialità consiste nel progettare & implementando soluzioni ad alta disponibilità e migrazione DB multipiattaforma. Le tecnologie attualmente in lavorazione sono SQL Server, PowerShell, Oracle e MongoDB.
Visualizza tutti i messaggi di Prashanth Jayaram

Prashanth Jayaram
Ultimi messaggi di Prashanth Jayaram (vedi tutti)
  • Una rapida panoramica di controllo del database in SQL – gennaio 28, 2021
  • Come impostare la Sincronizzazione di Dati Azure tra Azure SQL database e di SQL Server-edificio – 20 gennaio 2021
  • Come eseguire Azure SQL database di Importazione/Esportazione, le operazioni di utilizzo di PowerShell – 14 gennaio 2021