SQLShack
a ma megőrzött, kezelt és elérhető adatok mennyisége példátlan. A vállalkozások elvárják az informatikai részlegtől, hogy az adatokat határozatlan ideig online és hozzáférhetővé tegye, intenzív nyomást gyakorolva az azok tárolásához és kezeléséhez szükséges adatbázisokra. A mai igények kielégítése érdekében az elavult és nem hatékony régi folyamatokat új, agilisabb technikákkal kell felváltanunk. Az SQL Server replikációja az egyik módszer az ilyen igények kielégítésére.
-
Megjegyzés: Ha többet szeretne megtudni az adatbázisok replikálásáról,kérjük, olvassa el a különböző érdekelt feleket, különböző nézetek: miért igényel az adatbázis-kezelés szisztematikus megközelítést.
ebben a cikkben alakítsuk ki az SQL Server teljes replikációs topográfiájának megértését, beleértve az összetevőket, a belső elemeket és az SQL-t, hogy összekapcsolják az egészet. Miután befejezte a cikk elolvasását, meg fogja érteni:
- SQL Server replikáció, általában
- a tranzakciós SQL Server replikáció összetevői, különösen
- hogyan szerezzük meg a disztribútor tulajdonságait
- Hogyan találjuk meg a kiadót ugyanazzal a disztribútorral
- melyek az SQL Server replikációhoz használt adatbázisok
- a replikációs környezet általános topológiája
- melyek azok a cikkek, amelyek az SQL Server replikációs modell típusához vannak hozzárendelve
- publikáció részletei
- az előfizetés részletei
- SQL Server replikációs ügynökök
- és tovább …
- replikáció
- tranzakciós SQL Server replikációs összetevők
- cikk
- kiadványok
- Publisher database
- Publisher
- disztribútor
- terjesztési adatbázisok
- Subscriber
- előfizetések
- előfizetési adatbázisok
- replikációs ügynökök
- replikációs pillanatkép ügynök
- Log Reader Agent
- disztribúciós ügynök
- egyesítési ügynök
- összefoglaló
- Tartalomjegyzék
replikáció
az SQL Server replikáció olyan technológia, amely adatokat és adatbázis-objektumokat másol és terjeszt egyik adatbázisból a másikba, majd szinkronizálja az adatbázisokat az adatok konzisztenciájának és integritásának fenntartása érdekében. A legtöbb esetben a replikáció az adatok reprodukálásának folyamata a kívánt célpontokon. Az SQL Server replikáció az adatok folyamatos másolására és szinkronizálására szolgál, vagy előre meghatározott időközönként is ütemezhető. Számos különböző replikációs technika létezik, amelyek támogatják a különböző adatszinkronizációs megközelítéseket; egyirányú; egy a sokhoz; sok az egyhez; és kétirányú, és több adatkészletet szinkronban tartanak egymással.
tranzakciós SQL Server replikációs összetevők
az alábbi ábra a tranzakciós SQL Server replikáció összetevőit mutatja be.
beleértve az SQL Server replikációt …
- kiadó
- publikációs adatbázis
- publikációs adatbázis
- cikkek
- forgalmazó
- terjesztési adatbázis
- Előfizetői adatbázis
- Előfizetői adatbázis
- replikációs ügynökök
SQL Server replikációs diagram
cikk
egy cikk az SQL Server replikációjának alapvető egysége. Egy cikk állhat táblázatokból, tárolt eljárásokból és nézetekből. Lehetőség van a termék vízszintes és függőleges méretezésére egy szűrő opcióval. Több cikket is létrehozhatunk ugyanazon az objektumon bizonyos korlátozásokkal.
az új kiadvány varázsló segítségével a cikk navigálható. Ez lehetővé teszi számunkra, hogy megtekintsük egy cikk tulajdonságait, és lehetőséget biztosít a cikkek tulajdonságainak beállítására. Bizonyos esetekben a tulajdonságok beállíthatók a közzététel létrehozásának ideje alatt, és ez csak olvasható tulajdonság.
egy SQL Server replikációs kiadvány létrehozása után például, ha egy tulajdonság módosítását igényli, akkor viszont új replikációs pillanatkép létrehozását igényli. Ha a kiadvány egy vagy több előfizetéssel rendelkezik, akkor a módosítás megköveteli az összes előfizetés újbóli inicializálását. További információkért lásd: cikkek hozzáadása/eldobása meglévő kiadványhoz / onnan az SQL Server cikkben.
az összes megjelent cikk felsorolásához futtassa a következő T-SQL-t
1
2
3
4
5
6
7
8
9
10
11
12
|
select
pub.
, művészet.
, művészet.
, művészet.
, művészet.
a
– ből .. Art
belső csatlakozás .. Pub
az 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
a sys-től.táblázatok st ahol st. is_published = 1 vagy st. is_merge_published = 1 vagy st.is_schema_published = 1
UNION
SELECT sp.name, sp.schema_id, 0, 0, sp.is_schema_published
a sys-től.eljárások sp ahol sp. is_schema_published = 1
Unió
SELECT sv.name, sv.schema_id, 0, 0, sv.is_schema_published
a sys-től.nézetek sv ahol 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’
|
a közzétételi adatbázisban a tranzakciós replikációban közzétett oszlopok felsorolásához futtassa a következő T-SQL-t
1
|
válassza ki az object_name(object_id) elemet a sys-ből.oszlopok sc ahol SC. is_replicated = 1;
|
kiadványok
a kiadvány egy adatbázisból származó cikkek logikai gyűjteménye. Az entitás lehetővé teszi számunkra, hogy a cikk tulajdonságait magasabb szinten definiáljuk és konfiguráljuk úgy, hogy a tulajdonságok az adott csoport összes cikkére öröklődjenek.
1
|
Publisher database
a publisher egy olyan adatbázis, amely az SQL Server replikációs cikkként kijelölt objektumok listáját tartalmazza publikációs adatbázis. A kiadónak lehet egy vagy több publikációja. Minden kiadó meghatároz egy adatterjesztési mechanizmust több belső replikációs tárolt eljárás létrehozásával.
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. A kiadó rendelkezhet egy vagy több kiadvánnyal, amelyek mindegyike logikailag kapcsolódó objektumok és adatok halmazát határozza meg.
disztribútor
a disztribútor olyan adatbázis, amely egy vagy több kiadóhoz társított replikációs specifikus adatok tárolójaként működik. Sok esetben a forgalmazó egyetlen adatbázis, amely mind a kiadóként, mind a forgalmazóként működik. Az SQL Server replikációjának összefüggésében ezt általában “helyi disztribútornak”nevezik. Másrészt, ha külön szerveren van konfigurálva, akkor “távoli disztribútornak”nevezik. Minden Kiadó egyetlen adatbázishoz van társítva, amelyet “terjesztési adatbázisnak”, más néven “forgalmazónak”neveznek.
a terjesztési adatbázis azonosítja és tárolja az SQL Server replikációs állapotadatait, a kiadvány metaadatait, és bizonyos esetekben várólistaként működik a kiadótól az előfizetőkhöz történő adatátvitelhez.
a replikációs modelltől függően a disztribútor felelős lehet azért is, hogy értesítse a kiadványra feliratkozó előfizetőket arról, hogy egy cikk megváltozott. Ezenkívül a terjesztési adatbázis fenntartja az adatok integritását.
terjesztési adatbázisok
minden terjesztőnek rendelkeznie kell legalább egy terjesztési adatbázissal. A terjesztési adatbázis cikkrészletekből, replikációs metaadatokból és adatokból áll. A disztribútor egynél több terjesztési adatbázist is tárolhat; azonban az egyetlen kiadón definiált összes publikációnak ugyanazt a terjesztési adatbázist kell használnia.
annak megállapítása, hogy …
-
egy szerver disztribútor-e vagy sem?
1SELECT @@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?
1SELECT name FROM sys.databases WHERE is_distributor = 1 -
a Publisher is using this Distributor or not?
1EXEC sp_get_distributor -
or just to interrogate various Distributor and Distribution database properties?
123EXEC 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. Az előfizető egy vagy több kiadótól és kiadványtól kaphat adatokat. Az előfizető a replikációs terv típusától és modelltől függően az adatmódosításokat vissza is adhatja a kiadónak, vagy újra közzéteheti az adatokat más előfizetőknek.
1
|
előfizetések
az előfizetés egy kiadvány másolatának az előfizetőhöz történő eljuttatására irányuló kérelem. Az előfizetés meghatározza, hogy milyen publikációs adatok érkeznek, hol és mikor.
kétféle előfizetés létezik: push subscriptions and pull subscriptions
- Push subscription: a disztribútor közvetlenül frissíti az előfizetői adatbázis adatait
- Pull subscription: az előfizető a tervek szerint rendszeresen ellenőrzi a forgalmazónál, hogy vannak-e új változások, majd frissíti az adatokat az előfizetési adatbázisban.
1
|
Exec sp_helpsubscription;
|
előfizetési adatbázisok
a replikációs modell céladatbázisát előfizetési adatbázisnak nevezzük.
replikációs ügynökök
az SQL Server replikációja önálló programok előre definiált készletét használja, az események pedig ügynökök, az adatokhoz társított feladatok végrehajtására. Alapértelmezés szerint az SQL Server replikációs ügynökei ütemezett feladatokként futnak az SQL Server Agent alatt. A replikációs ügynökök a parancssorból és a Replikációkezelő objektumokat (RMO) használó alkalmazások által is futtathatók. Az SQL Server replikációs ügynököket a replikációs Monitor és az SQL Server Management Studio segítségével lehet felügyelni és felügyelni.
replikációs pillanatkép ügynök
A replikációs pillanatkép ügynök az SQL Server replikációs technológiájának minden típusával használható, mivel biztosítja a szükséges adatkészletet a publikációs adatbázis kezdeti adatszinkronizálásához az előfizetési adatbázissal. Elkészíti a közzétett cikkek sémáját és kezdeti adatait, pillanatképfájlokat, és rögzíti a szinkronizálás típusát az elosztási adatbázisban.
Log Reader Agent
a Log Reader Agent csak tranzakciós replikációval használható. Áthelyezi a replikációs tranzakciókat a közzétételi adatbázis online tranzakciós naplójából a terjesztési adatbázisba.
disztribúciós ügynök
a disztribúciós ügynök csak replikációs pillanatképpel és tranzakciós SQL Server replikációval használható. Ez az ügynök a kezdeti replikációs pillanatképet alkalmazza az előfizetési adatbázisra, majd később az adatváltozásokat nyomon követi és rögzíti a terjesztési adatbázisban, majd alkalmazza az előfizetési adatbázisban.
egyesítési ügynök
az Egyesítési ügynököt az egyesítési replikációs modellel együtt használják. Alapértelmezés szerint az Egyesítési ügynök feltölti a változásokat az előfizetőtől a Közzétevőhöz, majd letölti a módosításokat a Közzétevőtől az előfizetőhöz. Minden előfizetésnek saját egyesítési ügynöke van, amely mind a kiadóhoz, mind az előfizetőhöz csatlakozik, és mindkettőt frissíti. Az Egyesítési ügynök vagy a push-előfizetések forgalmazójánál, vagy a pull-előfizetések Előfizetőjénél fut. Itt a szinkronizálás kétirányú. Az adatütközéseket olyan triggerek kezelik, amelyek támogatják a teljes folyamatot
összefoglaló
eddig az SQL Server replikáció néhány fontos fogalmának áttekintését láttuk. Ezenkívül a T-SQL parancsfájlok lekérdezik a rendszertáblákat és a replikációban tárolt eljárásokat, hogy megválaszolják az SQL Server replikációval kapcsolatos Gyakran feltett kérdések nagy részét.
a következő cikkekben többet fogok megvitatni az SQL Server replikációjáról. Ha úgy érzi, valami lehet javítani ebben a cikkben, nyugodtan hagyja meg a megjegyzést alább…
Tartalomjegyzék
SQL Server replikáció: áttekintés a komponensek és topográfia
SQL replikáció: alapvető beállítás és konfiguráció
hogyan adjunk/csepp cikkeket a meglévő kiadványok SQL Server
hogyan kell csinálni egy gyors becsült összehasonlítása adatok két nagy SQL Server adatbázisok, hogy ha azok egyenlőek
SQL Server tranzakciós replikáció: Hogyan lehet újra inicializálni egy előfizetést egy SQL Server adatbázis biztonsági mentéssel
Hogyan állítsunk be egy egyéni SQL Server tranzakciós replikációs modellt egy központi előfizetővel és több közzétételi adatbázissal
Hogyan állítsunk be egyéni SQL Server tranzakciós replikációt egy központi közzétevővel és több Előfizetői adatbázissal
Hogyan állítsunk be egy DDL és DML SQL Server adatbázis tranzakciós replikációs megoldást
Hogyan állítsunk be platformközi tranzakciós SQL Server replikációt az adatbázis-Jelentésekhez Linux rendszeren
Hogyan állítsunk be platformközi tranzakciós SQL Server replikációt / p >
SQL Server adatbázis migrációk nulla adatvesztéssel és nulla állásidő
tranzakciós adatreplikáció használata a termelési terhelések visszajátszásához és teszteléséhez egy átmeneti kiszolgálón
Hogyan állítsuk be az SQL Server adatbázisreplikációját egy jelentési kiszolgálóhoz
SQL Server tranzakciós replikáció: Hogyan lehet újraindítani az előfizetést egy “csak replikációs támogatás” használatával –TBA
SQL Server replikáció figyelése és riasztások beállítása a PowerShell –TBA használatával
- szerző
- Legutóbbi hozzászólások
szakterületem a & magas rendelkezésre állású megoldások és platformok közötti DB migráció tervezése. A jelenleg működő technológiák az SQL Server, a PowerShell, az Oracle és a MongoDB.
Az összes hozzászólás Prashanth Jayaram
- gyors áttekintés az adatbázis – ellenőrzésről az SQL-ben – január 28, 2021
- hogyan kell az Azure Data Sync beállítása az Azure SQL adatbázisok és a helyszíni SQL Server között – január 20, 2021
- az Azure SQL Database importálási/exportálási műveleteinek végrehajtása a PowerShell használatával-január 14, 2021