Megosztás a következőn keresztül:


IBM Db2-előfizetők

A következőkre vonatkozik:SQL Server

Az SQL Server támogatja az IBM Db2/AS 400, DB2/MVS és DB2/Universal Database leküldéses előfizetéseit a Microsoft Gazdagép-integrációs kiszolgálóhoz tartozó OLE DB-szolgáltatókon keresztül.

IBM Db2-előfizető konfigurálása

Ibm Db2-előfizető konfigurálásához kövesse az alábbi lépéseket:

  1. Telepítse a Microsoft OLE DB Provider for DB2 legújabb verzióját a forgalmazóra:

    • Ha SQL Server Enterprise Editiont használ, az SQL Server Letöltések weblap kapcsolódó letöltések szakaszában kattintson a Microsoft SQL Server szolgáltatáscsomag legújabb verziójára mutató hivatkozásra. A Microsoft SQL Server feature Pack webhelyén keresse meg a Db2-hez készült Microsoft OLE DB-szolgáltatót.

    • Ha SQL Server Standard Edition kiadást használ, telepítse a Microsoft Host Integration Services (HIS) kiszolgáló legújabb verzióját, amely tartalmazza a szolgáltatót.

    A szolgáltató telepítése mellett javasoljuk, hogy telepítse az adatelérési eszközt, amelyet a következő lépésben használ (alapértelmezés szerint az SQL Server Enterprise Edition letöltésével van telepítve). Az adatelérési eszköz telepítésével és használatával kapcsolatos további információkért tekintse meg a szolgáltató dokumentációját vagy a HIS dokumentációját.

  2. Hozzon létre egy kapcsolati sztringet az előfizető számára. A kapcsolati sztring bármely szövegszerkesztőben létrehozható, de javasoljuk, hogy használja az Adatelérési eszközt. A sztring létrehozása az Adatelérési eszközben:

    1. Kattintson a Start, a Programok, a Microsoft OLE DB Provider for DB2, majd az Adatelérési eszköz elemre.

    2. Az Adatelérési eszközben kövesse a lépéseket a DB2-kiszolgálóval kapcsolatos információk megadásához. Az eszköz befejezésekor egy univerzális adatkapcsolat (UDL) jön létre egy társított kapcsolati sztringgel (az UDL-t valójában nem használja a replikáció, de a kapcsolati sztringet igen).

    3. Nyissa meg a kapcsolati sztringet: kattintson a jobb gombbal az UDL-ra az Adatelérési eszközben, és válassza a Kapcsolati sztring megjelenítése lehetőséget.

    A kapcsolati sztring hasonló lesz (a sortörések az olvashatósághoz szükségesek):

    Provider=DB2OLEDB;Initial Catalog=MY_SUBSCRIBER_DB;Network Transport Library=TCP;Host CCSID=1252;  
    PC Code Page=1252;Network Address=MY_SUBSCRIBER;Network Port=50000;Package Collection=MY_PKGCOL;  
    Default Schema=MY_SCHEMA;Process Binary as Character=False;Derive Parameters=False;Units of Work=RUW;DBMS Platform=DB2/NT;  
    Persist Security Info=False;Connection Pooling=True;  
    

    A sztring legtöbb opciója a konfigurálandó DB2-kiszolgálóra vonatkozik, de a Process Binary as Character és Derive Parameters opciókat mindig False kell állítani. Az előfizetési Initial Catalog adatbázis azonosításához értékre van szükség. Az előfizetés létrehozásakor a kapcsolati sztring be lesz írva az Új előfizetés varázslóba.

  3. Pillanatképet vagy tranzakciós kiadványt hozhat létre, engedélyezheti a nem SQL Server-előfizetők számára, majd létrehozhat egy leküldéses előfizetést az előfizető számára. További információ: Előfizetés létrehozása nem SQL Server-előfizető számára.

  4. Igény szerint adjon meg egy egyéni létrehozási szkriptet egy vagy több cikkhez. Egy tábla közzétételekor létrejön egy CREATE TABLE szkript az adott táblához. A nem SQL Server-előfizetők esetében a szkript a Transact-SQL dialektusban jön létre, és a terjesztési ügynök lefordítja egy általánosabb SQL-dialektusra, mielőtt az előfizetőnél alkalmazva lenne. Egyéni létrehozási szkript megadásához módosítsa a meglévő Transact-SQL szkriptet, vagy hozzon létre egy teljes szkriptet, amely a DB2 SQL-dialektust használja; DB2-szkript létrehozásakor használja a bypass_translation direktívát, hogy a terjesztési ügynök fordítás nélkül alkalmazza a szkriptet az Előfizetőnél.

    A szkriptek számos okból módosíthatók, de a leggyakoribb ok az adattípus-leképezések módosítása. További információt a jelen témakör "Adattípus-leképezési szempontok" című szakaszában talál. Ha módosítja a Transact-SQL szkriptet, a módosításokat az adattípus-megfeleltetési módosításokra kell korlátozni (és a szkript nem tartalmazhat megjegyzéseket). Ha lényegesebb módosításokra van szükség, hozzon létre egy DB2-szkriptet.

    Cikkszkript módosítása és egyéni létrehozási szkriptként való megadása

    1. Miután létrehozta a kiadvány pillanatképét, keresse meg a kiadvány pillanatképmappáját.

    2. Keresse meg a .sch cikkel megegyező nevű fájlt, például MyArticle.sch.

    3. Nyissa meg ezt a fájlt a Jegyzettömb vagy egy másik szövegszerkesztő használatával.

    4. Módosítsa a fájlt, és mentse egy másik könyvtárba.

    5. Hajtsa végre sp_changearticle, és adja meg a creation_script tulajdonság fájl elérési útját és nevét. További információ: sp_changearticle (Transact-SQL).

    Cikkszkript létrehozása és azt egyéni létrehozási szkriptként átadni

    1. Hozzon létre egy cikkszkriptet a DB2 SQL-dialektussal. Győződjön meg arról, hogy a fájl első sora bypass_translation, és a sorban nincs más.

    2. Hajtsa végre a sp_changearticle, és adja meg a creation_script tulajdonság fájl elérési útját és nevét.

Az IBM Db2 előfizetőinek szempontjai

A nem SQL Server-előfizetők témakörében ismertetett szempontok mellett vegye figyelembe a következő problémákat a DB2-előfizetőknek való replikáláskor:

  • Az egyes replikált táblák adatai és indexei egy DB2-táblatérhez vannak rendelve. A DB2-táblatér oldalmérete határozza meg az oszlopok maximális számát és a táblatérhez tartozó táblák maximális sorméretét. Győződjön meg arról, hogy a replikált táblákhoz társított táblatér a replikált oszlopok száma és a táblák maximális sormérete alapján megfelelő.

  • Ne tegye közzé a táblákat a DB2-előfizetők számára tranzakciós replikációval, ha a tábla egy vagy több elsődleges kulcsoszlopa TIZEDES (32-38, 0-38) vagy NUMERIKUS (32-38, 0-38) típusú. A tranzakciós replikáció az elsődleges kulccsal azonosítja a sorokat; ez hibákhoz vezethet, mert ezek az adattípusok VARCHAR(41) értékre vannak leképezve az Előfizetőnél. Az ilyen adattípusokat használó elsődleges kulcsokkal rendelkező táblák pillanatkép-replikációval tehetők közzé.

  • Ha előre szeretne létrehozni táblákat az Előfizetőnél, ahelyett, hogy a replikáció hozná létre azokat, használja a kizárólag replikációs támogatás lehetőséget. További információ: Tranzakciós előfizetés inicializálása pillanatkép nélkül.

  • Az SQL Server a DB2-nél hosszabb táblaneveket és oszlopneveket tesz lehetővé:

    • Ha a közzétételi adatbázis olyan táblákat tartalmaz, amelyek a DB2-verzióban támogatottaknál hosszabb neveket tartalmaznak az Előfizetőnél, adjon meg egy másik nevet a destination_table cikktulajdonságnak. A kiadvány létrehozásakor a tulajdonságok beállításáról további információt a Kiadvány létrehozása és a Cikk definiálása című témakörben talál.

    • Alternatív oszlopneveket nem lehet megadni. Gondoskodnia kell arról, hogy a közzétett táblák ne tartalmazzanak hosszabb oszlopneveket, mint az előfizetőnél a DB2-verzióban támogatottak.

Adattípusok leképezése SQL Serverről IBM Db2-be

Az alábbi táblázat azokat az adattípus-leképezéseket mutatja be, amelyeket az adatok IBM Db2-t futtató előfizetőre történő replikálásakor használnak.

SQL Server-adattípus IBM Db2 adattípus
bigint DECIMAL(19,0)
bináris(1-254) KARAKTER(1–254) BITADATOKHOZ
bináris(255-8000) VARCHAR(255-8000) BINÁRIS ADATOKHOZ
bit SMALLINT
char(1-254) CHAR(1-254)
char(255-8000) VARCHAR(255-8000)
date DATE
datetime TIMESTAMP
datetime2(0-7) VARCHAR(27)
datetimeoffset(0-7) VARCHAR(34)
decimális(1-31, 0-31) DECIMAL(1-31, 0-31)
decimális(32-38, 0-38) VARCHAR(41)
float(53) DUPLA
float FLOAT
geography KÉP
geometry KÉP
hierarchyid KÉP
image VARCHAR(0) BITADATOKHOZ*
be INT
pénz DECIMAL(19,4)
nchar(1-4000) VARCHAR(1-4000)
kontextus VARCHAR(0)*
numerikus(1-31, 0-31) DECIMALIS(1-31,0-31)
numerikus(32-38, 0-38) VARCHAR(41)
nvarchar(1-4000) VARCHAR(1-4000)
nvarchar(max) VARCHAR(0)*
valódi VALÓDI
smalldatetime TIMESTAMP
smallint SMALLINT
smallmoney DECIMÁLIS(10,4)
sql_variant N/A
sysname VARCHAR(128)
text VARCHAR(0)*
time(0-7) VARCHAR(16)
időbélyeg CHAR(8) BIT ADAT számára
tinyint SMALLINT
uniqueidentifier CHAR(38)
varbinary(1-8000) VARCHAR(1-8000) BIT ADATOK SZÁMÁRA
varchar(1-8000) VARCHAR(1-8000)
varbinary(max) VARCHAR(0) BITADATOKHOZ*
varchar(max) VARCHAR(0)*
xml VARCHAR(0)*
  • A VARCHAR(0) leképezésével kapcsolatos további információkért tekintse meg a következő szakaszt.

Adattípus-leképezési szempontok

Fontolja meg az alábbi adattípus-leképezési problémákat a DB2-előfizetőknek való replikáláskor:

  • Az SQL Server char, varchar, binary és varbinary DB2 CHAR, VARCHAR, CHAR FOR BIT DATA és VARCHAR FOR BIT DATA típusra való leképezésekor a replikáció a DB2 adattípus hosszát az SQL Server típusával megegyezőre állítja.

    Ez lehetővé teszi a létrehozott tábla sikeres létrehozását az Előfizetőnél, feltéve, hogy a DB2 oldalméret-korlátozás elég nagy a sor maximális méretének kielégítéséhez. Győződjön meg arról, hogy a DB2-adatbázis eléréséhez használt bejelentkezés rendelkezik a db2-be replikált táblákhoz megfelelő méretű táblaterek eléréséhez szükséges engedélyekkel.

  • A DB2 32 kilobájtos (KB) méretű VARCHAR-oszlopokat támogat; Ezért lehetséges, hogy egyes SQL Server-nagyméretű objektumoszlopok megfelelően leképezhetők a DB2 VARCHAR-oszlopokra. A DB2-hez replikált OLE DB-szolgáltató azonban nem támogatja a nagyméretű SQL Server-objektumok DB2-objektumokra való leképezését. Emiatt az SQL Server-szöveg, a varchar(max), az ntext és az nvarchar(max) oszlopok VARCHAR(0) értékre vannak leképezve a létrehozott létrehozási szkriptekben. A 0 hosszértéket módosítani kell egy megfelelő értékre, mielőtt a szkriptet az Előfizetőre alkalmazták. Ha az adattípus hossza nem változik, a DB2 604-es hibát jelez, amikor a tábla létrehozása a DB2-előfizetőnél történik (a 604-es hiba azt jelzi, hogy egy adattípus pontossági vagy hosszattribútuma érvénytelen).

    A replikálni kívánt forrástábla ismerete alapján állapítsa meg, hogy megfelelő-e egy nagy SQL Server-objektumot egy változó hosszúságú DB2-elemhez képezni, és meg kell adni egy megfelelő maximális hosszt egy egyéni létrehozási szkriptben. Az egyéni létrehozási szkriptek megadásáról a jelen témakör "IBM DB2-előfizető konfigurálása" című szakaszának 5. lépésében olvashat bővebben.

    Megjegyzés:

    A DB2 típus megadott hossza más oszlophosszokkal kombinálva nem haladhatja meg a maximális sorméretet azon DB2 táblaterület alapján, amelyhez a táblaadatok hozzá vannak rendelve.

    Ha nincs megfelelő leképezés egy nagy objektumoszlophoz, fontolja meg az oszlopszűrés használatát a cikkben, hogy az oszlop ne legyen replikálva. További információ: Közzétett adatok szűrése.

  • Az SQL Server nchar és az nvarchar DB2 CHAR-ra és VARCHAR-ra való replikálásakor a replikáció ugyanazt a hossz-megadót használja a DB2 típushoz, mint az SQL Server-típushoz. Az adattípus hossza azonban túl kicsi lehet a létrehozott DB2-tábla esetében.

    Egyes DB2-környezetekben az SQL Server karakteres adatelemei nem korlátozódnak az egy bájtos karakterekre; a CHAR vagy VARCHAR elem hosszát figyelembe kell venni. Szükség esetén figyelembe kell venni a shift in és a shift out karaktereket is. Ha nchar és nvarchar oszlopokat tartalmazó táblákat replikál, előfordulhat, hogy nagyobb maximális hosszt kell megadnia az adattípushoz egy egyéni létrehozási szkriptben. Az egyéni létrehozási szkriptek megadásáról a jelen témakör "IBM DB2-előfizető konfigurálása" című szakaszának 5. lépésében olvashat bővebben.