Aracılığıyla paylaş


Nasıl yapılır: Güncelleştirme işlemsel yayınlar (çoğaltma Transact-SQL programlama) için bir abonelik etkinleştir

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.

Saklı yordamları kullanarak programsal çoğaltma işlem bir yayın oluşturma zaman hemen veya kuyruğa alınmış güncelleştirme abonelikleri etkinleştirebilirsiniz.

Güvenlik notuGüvenlik Notu

Mümkün olduğunda, zamanında güvenlik kimlik bilgileri bilgilerini girmesini ister.Bir komut dosyasında kimlik bilgileri bilgilerini depolamak, yetkisiz erişimi önlemek için dosyayı güvenli gerekir.

Hemen güncelleştirme abonelikleri destekleyen bir yayın oluşturmak için

  1. Gerekirse, bir Günlük Okuyucu Aracısı iş yayın veritabanı için oluşturun.

    • Günlük Okuyucu Aracısı iş yayın veritabanı için zaten varsa, adım 2'ye geçin.

    • Yürütmek için yayımlanmış bir veritabanı Günlük Okuyucu Aracısı iş var olup olmadığından emin değilseniz sp_helplogreader_agent (Transact-sql) adresindeki Yayımcı yayın veritabanı.Sonuç küme boş ise, bir Günlük Okuyucu Aracısı iş oluşturulması gerekir.

    • Yayımcı tarafında yürütmek sp_addlogreader_agent (Transact-sql).Belirtmek Microsoft Aracısı çalıştığı için Windows kimlik bilgileri @ job_name ve @ parola.If the agent will use SQL Server Authentication when connecting to the Publisher, you must also specify a value of 0 for @publisher_security_mode and the Microsoft SQL Server login information for @publisher_login and @publisher_password.

  2. Yürütme sp_addpublication (Transact-sql), değeri belirtme doğru parametresi için @ allow_sync_tran.

  3. Yayımcı tarafında yürütmek sp_addpublication_snapshot (Transact-sql).Adım 2 için kullanılan yayın adı belirtmek @ yayın ve anlık görüntü Aracısı çalıştığı için Windows kimlik bilgileri bilgilerini @ job_name ve @ parola.Aracısı sql Server kimlik doğrulaması için yayımcı bağlanırken kullanırsanız, değer olarak da belirtmeniz gerekir 0 için @ publisher_security_mode ve SQL Server için oturum açma bilgilerini @ publisher_login ve publisher_password @.Bu bir anlık görüntü Aracısı iş yayın için oluşturur.

  4. Makale ekleme yayın.Daha fazla bilgi için bkz: Nasıl yapılır: Bir makalesi (çoğaltma Transact-SQL programlama) tanımla.

  5. Bu bir güncelleştirme abonelik abone oluşturmak yayın.Daha fazla bilgi için bkz: Nasıl yapılır: İşlem yayınına (çoğaltma Transact-SQL programlama) güncelleştirilebilir bir abonelik oluştur.

Destekleyen bir yayın oluşturmak için abonelikleri güncelleştirme sıraya alındı

  1. Gerekirse, bir Günlük Okuyucu Aracısı iş yayın veritabanı için oluşturun.

    • Günlük Okuyucu Aracısı iş yayın veritabanı için zaten varsa, adım 2'ye geçin.

    • Yürütmek için yayımlanmış bir veritabanı Günlük Okuyucu Aracısı iş var olup olmadığından emin değilseniz sp_helplogreader_agent (Transact-sql) adresindeki Yayımcı yayın veritabanı.Sonuç küme boş ise, bir Günlük Okuyucu Aracısı iş oluşturulmalıdır.

    • Yayımcı tarafında yürütmek sp_addlogreader_agent (Transact-sql).Aracı çalıştığı için Windows kimlik bilgileri belirtmek @ job_name ve @ parola.Aracısı sql Server kimlik doğrulaması için yayımcı bağlanırken kullanırsanız, değer olarak da belirtmeniz gerekir 0 için @ publisher_security_mode ve SQL Server için oturum açma bilgilerini @ publisher_login ve publisher_password @.

  2. Gerekirse, dağıtıcı için bir sıra okuma Aracısı iş oluşturun.

    • Queue Reader Agent, iş zaten dağıtım veritabanı için 3. adıma atlayın.

    • Queue Reader Agent olup olmadığını değilseniz iş mevcut dağıtım veritabanı için execute sp_helpqreader_agent (Transact-sql) at dağıtımcı dağıtım veritabanı.Sonuç küme boş, Queue Reader Agent ise, iş oluşturulması gerekir.

    • Dağıtıcıda yürütmek sp_addqreader_agent (Transact-sql).Aracı çalıştığı için Windows kimlik bilgileri belirtmek @ job_name ve @ parola.Queue Reader Agent Yayımcı ve abone bağlandığında, bu kimlik bilgileri kullanılır.Daha fazla bilgi için bkz: Çoğaltma aracısı güvenlik modeli.

  3. Yürütme sp_addpublication (Transact-sql), değeri belirtme doğru parametresi için @ allow_queued_tran değeri pub WINS, sub yeniden başlatmayı, veya sub WINS için @ conflict_policy.

  4. Yayımcı tarafında yürütmek sp_addpublication_snapshot (Transact-sql).Belirtmek için adım 3'te kullanılan yayın adı @ yayın ve anlık görüntü Aracısı çalıştığı için Windows kimlik bilgileri bilgilerini @ snapshot_job_name ve @ parola.Aracısı sql Server kimlik doğrulaması için yayımcı bağlanırken kullanırsanız, değer olarak da belirtmeniz gerekir 0 için @ publisher_security_mode ve SQL Server için oturum açma bilgilerini @ publisher_login ve publisher_password @.Bu bir anlık görüntü Aracısı iş yayın için oluşturur.

  5. Makale ekleme yayın.Daha fazla bilgi için bkz: Nasıl yapılır: Bir makalesi (çoğaltma Transact-SQL programlama) tanımla.

  6. Bu bir güncelleştirme abonelik abone oluşturmak yayın.Daha fazla bilgi için bkz: Nasıl yapılır: İşlem yayınına (çoğaltma Transact-SQL programlama) güncelleştirilebilir bir abonelik oluştur.

Çakışmasını değiştirmek için izin veren bir yayın İlkesi Güncelleştirme abonelikleri sıraya

  • yayın veritabanı üzerinde Yayımcı tarafında yürütmek sp_changepublication (Transact-sql).Değerini belirtin conflict_policy için @ özellik ve istenen çakışma İlkesi modunu pub WINS, sub yeniden başlatmayı, veya sub WINS için @ değeri.

Örnek

Bu örnek anlık ve kuyruğa alınmış güncelleştirme çekme abonelikleri desteklenen bir yayın oluşturur.

-- To avoid storing the login and password in the script file, the values 
-- are passed into SQLCMD as scripting variables. 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".

--Declarations for adding a transactional publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2008R2'; 
SET @publication = N'AdvWorksProductTran'; 
SET @login = $(Login); 
SET @password = $(Password); 

USE [AdventureWorks2008R2]
-- Enable transactional replication on the publication database.
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- Execute sp_addlogreader_agent to create the agent job. 
EXEC sp_addlogreader_agent 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;

-- Create a transactional publication that supports immediate updating, 
-- queued updating, and pull subscriptions. 
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_sync_tran = N'true', 
    @allow_queued_tran = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true',
  -- Explicitly declare the related default properties 
    @conflict_policy = N'pub wins';

-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;
GO

--Declarations for adding an article.
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @owner AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product'; 
SET @owner = N'Production'; 

-- Add a horizontally and vertically filtered article for the Product table.
USE [AdventureWorks2008R2]
EXEC sp_addarticle 
    @publication = @publication, 
    @article = @article, 
    @source_table = @article, 
    @vertical_partition = N'false', 
    @type = N'logbased',
    @source_owner = @owner, 
    @destination_owner = @owner;
GO