Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SQL Server, Microsoft Host Integration Server'a dahil olan OLE DB sağlayıcıları aracılığıyla IBM Db2/AS 400, DB2/MVS ve DB2/Universal Database'e gönderme aboneliklerini destekler.
IBM Db2 Abonesini Yapılandırma
IBM Db2 Abonesini yapılandırmak için şu adımları izleyin:
Dağıtımcıya DB2 için Microsoft OLE DB Sağlayıcısı'nın en son sürümünü yükleyin:
SQL Server Enterprise Edition kullanıyorsanız, SQL Server İndirmeleri Web sayfasının İlgili İndirmeler bölümünde Microsoft SQL Server Özellik Paketi'nin en son sürümünün bağlantısına tıklayın. Microsoft SQL Server Özellik Paketi Web sayfasında DB2 için Microsoft OLE DB Sağlayıcısı'nı arayın.
SQL Server Standard Edition kullanıyorsanız, sağlayıcıyı içeren Microsoft Host Integration Services (HIS) sunucusunun en son sürümünü yükleyin.
Sağlayıcıyı yüklemeye ek olarak, sonraki adımda kullanılan Veri Erişim Aracı'nı yüklemenizi öneririz (varsayılan olarak SQL Server Enterprise Edition indirmesiyle birlikte yüklenir). Veri Erişim Aracı'nı yükleme ve kullanma hakkında daha fazla bilgi için sağlayıcı belgelerine veya HIS belgelerine bakın.
Abone için bir bağlantı dizesi oluşturun. Bağlantı dizesi herhangi bir metin düzenleyicisinde oluşturulabilir, ancak Veri Erişim Aracı'nı kullanmanızı öneririz. Veri Erişim Aracı'nda dizeyi oluşturmak için:
Başlat, Programlar, DB2 için Microsoft OLE DB Sağlayıcısı ve ardından Veri Erişim Aracı'nı tıklatın.
Veri Erişim Aracı'nda, DB2 sunucusu hakkında bilgi sağlamak için adımları izleyin. Aracı tamamladığınızda, ilişkili bir bağlantı dizesiyle bir evrensel veri bağlantısı (UDL) oluşturulur (UDL aslında çoğaltma tarafından kullanılmaz, ancak bağlantı dizesi kullanılır).
Bağlantı dizesine erişin: Veri Erişim Aracı'nda UDL'ye sağ tıklayın ve Bağlantı Dizesini Görüntüle'yi seçin.
Bağlantı dizesi şuna benzer olacaktır (satır sonları okunabilirlik içindir):
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;Dizedeki seçeneklerin çoğu yapılandırdığınız DB2 sunucusuna özgü olsa da
Process Binary as CharacterveDerive Parametersseçenekleri her zaman olarakFalseayarlanmalıdır. Abonelik veritabanını tanımlama seçeneği içinInitial Catalogbir değer gereklidir. Bağlantı dizesi, aboneliği oluşturduğunuzda Yeni Abonelik Sihirbazı'na girilir.Bir anlık görüntü veya işlem yayını oluşturun, SQL Server dışı Aboneler için etkinleştirin ve Abone için bir push aboneliği oluşturun. Daha fazla bilgi için bkz. SQL Server Olmayan Abone için Abonelik Oluşturma.
İsteğe bağlı olarak, bir veya daha fazla makale için özel bir oluşturma betiği belirtin. Tablo yayımlandığında, bu tablo için bir
CREATE TABLEbetik oluşturulur. SQL Server abonesi olmayanlar için betik Transact-SQL diyalektinde oluşturulur ve aboneye uygulanmadan önce Dağıtım Aracısı tarafından daha genel bir SQL diyalektine çevrilir. Özel oluşturma betiği belirtmek için mevcut Transact-SQL betiğini değiştirin veya DB2 SQL diyalektini kullanan eksiksiz bir betik oluşturun; DB2 betiği oluşturulursa, Dağıtım Aracısı'nın betiği çeviri olmadan Abone'de uygulaması için bypass_translation yönergesini kullanın.Betikler çeşitli nedenlerle değiştirilebilir, ancak en yaygın neden veri türü eşlemelerini değiştirmektir. Daha fazla bilgi için bu konudaki "Veri Türü Eşleme konuları" bölümüne bakın. Transact-SQL betiğini değiştirirseniz, değişiklikler veri türü eşleme değişiklikleriyle sınırlandırılmalıdır (ve betikte açıklama olmamalıdır). Daha önemli değişiklikler gerekiyorsa bir DB2 betiği oluşturun.
Bir makale betiğini düzenleyip özelleştirilmiş bir oluşturma komut dosyası olarak sunmak için
Yayın için anlık görüntü oluşturulduktan sonra yayının anlık görüntü klasörüne gidin.
Makaleyle aynı isme sahip dosyayı bulun, örneğin
MyArticle.sch.Not Defteri'ni veya başka bir metin düzenleyicisini kullanarak bu dosyayı açın.
Dosyayı değiştirin ve farklı bir dizine kaydedin.
sp_changearticleözelliği için dosya yolunu ve adını belirterek komutunu yürütebilirsiniz. Daha fazla bilgi için bkz. sp_changearticle (Transact-SQL).
Bir makale betiği oluşturup bunu isteğe özel bir betik olarak sunmak için
DB2 SQL diyalektini kullanarak bir makale betiği oluşturun. Dosyanın ilk satırının bypass_translation olduğundan ve satırda başka bir şey olmadan olduğundan emin olun.
sp_changearticle yürüterek creation_script özelliği için dosya yolunu ve adını belirtin.
IBM Db2 Aboneleri için Dikkat Edilmesi Gerekenler
SQL Server Abonesi Olmayanlar konusunda ele alınan noktalara ek olarak, DB2 Abonelerine çoğaltırken aşağıdaki sorunları göz önünde bulundurun:
Çoğaltılan her tablonun verileri ve dizinleri bir DB2 tablo boşluğuna atanır. DB2 tablo alanının sayfa boyutu, en fazla sütun sayısını ve tablo boşluğuna ait tabloların en büyük satır boyutunu denetler. Çoğaltılan tablolarla ilişkili tablo alanının, çoğaltılan sütun sayısına ve tabloların en büyük satır boyutuna göre uygun olduğundan emin olun.
Tablodaki bir veya daha fazla birincil anahtar sütunu DECIMAL (32-38, 0-38) veya NUMERIC(32-38, 0-38) veri türündeyse, işlem çoğaltması kullanarak DB2 Abonelerine tablo yayımlamayın. İşlemsel çoğaltma, birincil anahtarı kullanarak satırları tanımlar; bu veri türlerinin Abonede VARCHAR(41) ile eşlenmesi, hatalara yol açabilir. Bu veri türlerini kullanan birincil anahtarlara sahip tablolar anlık görüntü çoğaltma kullanılarak yayımlanabilir.
Abone'de tabloları çoğaltma işlemi tarafından oluşturulması yerine önceden oluşturmak istiyorsanız, sadece çoğaltma desteği seçeneğini kullanın. Daha fazla bilgi için bkz. Anlık Görüntü Olmadan İşlemSel Abonelik Başlatma.
SQL Server, DB2'den daha uzun tablo ad ve sütun adlara izin verir:
Yayın veritabanı, abonedeki DB2 sürümünde desteklenenlerden daha uzun adlara sahip tablolar içeriyorsa, destination_table makale özelliği için alternatif bir ad belirtin. Yayın oluştururken özellikleri ayarlama hakkında daha fazla bilgi için bkz. Yayın Oluşturma ve Makale Tanımlama.
Alternatif sütun adları belirtmek mümkün değildir. Yayımlanan tabloların abonedeki DB2 sürümünde desteklenenlerden daha uzun sütun adları içermediğinden emin olmanız gerekir.
SQL Server'dan IBM Db2'ye Veri Türlerini Eşleme
Aşağıdaki tabloda, veriler IBM Db2 çalıştıran bir aboneye çoğaltıldığında kullanılan veri türü eşlemeleri gösterilmektedir.
| SQL Server veri türü | IBM Db2 veri türü |
|---|---|
| bigint | DECIMAL(19,0) |
| binary(1-254) | BIT VERILERI IÇIN CHAR(1-254) |
| binary(255-8000) | BIT VERILERI IÇIN VARCHAR(255-8000) |
| 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) |
| decimal(1-31, 0-31) | ONDALıK(1-31, 0-31) |
| ondalık(32-38, 0-38) | VARCHAR(41) |
| float(53) | ÇİFT |
| float | FLOAT |
| geography | RESİM |
| geometry | RESİM |
| hierarchyid | RESİM |
| image | VARCHAR(0) BİT VERİSİ İÇİN * |
| içine | INT |
| para | ONDALIK(19,4) |
| nchar(1-4000) | VARCHAR(1-4000) |
| ntext | VARCHAR(0)* |
| sayısal(1-31, 0-31) | DECIMAL(1-31,0-31) |
| sayısal(32-38, 0-38) | VARCHAR(41) |
| nvarchar(1-4000) | VARCHAR(1-4000) |
| nvarchar(max) | VARCHAR(0)* |
| Gerçek | GERÇEK |
| smalldatetime | TIMESTAMP |
| smallint | SMALLINT |
| küçük para | ONDALıK(10,4) |
| sql_variant | Mevcut Değil |
| sysname | VARCHAR(128) |
| text | VARCHAR(0)* |
| time(0-7) | VARCHAR(16) |
| zaman etiketi | BİT VERİSİ İÇİN CHAR(8) |
| tinyint | SMALLINT |
| uniqueidentifier | CHAR(38) |
| varbinary(1-8000) | BIT VERILERI IÇIN VARCHAR(1-8000) |
| varchar(1-8000) | VARCHAR(1-8000) |
| varbinary(maks) | VARCHAR(0) BİT VERİSİ İÇİN * |
| varchar(max) | VARCHAR(0)* |
| xml | VARCHAR(0)* |
- VARCHAR(0) eşlemeleri hakkında daha fazla bilgi için sonraki bölüme bakın.
Veri Türü Eşlemesi Ile İlgili Dikkat Edilmesi Gerekenler
DB2 Abonelerine çoğaltırken aşağıdaki veri türü eşleme sorunlarını göz önünde bulundurun:
SQL Server char, varchar, binary ve varbinary öğelerini sırasıyla DB2 CHAR, VARCHAR, CHAR FOR BIT DATA ve VARCHAR FOR BIT DATA ile eşlerken, çoğaltma DB2 veri türünün uzunluğunu SQL Server türüyle aynı olacak şekilde ayarlar.
Bu, DB2 sayfa boyutu kısıtlaması satırın en büyük boyutuna uyacak kadar büyük olduğu sürece, oluşturulan tablonun Abonede başarıyla oluşturulmasını sağlar. DB2 veritabanına erişmek için kullanılan oturum açma bilgilerinin DB2'ye çoğaltılan tablolar için yeterli boyuttaki tablo alanlarına erişme izinlerine sahip olduğundan emin olun.
DB2, 32 kilobayt (KB) kadar büyük VARCHAR sütunlarını destekleyebilir; bu nedenle bazı SQL Server büyük nesne sütunları DB2 VARCHAR sütunlarına uygun şekilde eşlenebilir. Ancak, çoğaltmanın DB2 için kullandığı OLE DB sağlayıcısı, SQL Server büyük nesnelerini DB2 büyük nesneleriyle eşlemeyi desteklemez. Bu nedenle, oluşturulan oluşturma betiklerinde SQL Server metni, varchar(max), ntext ve nvarchar(max) sütunları VARCHAR(0) ile eşlenir. 0 uzunluk değeri, betiği Aboneye uygulamadan önce uygun bir değere değiştirilmelidir. Veri türü uzunluğu değiştirilmezse DB2 Abonesi'nde tablo oluşturmaya çalışıldığında DB2 hata 604'e neden olur (hata 604, veri türünün duyarlığı veya uzunluk özniteliğinin geçerli olmadığını gösterir).
Çoğalttığınız kaynak tablo bilginize bağlı olarak, SQL Server büyük nesnesini değişken uzunlukta bir DB2 öğesiyle eşlemenin uygun olup olmadığını belirleyin ve özel oluşturma betiğinde uygun bir maksimum uzunluk belirtin. Özel oluşturma betiği belirtme hakkında bilgi için bu konudaki "IBM Db2 Abonesini Yapılandırma" bölümündeki 5. adıma bakın.
Uyarı
DB2 türü için belirtilen uzunluk, diğer sütun uzunluklarıyla birleştirildiğinde, tablo verilerinin atandığı DB2 tablo alanına göre en büyük satır boyutunu aşamaz.
Büyük bir nesne sütunu için uygun eşleme yoksa, sütunun çoğaltılmaması için makalede sütun filtrelemeyi kullanmayı göz önünde bulundurun. Daha fazla bilgi için bkz . Yayımlanan Verileri Filtreleme.
SQL Server nchar ve nvarchar'ı DB2 CHAR ve VARCHAR'a çoğaltırken, çoğaltma DB2 türü için SQL Server türüyle aynı uzunluk belirticiyi kullanır. Ancak, oluşturulan DB2 tablosu için veri türü uzunluğu çok küçük olabilir.
Bazı DB2 ortamlarında SQL Server char veri öğesi tek baytlı karakterlerle sınırlı değildir; bir CHAR veya VARCHAR öğesinin uzunluğu bunu dikkate almalıdır. Ayrıca, gerekirse karakterleri içeri vedışarı kaydırmayı da dikkate almanız gerekir. Tabloları nchar ve nvarchar sütunlarıyla çoğaltıyorsanız, özel oluşturma komut dosyasında veri türü için daha büyük bir maksimum uzunluk belirtmeniz gerekebilir. Özel oluşturma betiği belirtme hakkında bilgi için bu konudaki "IBM Db2 Abonesini Yapılandırma" bölümündeki 5. adıma bakın.