Aracılığıyla paylaş


Yayın oluşturma

Bu konuda bir yayın oluşturmak açıklar SQL Server 2012kullanarak SQL Server Management Studio, Transact-SQL, ya da Çoğaltma Yönetimi Nesneleri'ni (rmo).

Bu Konuda

  • Başlamadan Önce

    Sınırlamalar ve Kısıtlamalar

    Güvenlik

  • Bir yayın oluşturun ve makaleleri kullanarak tanımlamak için:

    SQL Server Management Studio

    Transact-SQL

    Çoğaltma Yönetimi Nesneleri'ni (rmo)

Başlamadan Önce

Sınırlamalar ve Kısıtlamalar

  • Yayın ve madde adları aşağıdaki karakterleri dahil olamaz: % *, [,], | :, " , ? , ' , \ , / , < , >. Veritabanındaki nesneleri şu karakterlerden herhangi birini içeren ve bunları çoğaltmak istediğiniz nesne adı farklı bir makale adı belirtmeniz gerekir Makalesi özellikleri - <yazı > kullanılabilir iletişim kutusu Makaleler Sayfa Sihirbazı'nda.

Güvenlik

Mümkün olduğunda, zamanında güvenlik kimlik bilgilerini girmesini ister. Kimlik bilgileri saklamanız gerekir kullanın Şifreleme Hizmetleri tarafından sağlanan MicrosoftWindows.net Framework.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

SQL Server Management Studio Kullanarak

Yayınları oluşturma ve yeni yayın sihirbazını makaleleri tanımlayın. Bir yayın oluşturduktan sonra görüntülemek ve yayını özellikleri değiştirmek Yayını özellikleri - <yayın > iletişim kutusu. Oracle veritabanından bir yayın oluşturma hakkında daha fazla bilgi için bkz: Oracle veritabanından bir yayın oluşturma.

Bir yayın oluşturun ve makaleleri tanımlamak için

  1. Yayımcı bağlanmak Microsoft   SQL Server Management Studiove sonra sunucu düğümünü genişletin.

  2. Genişletme çoğaltma klasörünü ve sonra sağ Yerel yayınları klasörü.

  3. Tıklayın Yeni yayın.

  4. Yeni Yayın Sihirbazı sayfalarında izleyin:

    • Dağıtım sunucusu üzerinde yapılandırılmamış bir dağıtımcı belirtin. Dağıtım yapılandırma hakkında daha fazla bilgi için bkz: Yayımlama ve dağıtım yapılandırma.

      Tarih belirtirseniz, Dağıtıcı sayfasını Publisher sunucunun kendi dağıtımcı (yerel bir dağıtımcı) hareket edecek ve distribütör, Yeni Yayın Sihirbazı sunucu yapılandırmak gibi sunucu yapılandırılmadı. Üzerinde dağıtımcı varsayılan anlık görüntü klasörünü belirleyeceksiniz Anlık görüntü klasörü sayfa. Anlık görüntü klasörü sadece bir paylaşım belirlediğiniz bir dizin olduğunu; okuma ve yazma için bu klasörün aracıları erişmek için yeterli izinleriniz olmalıdır. Uygun klasörü güvenli hale getirme hakkında daha fazla bilgi için bkz: Anlık görüntü klasörü güvenli.

      Başka bir sunucu dağıtımcı çalışmak belirtirseniz, size bir şifre girmeniz gerekir Yönetici parolasını yayımcı dağıtımcı olarak yapılan bağlantılar için sayfa. Bu parola, uzak Dağıtıcı yayımcı etkinleştirildiğinde belirtilen parolayla eşleşmesi gerekir.

      Daha fazla bilgi için, bkz. Dağıtım yapılandırma.

    • Bir yayını veritabanı seçin.

    • Bir yayın türü seçin. Daha fazla bilgi için, bkz. Çoğaltma türleri.

    • Yayımlama veri ve veritabanı nesnelerini belirler; İsteğe bağlı olarak tablo makaleleri sütunlarından filtre ve makale özelliklerini ayarlayın.

    • İsteğe bağlı olarak tablo makaleleri satırları süzme. Daha fazla bilgi için, bkz. Yayımlanmış veri süzme.

    • Anlık görüntü Aracısı zamanlama ayarlayın.

    • Hangi aşağıdaki çoğaltma aracıları çalıştırmak ve bağlantı kimlik bilgilerini belirtin.

      -Anlık görüntü Aracısı tüm yayınlar.

      -Günlük Okuma Aracısı tüm işlem yayınlar için.

      -Sıra Okuyucu Aracısı Abonelikleri güncelleştirmek izin işlem yayınlar için.

      Daha fazla bilgi için Çoğaltma aracısı güvenlik modelive ModeliveÇoğaltma güvenlik en iyi uygulamalar.

    • İsteğe bağlı olarak komut yayını. Daha fazla bilgi için, bkz. Komut dosyası çoğaltma.

    • Yayın için bir ad belirtin.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

Transact-SQL'i Kullanma

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.

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

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

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

    • Günlük Okuma Aracısı iş yayını veritabanı için varsa, adım 3'e gidin.

    • Yayımlanmış bir veritabanı günlük Okuma Aracısı iş var olup olmadığından emin değilseniz idam sp_helplogreader_agent (Transact-sql)Yayını veritabanı üzerinde yayımcı adresindeki.

    • Sonuç kümesi boş ise, bir günlük Okuma Aracısı işi oluşturmak. Yayımcı tarafında idam sp_addlogreader_agent (Transact-sql). Belirtmek Microsoftaracı için çalıştığı Windows kimlik bilgileri @ job_name ve @ parola. Aracısı SQL Server kimlik doğrulaması için yayımcı bağlanırken kullanacağı, değeri belirtmeniz gerekir 0 için @ publisher_security_mode ve Microsoft  SQL Servergiriş bilgilerini @ publisher_login ve publisher_password @. 3. Adıma geçin.

  3. Yayımcı tarafında idam için yürütme eşdeğerdirsp_addpublication (Transact-sql). Yayını adını belirtin @ yayınve @ repl_freq parametresi değeri belirtmeniz snapshotanlık görüntü yayını veya değeri continuousişlem yayın. Diğer yayın seçeneklerini belirtin. Bu yayını tanımlar.

    [!NOT]

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

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

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

    Güvenlik notuGüvenlik Notu

    Bir Publisher ile sağlanan tüm parametreler için değerler uzak bir dağıtımcı yapılandırma dahil job_loginve job_password, dağıtımcı düz metin olarak gönderilir. Bu saklı yordam yürütme önce Publisher ve kendi uzak dağıtımcı arasında bağlantı şifrelemek. Daha fazla bilgi için, bkz. Veritabanı altyapısı (SQL Server Configuration Manager) şifreli bağlantıları etkinleştir.

  5. Makaleleri yayına ekleyin. Daha fazla bilgi için, bkz. Bir makale tanımlamak.

  6. Bu yayının ilk anlık görüntüsü oluşturmak için anlık görüntü Aracısı işi başlatmak. Daha fazla bilgi için, bkz. Oluşturun ve başlangıç anlık görüntüsü Uygula.

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

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

  2. Yayını veritabanı üzerinde Yayımcı tarafında idam veyasp_addmergepublication (Transact-sql). Yayın için bir ad belirtmeniz @ 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 idam sp_addpublication_snapshot (Transact-sql). Adım 2 kullanılan yayın adı belirtmek @ yayın ve anlık görüntü Aracısı çalıştığı için Windows kimlik bilgileri @ snapshot_job_name ve @ parola. Aracısı SQL Server kimlik doğrulaması için yayımcı bağlanırken kullanacağı, değeri belirtmeniz gerekir 0 için @ publisher_security_mode ve SQL Serveriçin oturum açma bilgilerini @ publisher_login ve publisher_password @. Bu bir anlık görüntü Aracısı iş yayını oluşturur.

    Güvenlik notuGüvenlik Notu

    Bir Publisher ile sağlanan tüm parametreler için değerler uzak bir dağıtımcı yapılandırma dahil job_loginve job_password, dağıtımcı düz metin olarak gönderilir. Bu saklı yordam yürütme önce Publisher ve kendi uzak dağıtımcı arasında bağlantı şifrelemek. Daha fazla bilgi için, bkz. Veritabanı altyapısı (SQL Server Configuration Manager) şifreli bağlantıları etkinleştir.

  4. Makaleleri yayına ekleyin. Daha fazla bilgi için, bkz. Bir makale tanımlamak.

  5. Bu yayının ilk anlık görüntüsü oluşturmak için anlık görüntü Aracısı işi başlatmak. Daha fazla bilgi için, bkz. Oluşturun ve başlangıç anlık görüntüsü Uygula.

Örnek (Transact-sql)

Bu örnek işlem yayınına oluşturur. Komut dosyası değişkenleri, anlık görüntü Aracısı ve günlük Okuma Aracısı işleri oluşturmak için gerekli olan Windows kimlik bilgileri 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'AdventureWorks'; 
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, anlık görüntü Aracısı işi oluşturmak için gerekli olan Windows kimlik bilgileri iletmek için kullanılır.

-- 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'AdventureWorks2012'; 
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 [AdventureWorks2012]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks2012.',
  @publication_compatibility_level  = N'110RTM';

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

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

Çoğaltma Yönetimi Nesneleri'ni (rmo) kullanarak

Çoğaltma Yönetimi Nesneleri'ni (rmo) kullanarak programlı olarak yayınlar oluşturabilirsiniz. Bir yayın oluşturmak için kullandığınız rmo sınıflar oluşturduğunuz yayın türüne bağlıdır.

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

  1. Kullanarak bir yayımcının bağlantısı oluşturmak ServerConnectionsınıf

  2. Örneğini ReplicationDatabasesınıfı için yayın veritabanı, set ConnectionContextözelliği örneği ServerConnectionAdım 1 ve arama LoadPropertiesyöntemi. Eğer LoadPropertiesdöner false, veritabanı varolduğundan emin olun.

  3. Eğer EnabledTransPublishingözelliği false, ayarlamak true.

  4. Bir işlem yayın için kontrol değer-in LogReaderAgentExistsözellik. Bu özellik ise true, zaten bu veritabanı için günlük Okuma Aracısı iş. Bu özellik ise false, aşağıdakileri yapın:

  5. Örneğini TransPublicationsınıf ve bu nesne için aşağıdaki özellikleri ayarlayın:

  6. Arama Createyayın oluşturma yöntemi.

    Güvenlik notuGüvenlik Notu

    Bir Publisher ile sağlanan tüm özellikler, değerler uzak bir dağıtımcı yapılandırma dahil SnapshotGenerationAgentProcessSecurity, dağıtımcı düz metin olarak gönderilir. Yayımcı ve uzak dağıtımcı önce arama arasındaki bağlantıyı şifrelemek Createyöntemi. Daha fazla bilgi için, bkz. Veritabanı altyapısı (SQL Server Configuration Manager) şifreli bağlantıları etkinleştir.

  7. Arama CreateSnapshotAgentanlık görüntü Aracısı iş yayını oluşturma yöntemi.

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

  1. Kullanarak bir yayımcının bağlantısı oluşturmak ServerConnectionsınıf

  2. Örneğini ReplicationDatabasesınıfı için yayın veritabanı, set ConnectionContextözelliği örneği ServerConnectionAdım 1 ve arama LoadPropertiesyöntemi. Eğer LoadPropertiesdöner false, veritabanı varolduğundan emin olun.

  3. Eğer EnabledMergePublishingözelliği false, ayarlamak trueve CommitPropertyChanges.

  4. Örneğini MergePublicationsınıf ve bu nesne için aşağıdaki özellikleri ayarlayın:

  5. Arama Createyayın oluşturma yöntemi.

    Güvenlik notuGüvenlik Notu

    Bir Publisher ile sağlanan tüm özellikler, değerler uzak bir dağıtımcı yapılandırma dahil SnapshotGenerationAgentProcessSecurity, dağıtımcı düz metin olarak gönderilir. Yayımcı ve uzak dağıtımcı önce arama arasındaki bağlantıyı şifrelemek Createyöntemi. Daha fazla bilgi için, bkz. Veritabanı altyapısı (SQL Server Configuration Manager) şifreli bağlantıları etkinleştir.

  6. Arama CreateSnapshotAgentanlık görüntü Aracısı iş yayını oluşturma yöntemi.

Örnekler (rmo)

Bu örnek AdventureWorks veritabanı işlem yayın için sağlar, bir günlük Okuma Aracısı işi tanımlar ve AdvWorksProductTran yayın oluşturur. Bir makale bu yayın için tanımlanmış olması gerekir. Günlük Okuma Aracısı iş ve anlık görüntü Aracısı işi oluşturmak için gerekli olan Windows hesabı kimlik bilgileri, çalışma anında iletilir. rmo anlık görüntü ve işlemsel makaleleri tanımlamak için nasıl kullanılacağını öğrenmek için bkz: Bir makale tanımlamak.

         // Set the Publisher, publication database, and publication names.
            string publicationName = "AdvWorksProductTran";
            string publicationDbName = "AdventureWorks2012";
            string publisherName = publisherInstance;

            ReplicationDatabase publicationDb;
            TransPublication publication;

            // Create a connection to the Publisher using Windows Authentication.
            ServerConnection conn;
            conn = new ServerConnection(publisherName);


            try
            {
                // Connect to the Publisher.
                conn.Connect();

                // Enable the AdventureWorks2012 database for transactional publishing.
                publicationDb = new ReplicationDatabase(publicationDbName, conn);

                // If the database exists and is not already enabled, 
                // enable it for transactional publishing.
                if (publicationDb.LoadProperties())
                {
                    if (!publicationDb.EnabledTransPublishing)
                    {
                        publicationDb.EnabledTransPublishing = true;
                    }

                    // If the Log Reader Agent does not exist, create it.
                    if (!publicationDb.LogReaderAgentExists)
                    {
                        // Specify the Windows account under which the agent job runs.
                        // This account will be used for the local connection to the 
                        // Distributor and all agent connections that use Windows Authentication.
                        publicationDb.LogReaderAgentProcessSecurity.Login = winLogin;
                        publicationDb.LogReaderAgentProcessSecurity.Password = winPassword;

                        // Explicitly set authentication mode for the Publisher connection
                        // to the default value of Windows Authentication.
                        publicationDb.LogReaderAgentPublisherSecurity.WindowsAuthentication = true;

                        // Create the Log Reader Agent job.
                        publicationDb.CreateLogReaderAgent();
                    }
                }
                else
                {
                    throw new ApplicationException(String.Format(
                        "The {0} database does not exist at {1}.",
                        publicationDb, publisherName));
                }

                // Set the required properties for the transactional publication.
                publication = new TransPublication();
                publication.ConnectionContext = conn;
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;

                // Specify a transactional publication (the default).
                publication.Type = PublicationType.Transactional;

                // Activate the publication so that we can add subscriptions.
                publication.Status = State.Active;

                // Enable push and pull subscriptions and independent Distribition Agents.
                publication.Attributes |= PublicationAttributes.AllowPull;
                publication.Attributes |= PublicationAttributes.AllowPush;
                publication.Attributes |= PublicationAttributes.IndependentAgent;

                // Specify the Windows account under which the Snapshot Agent job runs.
                // This account will be used for the local connection to the 
                // Distributor and all agent connections that use Windows Authentication.
                publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin;
                publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword;

                // Explicitly set the security mode for the Publisher connection
                // Windows Authentication (the default).
                publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = true;

                if (!publication.IsExistingObject)
                {
                    // Create the transactional publication.
                    publication.Create();

                    // Create a Snapshot Agent job for the publication.
                    publication.CreateSnapshotAgent();
                }
                else
                {
                    throw new ApplicationException(String.Format(
                        "The {0} publication already exists.", publicationName));
                }
            }

            catch (Exception ex)
            {
                // Implement custom application error handling here.
                throw new ApplicationException(String.Format(
                    "The publication {0} could not be created.", publicationName), ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Set the Publisher, publication database, and publication names.
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"
Dim publisherName As String = publisherInstance

Dim publicationDb As ReplicationDatabase
Dim publication As TransPublication

' Create a connection to the Publisher using Windows Authentication.
Dim conn As ServerConnection
conn = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Enable the AdventureWorks2012 database for transactional publishing.
    publicationDb = New ReplicationDatabase(publicationDbName, conn)

    ' If the database exists and is not already enabled, 
    ' enable it for transactional publishing.
    If publicationDb.LoadProperties() Then
        If Not publicationDb.EnabledTransPublishing Then
            publicationDb.EnabledTransPublishing = True
        End If

        ' If the Log Reader Agent does not exist, create it.
        If Not publicationDb.LogReaderAgentExists Then
            ' Specify the Windows account under which the agent job runs.
            ' This account will be used for the local connection to the 
            ' Distributor and all agent connections that use Windows Authentication.
            publicationDb.LogReaderAgentProcessSecurity.Login = winLogin
            publicationDb.LogReaderAgentProcessSecurity.Password = winPassword

            ' Explicitly set authentication mode for the Publisher connection
            ' to the default value of Windows Authentication.
            publicationDb.LogReaderAgentPublisherSecurity.WindowsAuthentication = True

            ' Create the Log Reader Agent job.
            publicationDb.CreateLogReaderAgent()
        End If
    Else
        Throw New ApplicationException(String.Format( _
         "The {0} database does not exist at {1}.", _
         publicationDb, publisherName))
    End If

    ' Set the required properties for the transactional publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Specify a transactional publication (the default).
    publication.Type = PublicationType.Transactional

    'Enable push and pull subscriptions and independent Distribition Agents.
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.AllowPull
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.AllowPush
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.IndependentAgent

    ' Activate the publication so that we can add subscriptions.
    publication.Status = State.Active

    ' Specify the Windows account under which the Snapshot Agent job runs.
    ' This account will be used for the local connection to the 
    ' Distributor and all agent connections that use Windows Authentication.
    publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin
    publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword

    ' Explicitly set the security mode for the Publisher connection
    ' Windows Authentication (the default).
    publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = True

    If Not publication.IsExistingObject Then
        ' Create the transactional publication.
        publication.Create()

        ' Create a Snapshot Agent job for the publication.
        publication.CreateSnapshotAgent()
    Else
        Throw New ApplicationException(String.Format( _
            "The {0} publication already exists.", publicationName))
    End If
Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
        "The publication {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

Bu örnek, AdventureWorks veritabanı birleştirme yayımlama için etkinleştirir ve AdvWorksSalesOrdersMerge yayını oluşturur. Makaleler hala bu yayın için tanımlanmış olması gerekir. Anlık görüntü Aracısı işi oluşturmak için gerekli olan Windows hesabı kimlik bilgileri, çalışma anında iletilir. rmo birleştirme makaleleri tanımlamak için nasıl kullanılacağını öğrenmek için bkz: Bir makale tanımlamak.

            // Set the Publisher, publication database, and publication names.
            string publisherName = publisherInstance;
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publicationDbName = "AdventureWorks2012";

            ReplicationDatabase publicationDb;
            MergePublication publication;

            // Create a connection to the Publisher.
            ServerConnection conn = new ServerConnection(publisherName);

            try
            {
                // Connect to the Publisher.
                conn.Connect();

                // Enable the database for merge publication.               
                publicationDb = new ReplicationDatabase(publicationDbName, conn);
                if (publicationDb.LoadProperties())
                {
                    if (!publicationDb.EnabledMergePublishing)
                    {
                        publicationDb.EnabledMergePublishing = true;
                    }
                }
                else
                {
                    // Do something here if the database does not exist. 
                    throw new ApplicationException(String.Format(
                        "The {0} database does not exist on {1}.",
                        publicationDb, publisherName));
                }

                // Set the required properties for the merge publication.
                publication = new MergePublication();
                publication.ConnectionContext = conn;
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;

                // Enable precomputed partitions.
                publication.PartitionGroupsOption = PartitionGroupsOption.True;

                // Specify the Windows account under which the Snapshot Agent job runs.
                // This account will be used for the local connection to the 
                // Distributor and all agent connections that use Windows Authentication.
                publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin;
                publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword;

                // Explicitly set the security mode for the Publisher connection
                // Windows Authentication (the default).
                publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = true;

                // Enable Subscribers to request snapshot generation and filtering.
                publication.Attributes |= PublicationAttributes.AllowSubscriberInitiatedSnapshot;
                publication.Attributes |= PublicationAttributes.DynamicFilters;

                // Enable pull and push subscriptions.
                publication.Attributes |= PublicationAttributes.AllowPull;
                publication.Attributes |= PublicationAttributes.AllowPush;

                if (!publication.IsExistingObject)
                {
                    // Create the merge publication.
                    publication.Create();
                    
                    // Create a Snapshot Agent job for the publication.
                    publication.CreateSnapshotAgent();
                }
                else
                {
                    throw new ApplicationException(String.Format(
                        "The {0} publication already exists.", publicationName));
                }
            }

            catch (Exception ex)
            {
                // Implement custom application error handling here.
                throw new ApplicationException(String.Format(
                    "The publication {0} could not be created.", publicationName), ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Set the Publisher, publication database, and publication names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"

Dim publicationDb As ReplicationDatabase
Dim publication As MergePublication

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Enable the database for merge publication.                
    publicationDb = New ReplicationDatabase(publicationDbName, conn)
    If publicationDb.LoadProperties() Then
        If Not publicationDb.EnabledMergePublishing Then
            publicationDb.EnabledMergePublishing = True
        End If
    Else
        ' Do something here if the database does not exist. 
        Throw New ApplicationException(String.Format( _
         "The {0} database does not exist on {1}.", _
         publicationDb, publisherName))
    End If

    ' Set the required properties for the merge publication.
    publication = New MergePublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Enable precomputed partitions.
    publication.PartitionGroupsOption = PartitionGroupsOption.True

    ' Specify the Windows account under which the Snapshot Agent job runs.
    ' This account will be used for the local connection to the 
    ' Distributor and all agent connections that use Windows Authentication.
    publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin
    publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword

    ' Explicitly set the security mode for the Publisher connection
    ' Windows Authentication (the default).
    publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = True

    ' Enable Subscribers to request snapshot generation and filtering.
    publication.Attributes = publication.Attributes Or _
        PublicationAttributes.AllowSubscriberInitiatedSnapshot
    publication.Attributes = publication.Attributes Or _
        PublicationAttributes.DynamicFilters

    ' Enable pull and push subscriptions
    publication.Attributes = publication.Attributes Or _
        PublicationAttributes.AllowPull
    publication.Attributes = publication.Attributes Or _
        PublicationAttributes.AllowPush

    If Not publication.IsExistingObject Then
        ' Create the merge publication.
        publication.Create()

        ' Create a Snapshot Agent job for the publication.
        publication.CreateSnapshotAgent()
    Else
        Throw New ApplicationException(String.Format( _
            "The {0} publication already exists.", publicationName))
    End If
Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
        "The publication {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

Ayrıca bkz.

Kavramlar

Sqlcmd Scripting değişkenleri ile kullanma

Verileri ve veritabanı nesnelerini Yayımla

Çoğaltma Management Objects kavramları

Bir makale tanımlamak

Yayın özelliklerini görüntüleme ve değiştirme

Dağıtım yapılandırma

Dağıtımcı güvenliğini

Publisher'ı güvenli