Articles

SQLShack

ilość przechowywanych, zarządzanych i dostępnych danych jest dziś niespotykana. Firmy oczekują, że dział IT utrzyma dane online i będzie dostępny przez cały czas, wywierając dużą presję na bazy danych wymagane do ich przechowywania i zarządzania nimi. Aby sprostać dzisiejszym potrzebom, musimy zastąpić przestarzałe i nieefektywne procesy przestarzałe nowymi, bardziej zwinnymi technikami. Replikacja SQL Server jest jedną z technik pozwalających sprostać takim wymaganiom.

  • Uwaga: Aby dowiedzieć się więcej o replikowaniu baz danych, przeczytaj artykuł różne zainteresowane strony, różne poglądy: dlaczego zarządzanie bazami danych wymaga systematycznego podejścia.

w tym artykule, pozwól, że ukształtujesz swoje zrozumienie pełnej topografii replikacji serwera SQL, w tym komponentów, wewnętrznych i SQL, aby powiązać je wszystkie razem. Po zakończeniu czytania tego artykułu zrozumiesz:

  • replikacja SQL Server, ogólnie
  • Komponenty transakcyjnej replikacji SQL Server, w szczególności
  • Jak uzyskać właściwości dystrybutora
  • Jak znaleźć wydawcę używającego tego samego dystrybutora
  • jakie są bazy danych używane do replikacji SQL Server
  • ogólna topologia środowiska replikacji
  • jakie są artykuły odwzorowane na typ modelu replikacji SQL Server
  • jak uzyskać publikację szczegóły
  • Jak uzyskać szczegóły subskrypcji
  • agenci replikacji SQL Server
  • i więcej …

replikacja

SQL Server replikacja jest technologią służącą do kopiowania i dystrybucji danych i obiektów bazodanowych z jednej bazy danych do drugiej, a następnie synchronizacji pomiędzy bazami danych w celu zachowania spójności i integralności danych. W większości przypadków replikacja jest procesem odtwarzania danych w pożądanych celach. Replikacja SQL Server służy do kopiowania i ciągłej synchronizacji danych lub może być również zaplanowana do pracy w określonych odstępach czasu. Istnieje kilka różnych technik replikacji, które obsługują różne podejścia do synchronizacji danych; jednokierunkowy; jeden do wielu; wiele do jednego; i dwukierunkowy, i zachować kilka zbiorów danych w synchronizacji ze sobą.

Komponenty Transactional SQL Server replication

poniższy diagram przedstawia komponenty transactional SQL Server replication.

w tym replikacja SQL Server …

  • Wydawca
  • baza publikacji
  • Publikacja
  • Artykuły
  • Dystrybutor
  • baza dystrybucji
  • Abonent
  • baza abonencka
  • subskrypcja
  • agenci replikacji

schemat replikacji SQL Server

artykuł

artykuł jest podstawową jednostką replikacji SQL Server. Artykuł może składać się z tabel, procedur składowanych i widoków. Istnieje możliwość skalowania artykułu w poziomie i w pionie za pomocą opcji filtrowania. Możemy również utworzyć wiele artykułów na tym samym obiekcie z pewnymi ograniczeniami i ograniczeniami.

za pomocą Kreatora nowej publikacji można nawigować po artykule. Pozwala nam przeglądać właściwości artykułu i udostępniać opcje ustawiania właściwości artykułów. W niektórych przypadkach właściwości można ustawić podczas tworzenia publikacji i jest to właściwość tylko do odczytu.

Po utworzeniu na przykład publikacji replikacji SQL Server, jeśli jakaś właściwość wymaga zmiany, z kolei będzie wymagać wygenerowania nowej migawki replikacji. Jeśli publikacja ma jedną lub więcej subskrypcji, zmiana wymaga ponownego zainicjowania wszystkich subskrypcji. Aby uzyskać więcej informacji, zobacz jak dodawać / usuwać Artykuły do / z istniejącej publikacji w artykule SQL Server.

Aby wymienić wszystkie opublikowane artykuły, wykonaj następny T-SQL

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

WYBIERZ
Public.
,art.
,art.
,art.
,art.
z
.. Sztuka
połączenie wewnętrzne.. Pub
o sztuce. = 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
z sys.tabele st gdzie st. is_published = 1 lub st. is_merge_published = 1 lub st. is_schema_published = 1
Unia
wybierz sp.name, Sp. z o. o.schema_id, 0, 0, sp.is_schema_publikowane
z sys.procedury sp gdzie Sp. is_schema_published = 1
Unia
wybierz sv.name, sv.schema_id, 0, 0, sv.is_schema_published
z sys.views sv gdzie 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’

aby wyświetlić listę kolumn opublikowanych w replikacji transakcyjnej w bazie danych publikacji, uruchom następujący T-SQL

1
wybierz object_name(object_id) , nazwa z sys.columns sc WHERE sc.is_replicated = 1;

publikacje

publikacja jest logicznym zbiorem artykułów z bazy danych. Encja pozwala nam definiować i konfigurować właściwości artykułu na wyższym poziomie, tak aby właściwości były dziedziczone do wszystkich artykułów w tej grupie.

1
Exec sp_helppublication;

baza danych wydawcy

wydawca jest bazą danych zawierającą listę obiektów oznaczonych jako SQL Server replikacja artykuły są znane jako baza danych publikacji. Wydawca może posiadać jedną lub więcej publikacji. Każdy wydawca definiuje mechanizm propagacji danych, tworząc kilka wewnętrznych procedur przechowywanych replikacji.

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. Wydawca może mieć jedną lub więcej publikacji, z których każda definiuje logicznie powiązany zestaw obiektów i danych do replikacji.

Dystrybutor

Dystrybutor jest bazą danych, która działa jako magazyn dla replikacji konkretnych danych powiązanych z jednym lub kilkoma wydawcami. W wielu przypadkach Dystrybutor jest jedną bazą danych, która działa zarówno jako Wydawca, jak i dystrybutor. W kontekście replikacji SQL Server jest to powszechnie znane jako”lokalny dystrybutor”. Z drugiej strony, jeśli jest skonfigurowany na oddzielnym serwerze, to jest znany jako”zdalny dystrybutor”. Każdy wydawca jest powiązany z pojedynczą bazą danych znaną jako” baza dystrybucji „aka”Dystrybutor”.

baza danych dystrybucji identyfikuje i przechowuje dane o statusie replikacji serwera SQL, metadane dotyczące publikacji, a w niektórych przypadkach działa jako kolejka dla danych przenoszonych od wydawcy do subskrybentów.

w zależności od modelu replikacji, Dystrybutor może być również odpowiedzialny za powiadomienie Subskrybentów, którzy subskrybowali publikację, o zmianie artykułu. Ponadto baza danych dystrybucji zachowuje integralność danych.

bazy danych dystrybucji

każdy dystrybutor musi mieć co najmniej jedną bazę danych dystrybucji. Baza danych dystrybucji składa się z szczegółów artykułu, metadanych replikacji i danych. Dystrybutor może posiadać więcej niż jedną bazę danych dystrybucji; jednak wszystkie publikacje zdefiniowane przez jednego wydawcę muszą korzystać z tej samej bazy danych dystrybucji.

dowiedzieć się czy …

  • serwer jest dystrybutorem czy nie?

    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. Abonent może otrzymywać dane od jednego lub kilku wydawców i publikacji. Subskrybent może również przekazywać zmiany danych z powrotem do wydawcy lub ponownie udostępniać dane innym subskrybentom, w zależności od typu projektu i modelu replikacji.

1
Exec sp_helpsubscriberinfo;

Prenumerata

prenumerata to prośba o dostarczenie kopii publikacji do abonenta. Prenumerata określa, jakie dane publikacyjne zostaną odebrane, gdzie i kiedy.

istnieją dwa rodzaje subskrypcji: subskrypcja push i subskrypcja pull

  • subskrypcja Push: Dystrybutor bezpośrednio aktualizuje dane w bazie Abonentów
  • subskrypcja Pull: Abonent ma regularnie sprawdzać u dystrybutora, czy są dostępne nowe zmiany, a następnie aktualizować dane w samej bazie subskrypcji.
1
Exec sp_helpsubscription;

bazy danych subskrypcyjnych

docelowa baza danych modelu replikacji nazywa się bazą danych subskrypcyjnych.

agenci replikacji

SQL Server replikacja używa predefiniowanego zestawu samodzielnych programów i zdarzeń zwanych agentami, do wykonywania zadań związanych z danymi. Domyślnie agenci replikacji SQL Server działają jako zaplanowane zadania w programie SQL Server Agent. Agenci replikacji mogą być również uruchamiani z wiersza poleceń oraz przez aplikacje korzystające z obiektów zarządzania replikacją (RMO). Agenci replikacji SQL Server mogą być monitorowani i administrowani za pomocą Replication Monitor i SQL Server Management Studio.

Agent migawek replikacji

agent migawek replikacji jest używany ze wszystkimi typami technologii replikacji SQL Server, ponieważ zapewnia zestaw danych wymaganych do przeprowadzenia wstępnej synchronizacji danych bazy danych publikacji z bazą danych subskrypcji. Przygotowuje schemat i wstępne dane opublikowanych artykułów, pliki migawkowe i rejestruje informacje o typie synchronizacji w bazie danych dystrybucji.

Agent czytnika logów

Agent czytnika logów jest używany tylko przy replikacji transakcyjnej. Przenosi on transakcje replikacji z dziennika transakcji online bazy danych publikacji do bazy danych dystrybucji.

Agent dystrybucji

Agent dystrybucji jest używany tylko z migawkami replikacji i transakcyjną replikacją SQL Server. Agent ten stosuje początkową migawkę replikacji do bazy danych subskrypcji, a później zmiany danych są śledzone i rejestrowane w bazie danych dystrybucji i stosowane do bazy danych subskrypcji.

Agent scalania

Agent scalania jest używany z modelem replikacji scalania. Domyślnie Agent scalający przesyła zmiany od subskrybenta do wydawcy, a następnie pobiera zmiany od wydawcy do subskrybenta. Każda subskrypcja ma swój własny Agent scalania, który łączy się zarówno z wydawcą, jak i abonentem i aktualizuje oba. Agent Merge działa u dystrybutora dla subskrypcji push lub Abonenta dla subskrypcji pull. Tutaj synchronizacja jest dwukierunkowa. Konflikty danych są obsługiwane przez zestaw wyzwalaczy, które obsługują cały proces

podsumowanie

do tej pory widzieliśmy przegląd niektórych ważnych koncepcji replikacji SQL Server. Ponadto, Skrypty T-SQL są wyświetlane do odpytywania tabel systemowych i procedur składowanych replikacji, aby odpowiedzieć na większość najczęściej zadawanych pytań dotyczących replikacji serwera SQL.

więcej na temat replikacji SQL Server omówię w nadchodzących artykułach. Jeśli uważasz, że coś można poprawić w tym artykule, zostaw komentarz poniżej…

spis treści

replikacja SQL Server: przegląd komponentów i topografii

replikacja SQL: podstawowa konfiguracja i konfiguracja

jak dodawać/usuwać artykuły z istniejących publikacji w SQL Server

Jak zrobić szybkie szacowane porównanie danych w dwóch dużych bazach danych SQL Server, aby sprawdzić, czy są one równe

replikacja transakcyjna SQL Server:

Jak skonfigurować niestandardowy model replikacji transakcji SQL Server z centralnym subskrybentem i wieloma bazami danych wydawcy

Jak skonfigurować niestandardową replikację transakcyjną SQL Server z centralnym wydawcą i wieloma bazami danych subskrybenta

Jak skonfigurować rozwiązanie transakcyjnej replikacji baz danych DDL i DML SQL Server

Jak skonfigurować wieloplatformową transakcyjną replikację SQL Server do raportowania baz danych w systemie Linux

/p >

migracje baz danych SQL Server z zerową utratą danych i zero przestojów

używanie replikacji danych transakcyjnych do odtwarzania i testowania obciążeń produkcyjnych na serwerze etapowym

Jak skonfigurować replikację bazy danych SQL Server dla serwera raportującego

replikacja transakcyjna SQL Server: Jak ponownie zainicjować subskrypcję za pomocą „tylko wsparcie replikacji” –TBA

monitorowanie replikacji SQL Server i Ustawianie alertów za pomocą PowerShell –TBA

  • Autor
  • Ostatnie posty
Prashanth Jayaram
jestem technologiem baz danych z ponad 11-letnim bogatym, praktycznym doświadczeniem w zakresie technologii baz danych. Posiadam certyfikat Microsoft Certified Professional i posiadam Dyplom Master of Computer Application.
moją specjalnością jest projektowanie & wdrażanie rozwiązań wysokiej dostępności i wieloplatformowa migracja DB. Obecnie stosowane technologie to SQL Server, PowerShell, Oracle i MongoDB.
Zobacz wszystkie posty Prashanth Jayaram

Prashanth Jayaram
najnowsze posty Prashanth Jayaram (Zobacz wszystkie)
  • szybki przegląd audytu bazy danych w SQL – Styczeń 28, 2021
  • Jak to zrobić? skonfiguruj Azure Data Sync między bazami danych Azure SQL a lokalnym serwerem SQL-20 stycznia 2021 r
  • jak wykonywać operacje importu/eksportu bazy danych Azure SQL przy użyciu PowerShell – 14 stycznia 2021 r