Aracılığıyla paylaş


Nasıl Yapılır: Parametreli süzgeçleri (RMO programlama) ile bir birleştirme yayını için bir anlık görüntü oluşturma

Parametreli Süzgeçler kullanarak bir birleştirme yayın için anlık görüntü oluştururken, önce tüm abonelik için abonelik meta veriler içeren bir Standart (şema) anlık oluşturmalıdır.Sonra yayımlanan veri abone özgü bölümü içeren anlık görüntü görüntü bölümü oluşturur.Daha fazla bilgi için bkz: Nasıl Yapılır: Başlangıç anlık görüntüsü (RMO programlama) oluşturma.

Çoğaltma Management Objects (RMO), bölümlenmiş anlık görüntüleri, aşağıdaki yollarla programsal olarak oluşturmak için kullanabilirsiniz:

  • Istek anlık görüntü görüntü görüntüsü oluşturma ve Uygulama ilk aboneleri izin saat bunlar eşitleyebilirsiniz.

  • Her bölüm için anlık görüntüleri pre-generate.

  • El ile anlık her abone için anlık görüntü Aracısı'nı çalıştırarak oluşturur.

Not

Bir makale için süzme (değeri belirterek, her abonelik için benzersiz olan çakışmayan bölümlerini verir NonOverlappingSingleSubscription() için PartitionOption() bir birleştirme makalesini oluştururken), meta veriler temizlendikten Birleştirme Aracısı çalıştığında yedeklenir. Bu işlem, bölümlenmiş anlık görüntü daha hızlı bir şekilde sona anlamına gelir.Bu seçeneği kullandığınızda, anlık görüntü oluşturma istemek aboneleri izin düşünmelisiniz.Daha fazla bilgi için konu uygun süzme Seçenekleri'ni kullanarak bir bölümüne bakın... Parametreli satır süzgeçleri.

Security noteSecurity Note:

Olanaklıysa, zamanında güvenlik kimlik bilgileri bilgilerini girmesini ister.Kimlik bilgileri saklamanız gerekir, kullanmak Şifreleme Hizmetleri tarafından sağlananMicrosoft Wındows .NET framework'nı tıklatın.

Abonelerine anlık görüntü görüntü görüntü oluşturma ve teslim başlatmak izin veren bir yayın oluşturmak için

  1. Yayımcı bağlantısını kullanarak oluşturduğunuz ServerConnection sınıf.

  2. örnek ReplicationDatabase yayın veritabanı sınıf küme ConnectionContext() özellik örnek ServerConnection Adım 1 ve çağrı LoadProperties() yöntem. If LoadProperties() verir false, veritabanı'nın var olduğunu doğrulayın.

  3. If EnabledMergePublishing() özellik false, ayarlamak true ve arama CommitPropertyChanges().

  4. örnek MergePublication sınıf ve küme bu nesne için aşağıdaki özellikleri:

    • The ServerConnection from step 1 for ConnectionContext().

    • Yayımlanmış veritabanı adı DatabaseName().

    • yayın için BIR ad Name().

    • En yüksek için çalıştırmak için dinamik anlık görüntü işleri MaxConcurrentDynamicSnapshots(). Abone başlatılan anlık istekleri herhangi bir anda, bu özellik, aynı anda birden çok aboneleri, bölümlenmiş anlık istediğinde, aynı anda çalıştırabileceğiniz bir anlık görüntü Aracısı işleri sayısını sınırlar oluşabilir.Işi sayısı üst sınırı çalıştırırken, bir çalışan iş tamamlanıncaya kadar ek bölümlenmiş anlık görüntü istekleri sıraya alınmış.

    • Bit düzeyinde mantıksal OR (kullanın.| Visual C# ve Or Visual Basic'te) değeri eklemek için işleç AllowSubscriberInitiatedSnapshot() için Attributes().

    • The Login() and Password() fields of SnapshotGenerationAgentProcessSecurity() to provide the kimlik bilgileri for the Microsoft Windows account under which the anlık görüntü Agent iş runs.

      Not

      Ayarı SnapshotGenerationAgentProcessSecurity() yayın bir üyesi tarafından oluşturulduğunda önerilen sysadmin sabit sunucu rolü. Daha fazla bilgi için bkz: Çoğaltma aracısı güvenlik modeli.

  5. Call Create() yayın oluşturmak için yöntem.

    Security noteSecurity Note:

    Yayımcı, uzak Dağıtımcı, tüm özellikler için sağlanan değerler ile yapılandırılırken dahil SnapshotGenerationAgentProcessSecurity(), dağıtıcı düz metin olarak gönderilir. Yayımcı, uzak Dağıtımcı önce edinilecek arasındaki bağlantıyı şifrelemek Create() yöntem. Daha fazla bilgi için bkz: SQL Server bağlantıları için şifreleme.

  6. Use MergeArticle makaleleri yayına eklemek için özellik'ı tıklatın. Belirttiğiniz FilterClause() parametreli süzgeç tanımlayan en az bir makaleyle ilgili özellik. (Isteğe bağlı) Oluşturma MergeJoinFilter nesneleri makaleleri arasında birleştirmek süzgeçleri tanımlayın. Daha fazla bilgi için bkz: Nasıl Yapılır: Bir makale (RMO programlama) tanımlayın..

  7. Değeri SnapshotAgentExists() olan false, arama CreateSnapshotAgent() Bu yayın ilk anlık görüntü Aracısı işi oluşturmak için .

  8. Call StartSnapshotGenerationAgentJob() yöntem MergePublication 4. adımda oluşturduğunuz nesne. Bu oluşturduğu Aracısı iş başlayıncaya ilk anlık görüntü görüntü görüntü.Başlangıç bir anlık görüntü oluştururken ve özel bir zamanlama anlık görüntü aracısı için tanımlama hakkında daha fazla bilgi için bkz: Nasıl Yapılır: Başlangıç anlık görüntüsü (RMO programlama) oluşturma.

  9. (Isteğe bağlı) Bir değer olup olmadığını denetle true için SnapshotAvailable() ne zaman belirlemek için özelliği ilk anlık görüntü görüntü görüntü kullanıma hazırdır.

  10. bölümlenmiş anlık görüntü, bir abone için Birleştir Aracı ilk kez bağlandığında, otomatik olarak oluşturulur.

Bir yayın oluşturursanız ve pregenerate veya anlık görüntüleri yenilemesini

  1. Bir örneğini kullanması MergePublication bir birleştirme yayın tanımlamak için sınıf'ı tıklatın. Daha fazla bilgi için bkz: Nasıl Yapılır: Bir yayını (RMO programlama) oluşturma.

  2. Use MergeArticle makaleleri yayına eklemek için özellik'ı tıklatın. Belirttiğiniz FilterClause() parametreli süzgeci'ni tanımlar ve herhangi bir en az bir makale özellik MergeJoinFilter nesneleri makaleleri arasında birleştirmek süzgeçleri tanımlayın. Daha fazla bilgi için bkz: Nasıl Yapılır: Bir makale (RMO programlama) tanımlayın..

  3. Değeri SnapshotAgentExists() olan false, arama CreateSnapshotAgent() Bu anlık görüntü Aracısı iş oluşturulacak yayın.

  4. Call StartSnapshotGenerationAgentJob() yöntem MergePublication 1. adımda oluşturduğunuz nesne. Bu yöntem oluşturduğu Aracısı işi başlatır ilk anlık görüntü görüntü görüntü.Oluşturma hakkında daha fazla bilgi için bir ilk anlık görüntü ve özel bir zamanlama anlık görüntü aracısı için tanımlama, bkz: Nasıl Yapılır: Başlangıç anlık görüntüsü (RMO programlama) oluşturma.

  5. Bir değer olup olmadığını denetle true için SnapshotAvailable() ne zaman belirlemek için özelliği ilk anlık görüntü görüntü görüntü kullanıma hazırdır.

  6. örnek MergePartition sınıf ve küme abone aşağıdaki özelliklerden birini veya her ikisini birden kullanarak parametreleştirilmiş süzme ölçütleri:

  7. örnek MergeDynamicSnapshotJob sınıf ve küme aynı özelliği gibi adım 6.

  8. Use ReplicationAgentSchedule Abone bölüm için süzülmüş anlık görüntü görüntü görüntüsünü oluşturmak için bir zamanlama tanımlamak için sınıf'ı tıklatın.

  9. örnek'ni kullanma MergePublication 1. adımdaki arayın. AddMergePartition(MergePartition). Geçiş MergePartition 6. adımdaki nesnesi.

  10. örnek'ni kullanma MergePublication 1. adımdaki call AddMergeDynamicSnapshotJob(MergeDynamicSnapshotJob, ReplicationAgentSchedule) yöntem. Geçiş MergeDynamicSnapshotJob Nesneyi adım 7'deki ve ReplicationAgentSchedule Adım 8'deki nesnesi.

  11. Arama EnumMergeDynamicSnapshotJobs()ve MergeDynamicSnapshotJob verilen dizideki yeni eklenen bölümlenmiş anlık görüntü iş nesnesi.

  12. Alma Name() iş için özellik.

  13. dağıtımcı bağlantı kullanarak oluşturduğunuz ServerConnection sınıf.

  14. Bir SQL Server Management Objects (SMO) örnek Server sınıf, geçirmeden ServerConnection 13. adımdaki nesnesi.

  15. örnek Job sınıf, geçirmeden JobServer() özellik Serveradım 14 ve iş adı 12. adımdaki nesnesi.

  16. Call Start() bölümlenmiş anlık görüntü görüntü başlatmak için kullanılan yöntem iş.

  17. 6-16 Her abone için yineleyin.

Bir yayın oluşturursanız ve el ile anlık görüntüler için her bir bölüm oluşturmak için

  1. Bir örneğini kullanması MergePublication bir birleştirme yayın tanımlamak için sınıf'ı tıklatın. Daha fazla bilgi için bkz: Nasıl Yapılır: Bir yayını (RMO programlama) oluşturma.

  2. Use MergeArticle makaleleri yayın belirt eklemek üzere özellik FilterClause() parametreli süzgeci'ni tanımlar ve herhangi bir en az bir makale özelliği MergeJoinFilter nesneleri makaleleri arasında birleştirmek süzgeçleri tanımlayın. Daha fazla bilgi için bkz: Nasıl Yapılır: Bir makale (RMO programlama) tanımlayın..

  3. Rapor anlık görüntü görüntü görüntüsünü ilk oluşturur.Daha fazla bilgi için bkz: Nasıl Yapılır: Başlangıç anlık görüntüsü (RMO programlama) oluşturma.

  4. örnek SnapshotGenerationAgent sınıf ve küme aşağıdaki özellikler gereklidir:

    • Publisher() -Yayımcı adı

    • PublisherDatabase() -yayın veritabanının adı

    • Publication() -yayın adı

    • Distributor() -dağıtımcı adı

    • PublisherSecurityMode() -değeri Integrated() değeri ya da Windows ile tümleşik kimlik doğrulaması için kullanılır Standard() SQL Server kimlik doğrulaması kullanmak için .

    • DistributorSecurityMode() -değeri Integrated() değeri ya da Windows ile tümleşik kimlik doğrulaması için kullanılır Standard() SQL Server kimlik doğrulaması kullanmak için .

  5. Bir değeri küme Merge() için ReplicationType().

  6. küme biri veya daha fazla bölümleme parametreleri tanımlamak için aşağıdaki özellik:

  7. Call GenerateSnapshot() yöntem.

  8. 4-7 Arasındaki adımları her abone için yineleyin.

Example

Bu örnek, aboneleri için istenen anlık görüntü görüntü görüntü oluşturma sağlayan bir birleştirme yayın oluşturur.

Bu örnek, parametreli satır filtreleriyle abone bölümü ve süzülmüş anlık görüntü görüntü görüntüsünü birleştirme yayın için el ile oluşturur.

Bu örnek, el ile bir abone bir mektup birleştirme için süzülmüş veri anlık görüntüsünü oluşturmak için anlık görüntü Aracısı başlatır yayın ile satır süzgeçleri parametreli.