Aracılığıyla paylaş


Nasıl yapılır: İşlem yayınına (çoğaltma Transact-SQL programlama) güncelleştirilebilir bir abonelik oluştur

Not

Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.

İşlem çoğaltma geri hemen veya kuyruğa alınmış güncelleştirme abonelikleri kullanarak yayımcıya Abone tarafında yapılan değişiklikleri etkinleştirir.Çoğaltma depolanmış yordamları kullanarak programsal yoldan bir güncelleştirme abonelik oluşturabilirsiniz.

Hemen bir güncelleştirme istek temelli abonelik oluşturmak için

  1. Yayımcı tarafında yayın yürüterek hemen güncelleştirme abonelikleri desteklediğini doğrulayın sp_helppublication.

  2. Yayımcı tarafında yayın yürüterek çekme abonelikleri desteklediğini doğrulayın sp_helppublication.

    • Varsa değeri allow_pull sonuç küme olan 1, yayın çekme abonelikleri destekler.

    • Değeri allow_pull olan 0, yürütmek sp_changepublication, belirten allow_pull için @ özellik ve true için @ değeri.

  3. Abone tarafında yürütmek sp_addpullsubscription.Belirtmek @ publisher ve @ yayın, ve aşağıdaki değerleri için @ update_mode:

    • synctran - enables the subscription for immediate updating.

    • Yük devretme -abonelik için güncelleştirme yerine çalışma seçeneği olarak kuyruğa alınmış ile anında güncelleme sağlar.

      Not

      Yük devretme yayın kuyruğa alınmış güncelleştirme abonelikleri için etkin olmasını gerektiriyor.

  4. Abone tarafında yürütmek sp_addpullsubscription_agent.Aşağıdakileri belirtin:

    • The @publisher, @publisher_db, and @publication parameters.

    • The Microsoft Windows credentials under which the Distribution Agent at the Subscriber runs for @job_login and @job_password.

      Not

      Windows tümleşik kimlik bilgileri doğrulaması kullanılarak yapılan bağlantılar, belirtilen Windows kimlik bilgileri bilgilerini kullanarak her zaman yapılan @ job_login ve @ job_password.Dağıtım Aracısı her zaman yerel bağlantı abone için tümleşik Windows kimlik doğrulaması kullanarak yapar.Varsayılan olarak, Windows tümleşik kimlik doğrulaması kullanarak dağıtıcı Aracısı bağlanır.

    • (Optional) A value of 0 for @distributor_security_mode and the Microsoft SQL Server login information for @distributor_login and @distributor_password, if you need to use SQL Server Authentication when connecting to the Distributor.

    • Bu abonelik için Dağıtım Aracısı iş için bir zamanlama.Daha fazla bilgi için bkz: Nasıl yapılır: Eşitleme çizelgelerini (çoğaltma Transact-SQL programlama) belirtin.

  5. Üzerinde abone adresindeki abonelik veritabanı, execute sp_link_publication.Belirtmek @ publisher, @ yayın, adını yayın veritabanı için @ publisher_db, ve aşağıdaki değerleri için @ security_mode:

    • 0 -Use SQL Server kimlik doğrulaması yaparken güncelleştirmeleri Yayımcı.Bu seçenek, geçerli bir oturum açma için yayımcı adresindeki belirtmenizi gerektirir @ login ve @ parola.

    • 1 -Abone yayımcı için bağlanırken değişiklik kullanıcının güvenlik bağlamında kullanın.Bkz: sp_link_publication bu güvenlik modu için ilgili sınırlamalar.

    • 2 -Kullanılarak oluşturulan bir varolan, kullanıcı tanımlı bağlantılı sunucu oturumu kullanır sp_addlinkedserver.

  6. Yayımcı tarafında yürütmek sp_addsubscription belirten @ yayın, @ abone, @ destination_db, değeri çekme için @ subscription_typeve aynı değeri için adım 3'de belirtilen @ update_mode.

    Bu istek temelli abonelik sırasında yayımcı kaydeder.

Anında güncelleme oluşturmak içingönderme temelli abonelik

  1. Yayımcı tarafında yayın yürüterek hemen güncelleştirme abonelikleri desteklediğini doğrulayın sp_helppublication.

  2. Yayımcı tarafında yayın yürüterek gönderme abonelikleri desteklediğini doğrulayın sp_helppublication.

    • Varsa değeri allow_push sonuç küme olan 1, yayın gönderme abonelikleri destekler.

    • Değeri allow_push olan 0, yürütmek sp_changepublication, belirten allow_push için @ özellik ve true için @ değeri.

  3. Yayımcı tarafında yürütmek sp_addsubscription.Belirtmek @ yayın, @ abone, @ destination_db, ve aşağıdaki değerleri için @ update_mode:

    • synctran - enables support for immediate updating.

    • Yük devretme -hemen yerine çalışma seçeneği olarak kuyruğa alınmış güncelleştirme ile güncelleştirmek için destek sağlar.

      Not

      Yük devretme yayın kuyruğa alınmış güncelleştirme abonelikleri için etkin olmasını gerektiriyor.

  4. Yayımcı tarafında yürütmek sp_addpushsubscription_agent.Aşağıdaki parametreleri belirtme:

    • @ Abone, @ subscriber_db, ve @ yayın.

    • At dağıtımcı Dağıtım Aracısı çalıştığı için Windows kimlik bilgileri bilgilerini @ job_login ve @ job_password.

      Not

      Windows tümleşik kimlik bilgileri doğrulaması kullanılarak yapılan bağlantılar, belirtilen Windows kimlik bilgileri bilgilerini kullanarak her zaman yapılan @ job_login ve @ job_password.Dağıtım Aracısı her zaman yerel bağlantı Dağıtımcı olarak Windows tümleşik kimlik doğrulaması kullanarak yapar.Varsayılan olarak, Windows tümleşik kimlik doğrulaması kullanarak abone Aracısı bağlanacak.

    • (İsteğe bağlı) Değeri, 0 için subscriber_security_mode @ ve SQL Server için oturum açma bilgilerini @ subscriber_login ve @ subscriber_password, kullanmanız gerekirse, SQL Server bağlanırken kimlik doğrulamasını abone.

    • Bu abonelik için Dağıtım Aracısı iş için bir zamanlama.Daha fazla bilgi için bkz: Nasıl yapılır: Eşitleme çizelgelerini (çoğaltma Transact-SQL programlama) belirtin.

  5. Üzerinde abone adresindeki abonelik veritabanı, execute sp_link_publication.Belirtmek @ publisher, @ yayın, adını yayın veritabanı için @ publisher_db, ve aşağıdaki değerleri için @ security_mode:

    • 0 -Use SQL Server kimlik doğrulaması yaparken güncelleştirmeleri Yayımcı.Bu seçenek, geçerli bir oturum açma için yayımcı adresindeki belirtmenizi gerektirir @ login ve @ parola.

    • 1 -Abone yayımcı için bağlanırken değişiklik kullanıcının güvenlik bağlamında kullanın.Bkz: sp_link_publication bu güvenlik modu için ilgili sınırlamalar.

    • 2 -Kullanılarak oluşturulan bir varolan, kullanıcı tanımlı bağlantılı sunucu oturumu kullanır sp_addlinkedserver.

Kuyruğa alınmış güncelleştirme istek temelli abonelik oluşturmak için

  1. Yayımcı tarafında yayın yürüterek kuyruğa alınmış güncelleştirme abonelikleri desteklediğini doğrulayın sp_helppublication.

  2. Yayımcı tarafında yayın yürüterek çekme abonelikleri desteklediğini doğrulayın sp_helppublication.

    • Varsa değeri allow_pull sonuç küme olan 1, yayın çekme abonelikleri destekler.

    • Değeri allow_pull olan 0, yürütmek sp_changepublication, belirten allow_pull için @ özellik ve true için @ değeri.

  3. Abone tarafında yürütmek sp_addpullsubscription.Belirtmek @ publisher ve @ yayın, ve aşağıdaki değerleri için @ update_mode:

    • TRAN sıraya -sağlar abonelik güncelleştirme sıraya için.

    • Yük devretme sıraya -hemen yerine çalışma seçeneği olarak güncelleme ile birlikte sıraya için destek sağlar.

      Not

      Yük devretme sıraya yayın hemen güncelleştirme abonelikleri için etkin olmasını gerektiriyor.Anında güncelleme devri için kullanmanız gereken sp_link_publication altında abone adresindeki değişiklikler yinelenir için yayımcı kimlik bilgileri tanımlamak için.

  4. Abone tarafında yürütmek sp_addpullsubscription_agent.Aşağıdaki parametreleri belirtme:

    • @ publisher, @ publisher_db, ve @ yayın.

    • Abone adresindeki dağıtım aracı çalıştığı için Windows kimlik bilgileri bilgilerini @ job_login ve @ job_password.

      Not

      Windows tümleşik kimlik bilgileri doğrulaması kullanılarak yapılan bağlantılar, belirtilen Windows kimlik bilgileri bilgilerini kullanarak her zaman yapılan @ job_login ve @ job_password.Dağıtım Aracısı her zaman yerel bağlantı abone için tümleşik Windows kimlik doğrulaması kullanarak yapar.Varsayılan olarak, Windows tümleşik kimlik doğrulaması kullanarak dağıtıcı Aracısı bağlanır.

    • (İsteğe bağlı) Değeri, 0 için @ distributor_security_mode ve SQL Server için oturum açma bilgilerini @ distributor_login ve **distributor_password @**kullanmanız gerekirse, SQL Server bağlanırken kimlik doğrulamasını dağıtıcı.

    • Bu abonelik için Dağıtım Aracısı iş için bir zamanlama.Daha fazla bilgi için bkz: Nasıl yapılır: Eşitleme çizelgelerini (çoğaltma Transact-SQL programlama) belirtin.

  5. Yayımcı tarafında yürütmek sp_addsubscriber (Transact-sql) kaydettirmek abone adresindeki yayımcı.

    Yayımcı tarafında yürütmek sp_addsubscription belirten @ yayın, @ abone, @ destination_db, değeri çekme için @ subscription_typeve aynı değeri için adım 3'de belirtilen @ update_mode.

    Bu istek temelli abonelik sırasında yayımcı kaydeder.

Kuyruklanmış güncelleme oluşturmak içingönderme temelli abonelik

  1. Yayımcı tarafında yayın yürüterek kuyruğa alınmış güncelleştirme abonelikleri desteklediğini doğrulayın sp_helppublication.

  2. Yayımcı tarafında yayın yürüterek gönderme abonelikleri desteklediğini doğrulayın sp_helppublication.

    • Varsa değeri allow_push sonuç küme olan 1, yayın gönderme abonelikleri destekler.

    • Değeri allow_push olan 0, yürütmek sp_changepublication, belirten allow_push için @ özellik ve true için @ değeri.

  3. Yayımcı tarafında yürütmek sp_addsubscription.Belirtmek @ yayın, @ abone, @ destination_db, ve aşağıdaki değerleri için @ update_mode:

    • TRAN sıraya -sağlar abonelik güncelleştirme sıraya için.

    • Yük devretme sıraya -hemen yerine çalışma seçeneği olarak güncelleme ile birlikte sıraya için destek sağlar.

      Not

      The queued failover option requires that the publication also be enabled for immediate updating subscriptions.Anında güncelleme devri için kullanmanız gereken sp_link_publication altında abone adresindeki değişiklikler yinelenir için yayımcı kimlik bilgileri tanımlamak için.

  4. Yayımcı tarafında yürütmek sp_addpushsubscription_agent.Aşağıdaki parametreleri belirtme:

    • @ Abone, @ subscriber_db, ve @ yayın.

    • At dağıtımcı Dağıtım Aracısı çalıştığı için Windows kimlik bilgileri bilgilerini @ job_login ve @ job_password.

      Not

      Windows tümleşik kimlik bilgileri doğrulaması kullanılarak yapılan bağlantılar, belirtilen Windows kimlik bilgileri bilgilerini kullanarak her zaman yapılan @ job_login ve @ job_password.Dağıtım Aracısı her zaman yerel bağlantı Dağıtımcı olarak Windows tümleşik kimlik doğrulaması kullanarak yapar.Varsayılan olarak, Windows tümleşik kimlik doğrulaması kullanarak abone Aracısı bağlanır.

    • (İsteğe bağlı) Değeri, 0 için subscriber_security_mode @ ve SQL Server için oturum açma bilgilerini @ subscriber_login ve @ subscriber_password, kullanmanız gerekirse, SQL Server bağlanırken kimlik doğrulamasını abone.

    • Bu abonelik için Dağıtım Aracısı iş için bir zamanlama.Daha fazla bilgi için bkz: Nasıl yapılır: Eşitleme çizelgelerini (çoğaltma Transact-SQL programlama) belirtin.

Örnek

Bu örnek, hemen güncelleştirme abonelikleri destekleyen bir yayın için anlık güncelleştirme istek temelli abonelik oluşturur.Oturum açma ve parola değerleri sqlcmd komut dosyası kullanan kullanan kullanan dosyası değişkenleri kullanarak çalışma zamanında sağlanır.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS nvarchar(512);
SET @publication = N'AdvWorksProductTran';
SET @publicationDB = N'AdventureWorks2008R2';
SET @publisher = $(PubServer);
SET @login = $(Login);
SET @password = $(Password);

-- At the subscription database, create a pull subscription to a transactional 
-- publication using immediate updating with queued updating as a failover.
EXEC sp_addpullsubscription 
    @publisher = @publisher, 
    @publication = @publication, 
    @publisher_db = @publicationDB, 
    @update_mode = N'failover', 
    @subscription_type = N'pull';

-- Add an agent job to synchronize the pull subscription, 
-- which uses Windows Authentication when connecting to the Distributor.
EXEC sp_addpullsubscription_agent 
    @publisher = @publisher, 
    @publisher_db = @publicationDB, 
    @publication = @publication,
    @job_login = @login,
    @job_password = @password; 

-- Add a Windows Authentication-based linked server that enables the 
-- Subscriber-side triggers to make updates at the Publisher. 
EXEC sp_link_publication 
    @publisher = @publisher, 
    @publication = @publication,
    @publisher_db = @publicationDB, 
    @security_mode = 0,
    @login = @login,
    @password = @password;
GO

USE AdventureWorks2008R2;
GO

-- Execute this batch at the Publisher.
DECLARE @publication AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @subscriber AS sysname;
SET @publication = N'AdvWorksProductTran'; 
SET @subscriptionDB = N'AdventureWorks2008R2Replica'; 
SET @subscriber = $(SubServer);

-- At the Publisher, register the subscription, using the defaults.
USE [AdventureWorks2008R2]
EXEC sp_addsubscription 
    @publication = @publication, 
    @subscriber = @subscriber, 
    @destination_db = @subscriptionDB, 
    @subscription_type = N'pull', 
    @update_mode = N'failover';
GO