Aracılığıyla paylaş


Oluşturun ve başlangıç anlık görüntüsü Uygula

Bu konu oluşturun ve başlangıç anlık uygulamak açıklar SQL Server 2012kullanarak SQL Server Management Studio, Transact-SQL, ya da Çoğaltma Yönetimi Nesneleri'ni (rmo). Parametreli filtreleri birleştirme yayımları iki bölümden anlık gerektirir. Daha fazla bilgi için, bkz. Parametreli filtreleri ile birleştirme yayını için bir Snapshot oluştur.

Bu Konuda

  • Oluşturma ve anlık görüntü, kullanarak ilk uygulamak için:

    SQL Server Management Studio

    Transact-SQL

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

SQL Server Management Studio Kullanarak

Varsayılan olarak, eğer SQL ServerAracısı çalışıyor, yeni yayın sihirbazını yayın oluşturulduktan hemen sonra anlık görüntü Aracısı tarafından oluşturulan bir anlık. Varsayılan olarak, sonra (anlık görüntü ve işlem çoğaltma için) dağıtım aracısını veya Birleştirme Aracısı (birleştirme abonelikleri) tüm abonelikleri tarafından uygulanır. Anlık kullanılarak da oluşturulabilir SQL Server Management Studiove çoğaltma izleyicisi. Çoğaltma İzleyicisi başlatma hakkında daha fazla bilgi için bkz: Çoğaltma İzleyicisi'ni Başlat.

Management Studio'da bir anlık görüntüsünü oluşturmak için

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

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

  3. Bir anlık görüntü oluşturmak ve ardından istediğiniz yayını sağ tıklatın Görünüm Snapshot Aracısı durum.

  4. İçinde Görünüm Snapshot Aracısı durum - <yayın > iletişim kutusu'yı Start.

Snapshot aracı anlık görüntüsü oluşturuluyor tamamlandığında "[% 100] a snapshot of 17 article (s) oluşturuldu."gibi bir mesaj, görüntülenir

Çoğaltma İzleyicisi bir anlık görüntüsünü oluşturmak için

  1. Çoğaltma İzleyicisi'nde, sol bölmede bir yayımcı grubu genişletin ve sonra bir Publisher'ı genişletin.

  2. Bir anlık görüntü oluşturmak ve sonra istediğiniz yayını sağ tıklatın Generate Snapshot.

  3. Anlık görüntü Aracısı durumunu görüntülemek için tıklatın ajanlar sekmesi. Daha fazla bilgi için anlık görüntü Aracısı kılavuz sağ tıklatın ve ardından Ayrıntılara.

Anlık uygulamak için

  • Bir anlık görüntü oluşturulan sonra Dağıtım Aracısı veya Birleştirme Aracısı abonelik eşitleme uygulanır:

    • Aracısı sürekli çalışacak şekilde ayarlanmışsa (varsayılan işlem çoğaltma), sonra o oluşturulan anlık otomatik olarak uygulanır.

    • Aracısını zamanlamaya çalıştırmak için ayarlanırsa, anlık görüntü Aracısı çalışmak üzere zamanlandığı sonraki uygulanır.

    • Aracı, istek üzerine çalıştırmak için ayarlanmışsa, bu aracı bir sonraki çalıştırmanızda uygulanır.

    Abonelik eşitleme hakkında daha fazla bilgi için Itme abonelik eşitlemekve Çekme abonelik Eşitle.

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

Transact-SQL'i Kullanma

İlk anlık programlı olarak oluşturmak ve bir anlık görüntü Aracısı iş çalıştıran veya bir toplu iş dosyasından anlık görüntü Aracısı yürütülebilir dosyasını çalıştırarak oluşturulabilir. Bir başlangıç anlık görüntüsünü oluşturulduktan sonra transfer ve abonelik ilk eşitlendiğinde Abone tarafında uygulanan. Anlık görüntü Aracısı'nı komut isteminde veya bir toplu iş dosyası çalıştırırsanız, varolan anlık görüntü geçersiz olur her Aracısı yeniden çalıştırmanız gerekecek.

Güvenlik notuGüvenlik Notu

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

Oluşturun ve başlangıç anlık görüntüsü oluşturmak için bir anlık görüntü Aracısı iş çalıştırmak için

  1. Bir anlık görüntü işlem, oluşturmak veya birleştirme yayını. Daha fazla bilgi için, bkz. Yayın oluşturma.

  2. İdam sp_addpublication_snapshot (Transact-sql). Belirtmek @ yayın ve aşağıdaki parametreleri:

    • @ Belirten job_login, Snapshot Aracısı çalıştığı at dağıtımcı Windows kimlik doğrulama bilgileri.

    • @ Job_password, parola için sağlanan Windows kimlik bilgileri olduğu.

    • (İsteğe bağlı) Değeri 0 için @ publisher_security_mode aracısı SQL Server kimlik doğrulaması için yayımcı bağlanırken kullanacağı eğer. Bu durumda, SQL Server kimlik doğrulaması oturum açma bilgilerini belirtmeniz de gerekir @ publisher_login ve publisher_password @.

    • (İsteğe bağlı) Anlık görüntü Aracısı iş için Eşitleme zamanlama. Daha fazla bilgi için, bkz. Eşitleme çizelgelerini belirleme.

    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.

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

  4. Yayını veritabanı üzerinde Yayımcı tarafında idam sp_startpublication_snapshot (Transact-sql), değerini belirtme @ yayın adım 1'den.

İlk anlık görüntüsü oluşturmak için anında aracı çalıştırmak için

  1. Bir anlık görüntü işlem, oluşturmak veya birleştirme yayını. Daha fazla bilgi için, bkz. Yayın oluşturma.

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

  3. Komut isteminde veya bir toplu iş dosyasında, başlangıç Çoğaltma Anlık görüntü Aracısıçalıştırarak snapshot.exe, aşağıdaki komut satırı değişkenleri belirtme:

    • -Yayın

    • -Yayınevi

    • -Dağıtıcı

    • PublisherDB-

    • -ReplicationType

    SQL Server kimlik doğrulaması kullanıyorsanız, aşağıdaki bağımsız da belirtmeniz gerekir:

    • -DistributorLogin

    • -DistributorPassword

    • -DistributorSecurityMode = 0

    • -PublisherLogin

    • -PublisherPassword

    • -PublisherSecurityMode = 0

Örnekler (Transact-SQL)

Bu örnek işlem yayınına oluşturmak ve bir anlık görüntü Aracısı iş için yeni bir yayın eklemek gösterilmiştir (kullanarak sqlcmd komut dosyası değişkenleri). Örnek de işi başlatı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'AdventureWorks2012'; --publication database
SET @publication = N'AdvWorksCustomerTran'; -- transactional publication name
SET @login = $(Login);
SET @password = $(Password);

USE [AdventureWorks]

-- Enable transactional and 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 security mode used when connecting to the Publisher.
  @publisher_security_mode = 1;

-- Create new transactional publication, using the defaults. 
USE [AdventureWorks2012]
EXEC sp_addpublication 
  @publication = @publication, 
  @description = N'transactional publication';

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

-- Start the Snapshot Agent job.
EXEC sp_startpublication_snapshot @publication = @publication;
GO

Bu örnek, birleştirme yayını oluşturur ve bir anlık görüntü Aracısı iş ekler (kullanarak sqlcmd değişkenleri) yayını. Bu örnek ayrıca işi başlatı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".

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.
USE master
EXEC sp_replicationdboption 
  @dbname = @publicationDB, 
  @optname=N'merge publish',
  @value = N'true';

-- Create new merge publication, using the defaults. 
USE [AdventureWorks]
EXEC sp_addmergepublication 
  @publication = @publication, 
  @description = N'Merge publication.';

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

-- Start the Snapshot Agent job.
EXEC sp_startpublication_snapshot @publication = @publication;
GO

Aşağıdaki komut satırı değişkenleri birleştirme yayını anlık görüntüsü oluşturmak için anında aracı başlatın.

[!NOT]

Satır sonları, Okunabilirliği artırmak için eklenmiştir. Bir toplu iş dosyasında tek bir satırda komutları yapılmalıdır.

REM -- Declare variables
SET Publisher=%InstanceName%
SET PublicationDB=AdventureWorks2012 
SET Publication=AdvWorksSalesOrdersMerge 

REM --Start the Snapshot Agent to generate the snapshot for AdvWorksSalesOrdersMerge.
"C:\Program Files\Microsoft SQL Server\110\COM\SNAPSHOT.EXE" -Publication %Publication% 
-Publisher %Publisher% -Distributor %Publisher% -PublisherDB %PublicationDB% 
-ReplicationType 2 -OutputVerboseLevel 1 -DistributorSecurityMode 1 

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

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

Bir yayın oluşturduktan sonra anlık görüntü Aracısı anlık görüntüler oluşturur. Çoğaltma Yönetimi Nesneleri'ni (rmo) ve çoğaltma aracısı işlevleri doğrudan yönetilen kod erişimi kullanarak programlı olarak bu anlık görüntüleri oluşturabilirsiniz. Kullandığınız nesneleri çoğaltma türüne bağlıdır. Anlık görüntü Aracısı eşzamanlı olarak kullanılarak başlatılabilir SnapshotGenerationAgentnesne veya zaman uyumsuz olarak kullanan Aracısı işi. Ilk anlık görüntüsünü oluşturulduktan sonra transfer ve abonelik ilk eşitlendiğinde Abone tarafında uygulanan. Varolan anlık görüntü artık geçerli ve güncel verileri içeren her Aracısı'nı yeniden çalıştırmanız gerekecek. Daha fazla bilgi için, bkz. Yayınlar korumak.

Güvenlik notuGüvenlik Notu

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.

Anlık görüntü Aracısı iş (zaman uyumsuz) başlatarak bir anlık görüntü veya işlem yayın başlangıç anlık görüntüsü oluşturmak için

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

  2. Örneğini TransPublicationsınıf Set Nameve DatabaseNameyayın ve kümesi özelliklerini ConnectionContextözelliği 1. adımda oluşturduğunuz bağlantı.

  3. Arama LoadPropertieskalan nesnenin özelliklerini yüklemek için yöntem. Bu yöntem ise false, adım 2 yayını özellikleri yanlış tanımlanan veya yayını yok.

  4. Eğer değeri SnapshotAgentExistsolan falsenolu CreateSnapshotAgentBu yayın anlık görüntü Aracısı işi oluşturmak için.

  5. Arama StartSnapshotGenerationAgentJobBu yayın anlık oluşturur Aracısı işi başlatmak için yöntemi.

  6. (İsteğe bağlı) Zaman değeri SnapshotAvailableolan true, abonelerine anlık kullanılabilir.

Snapshot aracı çalıştırarak anlık görüntü veya işlem yayın başlangıç anlık görüntüsü oluşturmak için

  1. Örneğini SnapshotGenerationAgentsınıf ve aşağıdaki gerekli özellikleri ayarlayın:

  2. Ayarlayın Transactionalveya Snapshotiçin ReplicationType.

  3. Arama GenerateSnapshotyöntemi.

Anlık görüntü Aracısı iş (zaman uyumsuz) başlatarak ilk anlık görüntüsünü 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 MergePublicationsınıf Set Nameve DatabaseNameyayın ve kümesi özelliklerini ConnectionContextözelliği 1. adımda oluşturduğunuz bağlantı.

  3. Arama LoadPropertieskalan nesnenin özelliklerini yüklemek için yöntem. Bu yöntem ise false, adım 2 yayını özellikleri yanlış tanımlanan veya yayını yok.

  4. Eğer değeri SnapshotAgentExistsolan falsenolu CreateSnapshotAgentBu yayın anlık görüntü Aracısı işi oluşturmak için.

  5. Arama StartSnapshotGenerationAgentJobBu yayın anlık oluşturur Aracısı işi başlatmak için yöntemi.

  6. (İsteğe bağlı) Zaman değeri SnapshotAvailableolan true, abonelerine anlık kullanılabilir.

Snapshot aracı çalıştırarak başlangıç anlık görüntüsünü birleştirme yayını oluşturmak için

  1. Örneğini SnapshotGenerationAgentsınıf ve aşağıdaki gerekli özellikleri ayarlayın:

  2. Ayarlayın Mergeiçin ReplicationType.

  3. Arama GenerateSnapshotyöntemi.

Örnekler (rmo)

Bu örnek, zaman uyumlu olarak işlem yayının ilk anlık görüntüsü oluşturmak için anında aracı çalışır.

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

            SnapshotGenerationAgent agent;

            try
            {
                // Set the required properties for Snapshot Agent.
                agent = new SnapshotGenerationAgent();
                agent.Distributor = distributorName;
                agent.DistributorSecurityMode = SecurityMode.Integrated;
                agent.Publisher = publisherName;
                agent.PublisherSecurityMode = SecurityMode.Integrated;
                agent.Publication = publicationName;
                agent.PublisherDatabase = publicationDbName;
                agent.ReplicationType = ReplicationType.Transactional;

                // Start the agent synchronously.
                agent.GenerateSnapshot();

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

Dim agent As SnapshotGenerationAgent

Try
    ' Set the required properties for Snapshot Agent.
    agent = New SnapshotGenerationAgent()
    agent.Distributor = distributorName
    agent.DistributorSecurityMode = SecurityMode.Integrated
    agent.Publisher = publisherName
    agent.PublisherSecurityMode = SecurityMode.Integrated
    agent.Publication = publicationName
    agent.PublisherDatabase = publicationDbName
    agent.ReplicationType = ReplicationType.Transactional

    ' Start the agent synchronously.
    agent.GenerateSnapshot()

Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
     "A snapshot could not be generated for the {0} publication." _
     , publicationName), ex)
End Try

Bu örnek, zaman uyumsuz olarak işlem yayının ilk anlık görüntüsü oluşturmak için Aracısı işlemini başlatır.

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

            TransPublication publication;

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

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

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

                if (publication.LoadProperties())
                {
                    // Start the Snapshot Agent job for the publication.
                    publication.StartSnapshotGenerationAgentJob();
                }
                else
                {
                    throw new ApplicationException(String.Format(
                        "The {0} publication does not exist.", publicationName));
                }
            }
            catch (Exception ex)
            {
                // Implement custom application error handling here.
                throw new ApplicationException(String.Format(
                    "A snapshot could not be generated for the {0} publication."
                    , 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 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()

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

    If publication.LoadProperties() Then
        ' Start the Snapshot Agent job for the publication.
        publication.StartSnapshotGenerationAgentJob()
    Else
        Throw New ApplicationException(String.Format( _
         "The {0} publication does not exist.", publicationName))
    End If
Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
     "A snapshot could not be generated for the {0} publication." _
     , publicationName), ex)
Finally
    conn.Disconnect()
End Try

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

Ayrıca bkz.

Kavramlar

Yayın oluşturma

Çekme abonelik oluştur

Itme abonelik oluşturma

Eşitleme çizelgelerini belirleme

Oluşturma ve anlık görüntü Uygula

Bir abonelik anlık görüntü ile başlatma

Çoğaltma Management Objects kavramları

ModeliveÇoğaltma güvenlik en iyi uygulamalar

Yineleme sistem saklı yordamlar kavramları

Sqlcmd Scripting değişkenleri ile kullanma