Aracılığıyla paylaş


Tasarım konuları ve Oracle yayımcılar için sınırlamalar

Publishing from an Oracle database is designed to work nearly identically to publishing from a Microsoft SQL Server database.Bununla birlikte, aşağıdaki sınırlamalar ve sorunlar dikkat etmeniz gereken:

  • Oracle Gateway seçeneği Oracle tam seçeneğini geliştirilmiş performans sağlar; Ancak, birden çok işlem yayınlarda aynı tablo yayımlamak için bu seçeneği kullanılamaz.A tablo en fazla bir işlemsel yayım ve anlık yayınların herhangi bir sayı görüntülenir.Birden çok işlem yayınlarda aynı tablo yayımlamak gerekiyorsa, Oracle tam seçeneğini seçin.

  • Çoğaltma yayımlama tabloları, dizinleri ve materialized görünümleri destekler.Diğer nesneleri çoğaltılır.

  • Oracle veri işleme ve depolama arasındaki küçük bazı farklılıklar vardır ve SQL Server veritabanları etkileyen çoğaltma.

  • Nasıl işlem çoğaltma özellikleri Oracle Yayımcı kullanırken desteklenen farklılıkları vardır.

Oracle nesneleri yayımlamak için destek

Aşağıdaki nesneler Oracle veritabanlarından çoğaltılıyor çoğaltma destekler:

  • Tablolar

  • Dizin düzenlenmiş tablolar

  • Dizinler

  • Materialized görünümler (bunlar Tablo olarak çoğaltılır)

Aşağıdaki yayımlanmış tabloları üzerinde bulunabilir ancak değil çoğaltılır:

  • Etki alanı tabanlı dizinler

  • İşlev tabanlı dizinler

  • Varsayılanları

  • Denetleme kısıtlamaları

  • Yabancı anahtarlar

  • Depolama seçenekleri (açabilmek, kümeler, vb.)

Aşağıdaki nesneler yinelenemez:

  • İç içe geçmiş tablolar

  • Görünümler

  • Paketleri, paket gövdeleri, yordamları ve Tetikleyicileri

  • Sıraları

  • Serileri

  • Eş Anlamlılar

Desteklenen veri türleri hakkında daha fazla bilgi için bkz: Oracle yayımcılar için veri türü eşleştirme.

Oracle ve sql Server arasındaki farklar

  • Oracle, bazı nesneler için farklı bir maksimum boyut sınırlamaları vardır.Oracle içinde oluşturulan tüm nesnelerin yayın veritabanı en büyük boyutu sınırları içinde karşılık gelen nesneler için uyması SQL Server.Sınırları hakkında bilgi için SQL Server, bkz: SQL Server için Maksimum Kapasite Belirtimleri.

  • Varsayılan olarak üst nesne adlarını Oracle oluşturulan durum.Büyük durum olarak Oracle nesnelerinin adlarını yayımlarken aracılığıyla bunları sağlamak emin olun bir SQL Server dağıtıcı, onlar ise büyük durum Oracle veritabanı.Nesneleri doğru belirlemek için hata durum belirten bir hata iletisi nesne bulunamıyor'de neden olabilir.

  • Oracle vardır biraz farklı bir sql diyalekt dan SQL Server; Satır filtreleri Oracle uyumlu sözdiziminde yazılması gerekir.

Büyük nesneler için dikkat edilmesi gereken noktalar

Büyük nesne (lob) veri değil makale günlüğünde depolanan tablo; lob veri güncelleştirmeleri her zaman alınan doğrudan gelen yayımlanmış tablo.Güncelleştirmeleri çoğaltılmasını işlem yayınlarda yalnızca lob etkileyen işlem çoğaltma tetikleyicisi çoğaltılmış üzerinde harekete, tablo.LOB'lar içeren satırlar eklendiğinde veya silindiğinde oracle Tetikleyicileri Ateş; Ancak güncelleştirmeleri lob sütunlarda tetiklemeleri ateşlemek.Ancak aynı satırda olmayan lob sütunu da aynı Oracle hareketle güncelleştirilir hemen bir lob sütun için bir güncelleştirme çoğaltılacaktır.Aksi takdirde, Abone tarafında lob sütun lob sütununun aynı satırındaki bir sonraki güncelleştirme gerçekleştiğinde yenilenir.Bu davranış, uygulamanız için kabul edilebilir olduğundan emin olun.

Güncelleştirmeleri lob sütunları işlem yayınlarda çoğaltmak için aşağıdaki stratejileri birini uygulama yazarken dikkate alın:

  • Sil ve satırları satır güncelleştirmek yerine, bir hareketin içinde yeniden takın: Satır re-inserting yeni lob belirtin.Satır, Delete ve INSERT Tetikleyiciler ateşlenmesine çünkü çoğaltılacaktır.

  • lob sütun satır güncelleştirmenin yanı sıra lob sütun eklemek veya bir lob sütun satır aynı Oracle hareketin bir parçası olarak güncelleştirin.Her iki durumda da olmayan lob sütun güncelleştirme tetiği harekete olmasını sağlar.

LOB'lar hakkında daha fazla bilgi için bkz: Oracle yayımcılar için veri türü eşleştirme.

Benzersiz dizinler ve kısıtlamalar

Anlık görüntü ve işlem için çoğaltma, sütunlar benzersiz dizinlerde yer alan ve kısıtlamaları (birincil anahtar kısıtlamaları da dahil olmak üzere) uyması için bazı kısıtlamalar gerekir.Bu sınırlamalara uymaları, kısıtlama veya dizin çoğaltılmaz.

  • Sütun bir dizinde üzerinde izin verilen en fazla sayısını SQL Server 16'dır.

  • Benzersiz kısıtlamalar dahil tüm sütunların veri türleri desteklenir gerekir.Veri türleri hakkında daha fazla bilgi için bkz: Oracle yayımcılar için veri türü eşleştirme.

  • Benzersiz kısıtlamalar dahil tüm sütunları yayımlanan (bunlar filtre uygulanamaz).

  • Benzersiz kısıtlamaları veya dizinler katılan sütunlar null olmalıdır.

Ayrıca, aşağıdaki konuları göz önünde bulundurun:

  • Oracle ve SQL Server null davranırlar: Oracle permits multiple rows with NULL values for columns that allow NULL and are included in unique constraints or indexes.SQL Server enforces uniqueness by only permitting a single row with a NULL value for the same column.Benzersiz kısıtlama veya null veren yayımlanmış Tablo dizin veya kısıtlama dahil sütunlar için null değerleri ile birden çok satır içeriyorsa, bir kısıtlama ihlali abone üzerinde ortaya çıkabilecek çünkü dizin yayımlayamazsınız.

  • Benzersizlik için sınarken, boşlukları izleyen bir alan tarafından göz ardı SQL Server ama Oracle.

Gibi SQL Server işlem çoğaltma, işlemsel yayımlar Oracle tablolarda birincil anahtar; iste birincil anahtar yukarıda belirtilen kurallara göre benzersiz olması gerekir.Birincil anahtar önceki madde işaretlerinde belirtilen kurallara uymaz, tablo için yayımlanamıyor işlem çoğaltma.

Oracle yayımlama ve standart işlem çoğaltması ile arasındaki farklar

  • Bir Oracle Yayımcı adıyla aynı olamaz: kendi SQL Server dağıtıcı; herhangi bir SQL Server ; dağıtımcı kullanın yayımcılar veya yayın alırsınız herhangi aboneleri.Aynı dağıtıcı tarafından hizmet verilen yayınları her benzersiz bir adı olmalıdır.

  • Bir tablo yayımlanan bir Oracle yayın çoğaltılmış verileri alamıyor.Bu nedenle, Oracle yayımlama desteklemez: Yayınla anında güncelleme veya kuyruğa alınmış güncelleştirme abonelikleri; ya da yapıları, yayın tabloları da davranma gibi eşler arası ve çift yönlü çoğaltma abonelik tabloları olarak.

  • Birincil anahtara yabancı anahtar ilişkilerini, Oracle veritabanı aboneleri için yinelenir.Bununla birlikte, değişiklikleri teslim gibi ilişkileri verileri korunur.

  • 1000 Sütunların tablo standart işlem yayımları destekler.Oracle işlemsel yayınlar (çoğaltma için yayımlanan her tablo beş sütun ekler) 995 sütunları destekler.

  • Harmanlama yan tümceleri birincil anahtar ve benzersiz kısıtlamaları için önemli olduğu büyük küçük durum duyarlı karşılaştırmaları etkinleştirmek için create table deyimleri eklenir.Bu davranış ile belirtilen şema seçeneği 0x1000, kontrol @ schema_option parametresi sp_addarticle (Transact-sql).

  • Saklı yordamlar yapılandırmak veya Oracle Yayımcı korumak için kullanırsanız, yordamları belirtik işlem içine koymayın.Oracle yayımcı bağlanmak için kullanılan bağlantılı sunucu üzerinde desteklenmiyor.

  • Oracle yayın için istek temelli abonelik Sihirbazı ile oluşturursanız, yeni abonelik Sihirbazı ile sağlanan kullanmak SQL Server 2005 ve sonraki sürümleri.Önceki sürümleri için SQL Serverancak kullanabileceğiniz saklı yordam ve sql-dmo arabirimleri için kurulum çekme abonelikleri için Oracle yayınlar.

  • Aboneler (varsayılan) değişiklikleri yaymak için saklı yordamlar kullanırsanız, mcall sözdizimi desteklenir, ancak yayın bir Oracle Yayımcı'dan olduğunda farklı davranış vardır unutmayın.Genellikle hangi sütunların Yayımcı tarafında güncelleştirildi gösteren bir bit eşlem mcall sağlar.Bir Oracle yayın ile tüm sütunları güncelleştirildi bitmap her zaman gösterilir.Saklı yordamları kullanmak hakkında daha fazla bilgi için bkz: Değişiklikleri için işlemsel makaleleri nasıl yayılma belirtme.

İşlem çoğaltma özellik desteği

  • Oracle yayınları sql Server yayınları destekleyen tüm şema seçeneklerini desteklemez.Şema seçenekleri hakkında daha fazla bilgi için bkz: sp_addarticle (Transact-sql).

  • Oracle yayınları abonelere anında güncelleme veya kuyruğa alınmış güncelleştirme abonelikleri kullanın veya içinde eşler arası veya çift yönlü topolojisinde düğümler olamaz.

  • Oracle yayınları abonelere otomatik olarak bir yedek kopyadan başlatılamıyor.

  • SQL Serveriki doğrulama türlerini destekler: ikili ve rowcount.Oracle yayımcılar rowcount doğrulama desteği.Daha fazla bilgi için bkz: Çoğaltılmış veri doğrulama.

  • SQL Serveriki anlık görüntü biçimleri sunar: yerel mod bcp ve karakter modu.Oracle yayımcılar karakter modu anlık görüntüleri destekler.

  • Yayımlanan Oracle tablolarda şema değişiklikleri desteklenmez.Şema değişiklikleri yapmak için ilk olarak yayın bırakın, değişiklikleri yapın ve sonra yayın ve tüm abonelikleri yeniden oluşturun.

    Not

    Şema değişiklikleri ve sonraki bırakma ve yeniden oluşturulmasını yayın ve abonelikleri yayımlanmış tabloları üzerinde hiçbir etkinlik ne saat oluştuğu anda gerçekleştirilir, 'yalnızca çoğaltma desteği' seçeneği belirtebilirsiniz. Abonelikler.Böylece bunları her abone için bir anlık görüntü kopyalamak zorunda kalmadan eşitlenecek.Daha fazla bilgi için bkz: Bir anlık görüntü olmadan bir işlemsel abonelik başlatılıyor.

Çoğaltma güvenlik modeli

Oracle yayımlama güvenlik modeli güvenlik modeli standart işlem aynıdır çoğaltma, aşağıdaki istisnalar:

Çoğaltma güvenliği hakkında daha fazla bilgi için bkz: Güvenlik ve koruma (çoğaltma).