Adatok és adatbázis-objektumok közzététele

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

Kiadvány létrehozásakor kiválaszthatja a közzétenni kívánt táblákat és egyéb adatbázis-objektumokat. A következő adatbázis-objektumokat replikációval teheti közzé.

Adatbázis-objektum Pillanatkép-replikáció és tranzakciós replikáció Egyesített replikáció
Tables X X
Particionált táblák X X
Tárolt eljárások – Definíció (Transact-SQL és CLR) X X
Tárolt eljárások – Végrehajtás (Transact-SQL és CLR) X no
Views X X
Indexelt nézetek X X
Indexelt nézetek táblákként X no
Felhasználó által definiált típusok (CLR) X X
User-Defined függvények (Transact-SQL és CLR) X X
Alias-adattípusok X X
Teljes szöveges indexek X X
Sémaobjektumok (korlátozások, indexek, felhasználói DML-eseményindítók, kiterjesztett tulajdonságok és rendezés) X X

Kiadványok létrehozása

Kiadvány létrehozásához a következő információkat kell megadnia:

  • A forgalmazó.
  • A pillanatképfájlok helye.
  • A közzétételi adatbázis.
  • A létrehozandó kiadvány típusa (pillanatképes, tranzakciós, frissíthető előfizetésekkel rendelkező tranzakciós vagy egyesítéses).
  • A kiadványban szerepeltetni kívánt adatok és adatbázis-objektumok (cikkek).
  • Statikus sorszűrők és oszlopszűrők minden típusú közzétételhez, valamint paraméterezett sorszűrők és összekapcsolási szűrők az egyesítéses közzétételekhez.
  • A Snapshot Agent ütemezése.
  • Azok a fiókok, amelyek alatt a következő ügynökök futnak: az összes kiadványhoz tartozó Snapshot Agent; az összes tranzakciós kiadványhoz tartozó Log Reader Agent; az előfizetések frissítését lehetővé tevő tranzakciós kiadványokhoz tartozó Queue Reader Agent.
  • A kiadvány neve és leírása.

A kiadványok használatáról az alábbi témakörökben tájékozódhat:

Megjegyzés

Egy cikk vagy kiadvány törlése nem távolít el objektumokat az előfizetőtől.

Táblák közzététele

A leggyakrabban közzétett objektum egy tábla. Az alábbi hivatkozások további információkat nyújtanak a közzétételi táblákhoz kapcsolódó területekről:

A replikációs tábla közzétételekor megadhatja, hogy mely sémaobjektumokat kell az Előfizetőbe másolni, például deklarált hivatkozási integritást (elsődleges kulcskorlátozások, hivatkozási kényszerek, egyedi kényszerek), indexeket, felhasználói DML-eseményindítókat (DDL-eseményindítók nem replikálhatók), kiterjesztett tulajdonságokat és rendezést. A kiterjesztett tulajdonságok csak a Publisher és az Előfizető közötti kezdeti szinkronizálás során replikálódnak. Ha a kezdeti szinkronizálás után hozzáad vagy módosít egy kiterjesztett tulajdonságot, a rendszer nem replikálja a módosítást.

A sémabeállítások megadásához lásd: Sémabeállítások megadása vagy SchemaOption.

Particionált táblák és indexek

A replikáció támogatja a particionált táblák és indexek közzétételét. A támogatás szintje a használt replikáció típusától, valamint a kiadványhoz és a particionált táblákhoz társított cikkekhez megadott lehetőségektől függ. További információ: Particionált táblák és indexek replikálése.

Tárolt eljárások közzététele

A replikáció minden típusa lehetővé teszi a tárolt eljárásdefiníciók replikálását: az CREATE PROCEDURE egyes előfizetőkre másolódik. A közös nyelvi futtatókörnyezet (CLR) tárolt eljárásai esetén a társított szerelvénykészletet is átmásolják. Az eljárások módosításai replikálódnak az Előfizetőkre; a társított szerelvények módosításai nem.

A tárolt eljárás definíciójának replikálása mellett a tranzakciós replikáció lehetővé teszi a tárolt eljárások végrehajtásának replikálását. Ez hasznos lehet a nagy mennyiségű adatot érintő, karbantartás-orientált tárolt eljárások eredményeinek replikálásához. További információ: Tárolt eljárás végrehajtásának közzététele tranzakciós replikációban.

Publikálási nézetek

A replikáció minden típusa lehetővé teszi a nézetek replikálását. A nézet (és a hozzá tartozó index, ha indexelt nézet) átmásolható az Előfizetőbe, de az alaptáblát is replikálni kell.

Az indexelt nézetek esetében a tranzakciós replikáció lehetővé teszi az indexelt nézet táblázatként való replikálását is nézet helyett, így nincs szükség az alaptábla replikálására is. Ehhez adja meg a sp_addarticle (Transact-SQL)@type paraméteréhez az „indexed view logbased” beállítások egyikét. A sp_addarticle használatáról további információt a Cikk definiálása című témakörben talál.

Felhasználó által definiált függvények közzététele

A CREATE FUNCTION CLR-függvények és Transact-SQL függvények utasításai minden előfizetőre át lesznek másolva. CLR-függvények esetén a rendszer a társított szerelvényt is másolja. A függvények módosításai replikálódnak az Előfizetőkhöz; a kapcsolódó szerelvények módosításai nem.

Felhasználó által definiált típusok és álnév adattípusok közzététele

A felhasználó által definiált típusokat vagy alias adattípust használó oszlopok ugyanúgy replikálódnak az Előfizetőknek, mint a többi oszlop. Az CREATE TYPEegyes replikált típusokra vonatkozó utasítás végrehajtása az Előfizetőnél történik a tábla létrehozása előtt. Felhasználó által definiált típusok esetén a rendszer a társított szerelvényt is átmásolja az egyes előfizetőkhöz. A felhasználó által definiált típusok és alias adattípusok módosításai nem replikálódnak az előfizetőkre.

Ha egy típus egy adatbázisban van definiálva, de a kiadvány létrehozásakor egyik oszlopban sem hivatkozik rá, a rendszer nem másolja át a típust az előfizetőknek. Ha később létrehoz egy ilyen típusú oszlopot az adatbázisban, és replikálni szeretné azt, először manuálisan kell átmásolnia a típust (és a felhasználó által definiált típushoz tartozó szerelvényt) az egyes előfizetőknek.

Teljes szöveges indexek közzététele

Az CREATE FULLTEXT INDEX utasítás minden előfizetőre át lesz másolva, és a teljes szöveges index az Előfizetőnél jön létre. A ALTER FULLTEXT INDEX használatával a teljes szövegű indexeken végrehajtott módosítások nem kerülnek replikálásra.

Sémamódosítások végrehajtása közzétett objektumokon

A replikáció számos sémamódosítást támogat a közzétett objektumokon. Ha a következő sémamódosításokat hajtja végre a megfelelő közzétett objektumon egy SQL Server Publisher, a rendszer alapértelmezés szerint az összes SQL Server előfizetőre propagálja a módosítást:

  • ALTER TABLE

  • ALTER VIEW

  • ALTER PROCEDURE

  • ALTER FUNCTION

  • ALTER TRIGGER

További információ: Sémamódosítások a kiadványadatbázisokon.

A közzététel szempontjai

Tartsa szem előtt az alábbi problémákat adatbázis-objektumok közzétételekor:

  • Az adatbázis a kiadvány létrehozása és a kezdeti pillanatkép létrehozása során érhető el a felhasználók számára, de ajánlott kiadványokat létrehozni a Publisher kisebb tevékenységi idején.

  • Az adatbázis nem nevezhető át egy kiadvány létrehozása után. Az átnevezéséhez először el kell távolítania a replikációt az adatbázisból.

  • Ha egy vagy több más adatbázis-objektumtól függő adatbázis-objektumot tesz közzé, minden hivatkozott objektumot közzé kell tennie. Ha például egy táblától függő nézetet tesz közzé, akkor a táblát is közzé kell tennie.

    Megjegyzés

    Ha egy cikket egyesítési kiadványhoz ad hozzá, és egy meglévő cikk az új cikktől függ, meg kell adnia a feldolgozási sorrendet mindkét cikkhez a sp_addmergearticle és a sp_changemergearticle@processing_order paraméterével. Fontolja meg a következő forgatókönyvet: közzétehet egy táblát, de nem tesz közzé olyan függvényt, amelyre a tábla hivatkozik. Ha nem teszi közzé a függvényt, a tábla nem hozható létre az Előfizetőnél. Amikor hozzáadja a függvényt a kiadványhoz: adjon meg 1 értéket a sp_addmergearticle @processing_order paraméteréhez; és adjon meg egy 2 értéket a sp_changemergearticle @processing_order paraméteréhez, és adja meg a @article paraméter táblanevét. Ez a feldolgozási sorrend biztosítja, hogy a függvényt az előfizetőnél hozza létre az attól függő tábla előtt. Az egyes cikkekhez különböző számokat használhat, ha a függvény száma kisebb, mint a tábla száma.

  • A kiadványnevek nem tartalmazhatják a következő karaktereket: % * [ ] | : " ? \ / <>.

Az objektumok közzétételére vonatkozó korlátozások

  • A közzétehető cikkek és oszlopok maximális száma kiadványtípusonként eltérő. További információt a SQL Server maximális kapacitás-specifikációinak "Replikációs objektumok" című szakaszában talál.

  • A WITH ENCRYPTION néven definiált tárolt eljárások, nézetek, eseményindítók és felhasználó által definiált függvények nem tehetők közzé SQL Server replikáció részeként.

  • Az XML-sémagyűjtemények replikálhatók, de a módosítások nem replikálódnak a kezdeti pillanatkép után.

  • A tranzakciós replikációhoz közzétett tábláknak elsődleges kulccsal kell rendelkezniük. Ha egy tábla tranzakciós replikációs kiadványban található, az elsődleges kulcsoszlopokhoz társított indexek nem tilthatók le. Ezekre az indexekre replikáció szükséges. Az index letiltásához először el kell dobnia a táblát a kiadványból.

  • A sp_bindefault (Transact-SQL) használatával létrehozott kötött alapértelmezett értékek nem replikálódnak (a kötött alapértelmezett értékek elavultak a kulcsszóval DEFAULT vagy ALTER TABLEkulcsszóval CREATE TABLE létrehozott alapértelmezett értékek javára).

  • Az indexelt nézeteken található NOEXPAND utasítást tartalmazó függvények nem tehetők közzé ugyanabban a publikációban, mint a hivatkozott táblák és indexelt nézetek, amiatt, hogy a terjesztési ügynök milyen sorrendben továbbítja őket. A probléma megoldásához helyezze a táblázatot és az indexelt nézetet egy első kiadványba, és adja hozzá az indexelt nézetek NOEXPAND-tippet tartalmazó függvényeit egy második kiadványhoz, amelyet az első kiadvány befejezése után tesz közzé. Vagy hozzon létre szkripteket ezekhez a függvényekhez, és adja meg a szkriptet a sp_addpublication @post_snapshot_script paraméterével.

Sémák és objektum tulajdonjoga

A replikáció a következő alapértelmezett viselkedéssel rendelkezik az Új kiadvány varázslóban a sémák és az objektumok tulajdonjoga tekintetében:

  • A 90-es vagy annál magasabb kompatibilitási szinttel rendelkező, egyesíthető kiadványokat tartalmazó cikkek esetén a pillanatkép-kiadványok és a tranzakciós kiadványok: alapértelmezés szerint az Előfizető objektumtulajdonosa megegyezik a Publisher megfelelő objektumának tulajdonosával. Ha a saját objektumokat tartalmazó sémák nem léteznek az Előfizetőnél, azok automatikusan létrejönnek.

  • A 90-nél alacsonyabb kompatibilitási szinttel rendelkező egyes kiadványokban lévő cikkek esetében a tulajdonos alapértelmezés szerint üres marad, és dbo-ként van megadva az objektum létrehozásakor az Előfizetőn.

  • Oracle-kiadványokban lévő cikkek esetén alapértelmezés szerint a tulajdonos dbo-ként van megadva.

  • A karakter módú pillanatképeket használó kiadványokban (amelyek nem SQL Server előfizetők és SQL Server Compact előfizetők számára használatosak): alapértelmezés szerint a tulajdonos mező üres marad. Alapértelmezés szerint a tulajdonos az a fiókhoz társított személy, amelyet a Terjesztési Ügynök vagy az Egyesítési Ügynök az Előfizetőhöz való csatlakozáshoz használ.

Az objektum tulajdonosa a Cikk tulajdonságai párbeszédpanelen <> és a következő tárolt eljárásokon keresztül módosítható: sp_addarticle, sp_addmergearticle, sp_changearticle és sp_changemergearticle. További információt a Kiadvány tulajdonságainak megtekintése és módosítása, a Cikk definiálása, valamint a Cikk tulajdonságainak megtekintése és módosítása című témakörben talál.

Adatok közzététele az SQL Server korábbi verzióit futtató előfizetők számára

  • Ha a SQL Server egy korábbi verzióját futtató előfizetőnek tesz közzé, az adott verzió működésére korlátozódik, mind a replikációspecifikus funkciók, mind a termék egészének funkciói tekintetében.

  • A kiadványok egyesítése kompatibilitási szintet használ, amely meghatározza, hogy milyen funkciók használhatók a kiadványokban, és lehetővé teszi a SQL Server korábbi verzióit futtató előfizetők támogatását.

Táblák közzététele több kiadványban

A replikáció az alábbi korlátozásokkal támogatja a cikkek közzétételét több kiadványban (beleértve az adatok újbóli közzétételét is):

  • Ha egy cikk tranzakciós publikációban és beolvasztásos publikációban is megjelenik, győződjön meg arról, hogy a beolvasztásos cikkhez tartozó @published_in_tran_pub tulajdonság értéke TRUE-ra van állítva. A tulajdonságok beállításáról további információt a Kiadvány tulajdonságainak megtekintése és módosítása , valamint a Cikk tulajdonságainak megtekintése és módosítása című témakörben talál.

    A @published_in_tran_pub tulajdonságot is meg kell adnia, ha egy cikk egy tranzakciós előfizetés része, és szerepel egy egyesítési kiadványban. Ha ez a helyzet, vegye figyelembe, hogy alapértelmezés szerint a tranzakciós replikáció arra számít, hogy az Előfizető tábláit írásvédettként kezeljék; ha az egyesítési replikáció adatmódosításokat hajt végre egy tranzakciós előfizetésben szereplő táblán, az adatok konvergenciájának elmaradása fordulhat elő. Ennek a lehetőségnek a elkerülése érdekében javasoljuk, hogy az ilyen táblákat csak letöltésként adja meg az egyesítési kiadványban. Ez megakadályozza, hogy az egyesítő előfizető adatokat töltsön fel a táblába. További információért lásd: Az egyesítési replikáció teljesítményének optimalizálása csak letöltéses cikkekkel.

  • Egy cikk nem tehető közzé sem egy egyesítéses közzétételben, sem pedig egy sorba állított frissítési előfizetésekkel rendelkező tranzakciós közzétételben.

  • Az előfizetések frissítését támogató tranzakciós kiadványokban szereplő cikkek nem tehetők közzé újra.

  • Ha egy cikk több olyan tranzakciós kiadványban van közzétéve, amely támogatja az előfizetések várólistára helyezését, az alábbi tulajdonságoknak minden kiadványban azonos értékkel kell rendelkezniük a cikkhez:

    Property Az sp_addarticle paramétere
    Azonosítótartomány kezelése @auto_identity_range (elavult) és @identityrangemangementoption
    Közzétevő azonosságtartománya @pub_identity_range
    Identitástartomány @identity_range
    Identitástartomány küszöbértéke @threshold

    További információ ezekről a paraméterekről: sp_addarticle (Transact-SQL).

  • Ha egy cikk egynél több egyesítési kiadványban van közzétéve, az alábbi tulajdonságoknak minden kiadványban azonos értékkel kell rendelkezniük a cikkhez:

    Property Paraméter a(z) sp_addmergearticle tárolt eljárásban
    Oszlopkövetés @column_tracking
    Sémabeállítások @schema_option
    Oszlopszűrés @vertical_partition
    Előfizetői feltöltési lehetőségek @subscriber_upload_options
    Feltételes törlés nyomon követése @delete_tracking
    Hibakompenzáció @compensate_for_errors
    Identitástartomány-kezelés @auto_identity_range (elavult) és @identityrangemangementoption
    Közzétevő azonosítótartománya @pub_identity_range
    Identitástartomány @identity_range
    Identitástartomány küszöbértéke @threshold
    Partícióbeállítások @partition_options
    Bloboszlop streamelése @stream_blob_columns
    Szűrő típusa @filter_type (sp_addmergefilter paramétere)

    További információ ezekről a paraméterekről: sp_addmergearticle (Transact-SQL) és sp_addmergefilter (Transact-SQL).

  • A tranzakciós replikáció és a szűretlen egyesítési replikáció támogatja egy tábla több kiadványban való közzétételét, majd az előfizetési adatbázis egyetlen táblájában való feliratkozást (ezt általában összegző forgatókönyvnek nevezzük). A rollupot gyakran használják arra, hogy több helyről származó adatrészhalmazokat egyetlen táblában összesítsenek egy központi Előfizetőnél. A szűrt egyesítési kiadványok nem támogatják a központi előfizetői forgatókönyvet. Az egyesítési replikáció esetében az összevonást általában egyetlen, paraméterezett sorszűrőket használó közzététellel valósítják meg. További információ: Paraméteres sorszűrők.