Aracılığıyla paylaş


Nasıl yapılır: Bir yayını (çoğaltma Transact-SQL programlama) oluştur

Yayınlar, programlı olarak çoğaltma depolanmış yordamları kullanarak oluşturulabilir.Kullanılan saklı yordamlar oluşturulan yayın türüne bağlıdır.

Güvenlik notuGüvenlik Notu

Mümkünse Windows Kimlik Doğrulaması kullanın. 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.

Bir anlık görüntü veya işlem yayın oluşturmak için

  1. yayın veritabanı üzerinde Yayımcı tarafında yürütmek sp_replicationdboption (Transact-sql) kullanarak anlık görüntü veya geçerli veritabanı yayın etkinleştirmek içinişlem çoğaltma.

  2. Bir işlem yayın için Günlük Okuyucu Aracısı iş için var olup olmadığını belirlemek yayın veritabanı.(Bu adımı anlık görüntü yayınlar için gerekli değildir.)

    • Günlük Okuyucu Aracısı iş yayın veritabanı için varsa, 3 numaralı adıma 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ı oluşturmak iş.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.3. Adıma atlayın.

  3. Yayımcı tarafında yürütmek sp_addpublication (Transact-sql).Yayını adını belirtin @ yayınve @ repl_freq parametresi değerini belirtin snapshot anlık görüntü yayını veya değeri için continuous için işlemsel bir yayını.Herhangi bir yayın seçenekleri belirtin.Bu yayın tanımlar.

    Not

    Yayın adları şu karakterleri içeremez:

    % * [ ] | : " ?\ / < >

  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.

    Güvenlik notuGüvenlik Notu

    Yayımcı ile yapılandırırken bir uzak Dağıtımcı, sağlanan da dahil olmak üzere tüm parametreler için değerler job_login ve job_password, için dağıtıcı düz metin olarak gönderilirBu saklı yordam yürütmeden önce Yayımcı ve kendi uzak dağıtımcı arasında bağlantı şifrelemek.Daha fazla bilgi için bkz: SQL Server bağlantıları şifreleme.

  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. Bunun için ilk anlık görüntüsü oluşturmak için Anlık Görüntü Aracısı işi başlatmak yayın.Daha fazla bilgi için bkz: Nasıl yapılır: Başlangıç anlık görüntüsü (çoğaltma Transact-SQL programlama) oluştur.

Bir birleştirme yayın oluşturmak için

  1. Yayımcı tarafında yürütmek sp_replicationdboption (Transact-sql) birleştirme kullanarak geçerli veritabanı yayın etkinleştirmek için çoğaltma.

  2. yayın veritabanı üzerinde Yayımcı tarafında yürütmek sp_addmergepublication (Transact-sql).Yayın için bir ad belirtin @ yayın ve diğer yayın seçenekleri.Bu yayın tanımlar.

    Not

    Yayın adları şu karakterleri içeremez:

    % * [ ] | : " ?\ / < >

  3. Yayımcı tarafında yürütmek sp_addpublication_snapshot (Transact-sql).Belirtmek için adım 2'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.

    Güvenlik notuGüvenlik Notu

    Yayımcı ile yapılandırırken bir uzak Dağıtımcı, sağlanan da dahil olmak üzere tüm parametreler için değerler job_login ve job_password, için dağıtıcı düz metin olarak gönderilirBu saklı yordam yürütmeden önce Yayımcı ve kendi uzak dağıtımcı arasında bağlantı şifrelemek.Daha fazla bilgi için bkz: SQL Server bağlantıları şifreleme.

  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. Bunun için ilk anlık görüntüsü oluşturmak için Anlık Görüntü Aracısı işi başlatmak yayın.Daha fazla bilgi için bkz: Nasıl yapılır: Başlangıç anlık görüntüsü (çoğaltma Transact-SQL programlama) oluştur.

Örnek

Bu örnek, bir işlem oluşturur yayın.Komut dosyası değişkenleri için Anlık Görüntü Aracısı ve Günlük Okuyucu Aracısı işleri oluşturmak için gerekli olan Windows kimlik bilgileri bilgilerini iletmek için kullanılır.

-- 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".

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2008R2'; 
SET @publication = N'AdvWorksProductTran'; 
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login); 
-- This should be passed at runtime.
SET @password = $(Password); 

-- Enable transactional or snapshot 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 new transactional publication with the required properties. 
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_push = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true';

-- 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

Bu örnek, birleştirme yayın oluşturur.Komut dosyası değişkenleri oluşturmak için gereken Windows kimlik bilgileri bilgilerini iletmek için kullanılan iş Anlık Görüntü Aracısı için.

-- To avoid storing the login and password in the script file, the value 
-- is passed into SQLCMD as a scripting variable. 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 merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks2008R2'; 
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @login = $(Login);
SET @password = $(Password);

-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption 
  @dbname=@publicationDB, 
  @optname=N'merge publish',
  @value = N'true' 

-- Create a new merge publication, explicitly setting the defaults. 
USE [AdventureWorks2008R2]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks2008R2.',
  @publication_compatibility_level  = N'90RTM';

-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot 
  @publication = @publication, 
  @job_login = @login, 
  @job_password = @password;
GO