IBM DB2 abonentów
Microsoft SQL Server supports push subscriptions to IBM DB2/AS 400, DB2/MVS, and DB2/Universal Database through the OLE DB providers that are included with Microsoft Host Integration Server.
Konfigurowanie programu IBM DB2 subskrybenta
Aby skonfigurować IBM DB2 abonenta, wykonaj następujące kroki:
Zainstaluj najnowszą wersja Microsoft OLE DB Provider dla DB2 na dystrybutor:
Jeśli używasz SQL Server 2008 Enterprise, na Pobierania programu SQL Server 2008 strona sieci Web w Pokrewne pobiera sekcji, kliknij łącze do najnowszej wersja Microsoft SQL Server 2008 Feature Pack.Na Microsoft SQL Server 2008 Feature Pack strona sieci Web, wyszukiwanie Microsoft OLE DB Provider dla DB2.
Jeśli używasz SQL Server 2008 Standard, zainstaluj najnowszą wersja Microsoft hosta Integration Services server (HIS), która obejmuje dostawca.
Oprócz instalowania dostawca, zaleca się zainstalować narzędzie dostępu danych używane w następnym kroku (jest instalowany domyślnie z pobrania dla SQL Server 2008 Enterprise).Aby uzyskać więcej informacji na temat instalowania i używania narzędzia dostępu do danych zobacz dokumentację dostawca lub dokumentacji HIS.
Tworzenie połączenia ciąg dla subskrybenta.Połączenie ciąg można utworzyć w dowolnym edytorze tekstu, ale zaleca się używania narzędzia dostępu do danych.Aby utworzyć ciąg w narzędzia dostępu do danych:
Kliknij Start, programów, Microsoft OLE DB Provider dla DB2, a następnie Narzędzia dostępu do danych.
W Narzędzia dostępu do danych, wykonaj kroki w celu dostarczenia informacji o serwerze DB2.Po zakończeniu pracy narzędzie skojarzone połączenia tworzone jest połączenie danych uniwersalnej (UDL) ciąg (UDL nie jest rzeczywiście używany przez replikacji, ale połączenie ciąg jest).
Dostęp do połączenia ciąg: Kliknij prawym przyciskiem myszy UDL narzędzia dostępu do danych i zaznacz Ciąg połączenia wyświetlania.
Połączenie ciąg będą podobne do (wiersz podziały są dla czytelności):
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;Units of Work=RUW;DBMS Platform=DB2/NT; Persist Security Info=False;Connection Pooling=True;
Większość opcji w ciąg są specyficzne dla serwera DB2, konfigurując, ale Process Binary as Character opcja powinna być zawsze zestaw do False.Wartość jest wymagana dla Initial Catalog możliwość zidentyfikowania baza danych subskrypcja.Połączenie ciąg będzie wprowadzona w Kreatorze nowej subskrypcja, podczas tworzenia subskrypcja.
Tworzenie publikacja migawka lub transakcyjnych, włączanie nie-SQL Server abonentów, a następnie utworzyć subskrypcja wypychana dla subskrybenta.Aby uzyskać więcej informacji, zobacz:
SQL Server Management Studio: Jak Utwórz subskrypcję abonenta serwer-do SQL (SQL Server Management Studio)
Replikacja Transact-SQL programowania: Jak Utworzyć subskrypcję, innej niż SQL Server abonenta (Programowanie replikacji Transact-SQL)
Opcjonalnie można określić skrypt tworzenia niestandardowych dla jednego lub więcej artykułów.Po opublikowaniu tabela skryptu CREATE tabela jest tworzony dla tej tabela.Dla nie-SQL Server abonentów, skrypt jest tworzony w Transact-SQL dialektu, a następnie jest tłumaczony na bardziej ogólne dialekt SQL przez agenta dystrybucji przed stosowane subskrybenta.Aby określić skrypt tworzenia niestandardowych, albo zmodyfikować istniejące Transact-SQL skrypt lub utworzyć wykonania skryptu, który używa dialekt DB2 SQL; Jeśli utworzono skrypt DB2 bypass_translation dyrektywy, tak aby Agent dystrybucji zastosuje skryptu subskrybent bez tłumaczenia.
Skrypty mogą być modyfikowane w kilku powodów, ale najczęściej przyczyną jest zmiana mapowania typu danych.Aby uzyskać więcej informacji zobacz "danych typu mapowania uwagi" sekcję w tym temacie.Jeśli modyfikujesz Transact-SQL skrypt, zmiany powinny być ograniczone do zmiany mapowania typu danych (i skrypt nie powinien zawierać komentarze).Jeśli wymagane są bardziej istotne zmiany, należy utworzyć skrypt DB2.
Aby zmodyfikować skrypt artykuł i przekazać jej jako skryptu tworzenia niestandardowych
Po publikacja został wygenerowany migawka, przejdź do folderu migawka publikacja.
Zlokalizuj plik .sch z taką samą nazwę jak artykuł, takich jak MyArticle.sch.
Otwórz plik za pomocą Notatnika lub innego edytora tekstu.
Zmodyfikuj plik i zapisz go do innego katalogu.
Wykonanie sp_changearticle, określający ścieżka i nazwę creation_script właściwość.Aby uzyskać więcej informacji, zobacz sp_changearticle (języka Transact-SQL).
Aby utworzyć skrypt artykuł i przekazać jej jako skryptu tworzenia niestandardowych
Utworzyć skrypt artykuł przy użyciu dialekt DB2 SQL.Zapewnienia pierwszy wiersz pliku jest bypass_translation, z nic w wierszu.
Wykonanie sp_changearticle, określający ścieżka i nazwę creation_script właściwość.
Zagadnienia dotyczące abonentów IBM DB2
Oprócz okoliczności omówionych w temacie -Z SQL Server abonentów, należy rozważyć następujące zagadnienia podczas replikowania subskrybentom DB2:
Dane i indeksy dla każdej zreplikowanej tabela są przypisane do obszar tabel DB2.Rozmiar strona obszar tabel DB2 kontroluje maksymalną liczbę kolumn i maksymalny rozmiar wiersza z tabel należących do obszar tabel.Zapewnić, aby obszar tabel związanych z zreplikowanych tabelach właściwe na podstawie liczby kolumn replikowane i maksymalny rozmiar wiersza z tabel.
Nie publikowanie tabel za pomocą subskrybentów DB2 replikacja transakcyjna jest jeden lub więcej kolumn klucz podstawowego w tabela danych wpisz DZIESIĘTNY (32-38 0 38) lub NUMERYCZNE (32-38 0 38).replikacja transakcyjnej identyfikuje wierszy za pomocą klucz podstawowy; może to spowodować błędy, ponieważ te typy danych są mapowane na VARCHAR(41) przez subskrybenta.Tabele z kluczami podstawowymi, które korzystają z tych typów danych mogą być publikowane za pomocą replikacja migawka.
Jeśli chcesz wstępne tworzenie tabel subskrybent zamiast tworzyć replikacja, użyj replication support only opcji.Aby uzyskać więcej informacji, zobacz Inicjowanie transakcyjnych subskrypcję bez migawki.
SQL Server Umożliwia dłuższe nazwy tabela i kolumna nazw niż DB2:
Jeśli baza danych publikacji zawiera tabele z nazwami dłużej niż obsługiwane w wersja DB2 subskrybent określić alternatywną nazwę dla destination_table właściwość artykuł.Aby uzyskać więcej informacji na temat ustawiania właściwości podczas tworzenia publikacja, zobacz Jak Utwórz publikację i artykułów (SQL Server Management Studio) i Jak Definiowanie artykuł (Programowanie replikacji Transact-SQL).
Nie jest możliwe określenie alternatywne kolumna nazwy.Należy się upewnić, że opublikowanych tabel nie zawierają kolumna nazwy dłuższe niż obsługiwane w wersja DB2 przez subskrybenta.
Mapowania typów danych z SQL Server na IBM DB2
W poniższej tabela przedstawiono mapowania typu danych, które są używane, gdy dane są replikowane do subskrybenta z systemem IBM DB2.
Typ danych programu SQL Server |
Typ danych IBM DB2 |
---|---|
bigint |
DZIESIĘTNE(19,0) |
binary(1-254) |
CHAR(1-254) BITÓW DANYCH |
binary(255-8000) |
VARCHAR(255-8000) BITÓW DANYCH |
bit |
SMALLINT |
char(1-254) |
CHAR(1-254) |
char(255-8000) |
VARCHAR(255-8000) |
date |
DATA |
datetime |
SYGNATURA CZASOWA |
datetime2(0-7) |
VARCHAR(27) |
datetimeoffset(0-7) |
VARCHAR(34) |
decimal(1-31, 0-31) |
DZIESIĘTNEGO (1-31 0 31) |
decimal(32-38, 0-38) |
VARCHAR(41) |
float(53) |
PODWÓJNE |
float |
ZMIENNOPRZ |
geography |
OBRAZ |
geometry |
OBRAZ |
hierarchyid |
OBRAZ |
image |
VARCHAR(0) danych BIT1 |
into |
ZAOKR.DO.CAŁK |
money |
DZIESIĘTNE(19,4) |
nchar(1-4000) |
VARCHAR(1-4000) |
ntext |
VARCHAR(0)1 |
numeric(1-31, 0-31) |
DECIMAL(1-31,0-31) |
numeric(32-38, 0-38) |
VARCHAR(41) |
nvarchar(1-4000) |
VARCHAR(1-4000) |
nvarchar(max) |
VARCHAR(0)1 |
real |
Liczba rzeczywista |
smalldatetime |
SYGNATURA CZASOWA |
smallint |
SMALLINT |
smallmoney |
DZIESIĘTNE(10,4) |
sql_variant |
Brak |
sysname |
VARCHAR(128) |
text |
VARCHAR(0)1 |
time(0-7) |
VARCHAR(16) |
timestamp |
CHAR(8) BITÓW DANYCH |
tinyint |
SMALLINT |
uniqueidentifier |
CHAR(38) |
varbinary(1-8000) |
VARCHAR(1-8000) BITÓW DANYCH |
varchar(1-8000) |
VARCHAR(1-8000) |
varbinary(max) |
VARCHAR(0) danych BIT1 |
varchar(max) |
VARCHAR(0)1 |
xml |
VARCHAR(0)1 |
1 w następnej sekcji więcej informacji dotyczących mapowania do VARCHAR(0).
Zagadnienia dotyczące mapowania typów danych
Podczas replikowania subskrybentom DB2, należy rozważyć następujące zagadnienia mapowania typów danych:
When mapping SQL Server char, varchar, binary and varbinary to DB2 CHAR, VARCHAR, CHAR FOR BIT DATA, and VARCHAR FOR BIT DATA, respectively, replication sets the length of the DB2 data type to be the same as that of the SQL Server type.
Dzięki temu wygenerowanej tabela ma być pomyślnie utworzone przez subskrybenta jak ograniczenie rozmiaru strona DB2 jest wystarczająco duży, aby pomieścić maksymalny rozmiar wiersza.Upewnij się, że logowanie umożliwiające dostęp do bazy danych DB2 ma uprawnienia dostępu tabela wystarczających rozmiarów dla tabelas replikowane do DB2.
DB2 może obsługiwać VARCHAR kolumn tak duży jak 32 kilobajty (KB); Dlatego jest możliwe przez niektóre SQL Server kolumny dużego obiektu mogą być odpowiednio mapowane do kolumny DB2 VARCHAR.Jednak dostawca OLE DB używa replikacja dla DB2 nie obsługuje mapowania SQL Server dużych obiektów do DB2 dużych obiektów.For this reason, SQL Server text, varchar(max), ntext, and nvarchar(max) columns are mapped to VARCHAR(0) in the generated create scripts.Długość wartości 0 musi zostać zmieniony na odpowiednią wartość przed stosowanie skryptu do subskrybenta.Jeśli długość typ danych nie zostanie zmieniona, DB2 podniesie 604 błąd podczas tworzenia tabela jest próba subskrybent DB2 (błąd 604 wskazuje precyzji lub długość atrybut typ danych jest nieprawidłowy).
Na podstawie swojej wiedza na temat źródło tabela, która jest replikowana ustalić, czy jest on odpowiedni do mapowania SQL Server dużych obiektów do element o zmiennej długości DB2 i określić odpowiednią długość maksymalna tworzenia niestandardowych script.Informacje określające skryptu tworzenia niestandardowych zobacz krok 5 w sekcji "Konfigurowanie IBM DB2 abonent" w tym temacie.
Ostrzeżenie
Określona długość dla typu DB2, w połączeniu z innymi długości kolumna nie może przekroczyć maksymalny rozmiar wiersza na podstawie obszaru tabel DB2 przypisany do danych tabela.
Brak mapowania właściwe dla kolumny dużego obiektu, można rozważyć kolumnie filtrowanie artykuł tak, że kolumna nie jest replikowana.Aby uzyskać więcej informacji, zobacz Filtrowanie opublikowane dane.
When replicating SQL Server nchar and nvarchar to DB2 CHAR and VARCHAR, replication uses the same length-specifier for the DB2 type as for the SQL Server type.Jednakże długość typ danych może za mały dla tabela wygenerowane DB2.
In some DB2 environments, a SQL Server char data item is not restricted to single-byte characters; the length of a CHAR or VARCHAR item must take this into account.Musi być również brać pod uwagę shift w i shift poza znaków, jeśli są one potrzebne.Jeśli jest replikowana tabel z nchar i nvarchar kolumny, może zaistnieć potrzeba określenia większych maksymalna długość dla typu danych podczas tworzenia niestandardowych script.Informacje określające skryptu tworzenia niestandardowych zobacz krok 5 w sekcji "Konfigurowanie IBM DB2 abonent" w tym temacie.