Aracılığıyla paylaş


Eşitleme çizelgelerini belirleme

Bu konu içinde eşitleme çizelgelerini belirleme açıklar SQL Server 2012kullanarak SQL Server Management Studio, Transact-SQL, ya da Çoğaltma Yönetimi Nesneleri'ni (rmo). Bir abonelik oluşturduğunuzda, çoğaltma aracısı abonelik çalıştırıldığında denetleyen eşitleme zamanlamasını tanımlayabilirsiniz. Abonelik, zamanlama parametreleri belirtmezseniz, varsayılan zamanlamayı kullanır.

Abonelikleri (için anlık görüntü ve işlem çoğaltma) Dağıtım Aracısı veya Birleştirme Aracısı (birleştirme çoğaltma) eşitlenir. Ajanlar, sürekli çalışacak, istek üzerine çalıştırmak veya bir zamanlamaya göre çalıştır.

Bu Konuda

  • Kullanarak eşitleme çizelgelerini belirlemek için:

    SQL Server Management Studio

    Transact-SQL

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

SQL Server Management Studio Kullanarak

Üzerinde eşitleme çizelgelerini belirleme Eşitleme zamanlamasını Yeni Abonelik Sihirbazı sayfası. Bu sihirbaz erişme hakkında daha fazla bilgi için bkz: Itme abonelik oluşturmave Çekme abonelik oluştur.

Eşitleme zamanlamaları değiştirmek İş çizelgesi Özellikler kullanılabilir iletişim kutusu İş klasöründe SQL Server Management Studiove çoğaltma izleyicisi Aracısı ayrıntılar pencerelerden. Çoğaltma İzleyicisi başlatma hakkında daha fazla bilgi için bkz: Çoğaltma İzleyicisi'ni Başlat.

Zamanlamaları dan belirtirseniz İş klasörü, Aracısı iş adı belirlemek için aşağıdaki tabloyu kullanın.

Aracısı

İş adı

Çekme abonelik için Aracısı Birleştir

<Yayıncı>-<PublicationDatabase>-<yayın>-<abone>-<SubscriptionDatabase>-<tamsayı>

Itme abonelik için Aracısı Birleştir

<Yayıncı>-<PublicationDatabase>-<yayın>-<abone>-<tamsayı>

Itme abonelikleri için Dağıtım Aracısı

<Yayıncı>-<PublicationDatabase>-<yayın>-<abone>-<Tamsayı>1

Çekme abonelikleri için Dağıtım Aracısı

<Yayıncı>-<PublicationDatabase>-<yayın>-<abone>-<SubscriptionDatabase>-<GUID>2

Dağıtım Aracısı itme abonelik için olmayan - SQL Server aboneleri için

<Yayıncı>-<PublicationDatabase>-<yayın>-<abone>-<tamsayı>

1 Oracle yayınlar için itme abonelikleri için öyle <Publisher>-<Publisher> yerine <Publisher>-<PublicationDatabase>

2 Oracle yayınlar için çekme abonelikleri için öyle <Publisher>-<DistributionDatabase> yerine <Publisher>-<PublicationDatabase>

Eşitleme çizelgelerini belirlemek için

  1. Tarih eşitlemeprogramı Yeni Abonelik Sihirbazı, gelen değerler aşağıdakilerden birini seçin sayfasında Aracısı zamanlama açılır liste oluştururken her abonelik için:

    • Sürekli çalışacak

    • Yalnızca istek üzerine çalıştırmak

    • <Program tanımlama>

  2. Seçerseniz <Program tanımlama >, bir zamanlama belirtmek İş çizelgesi Özellikler iletişim kutusunu tıklatıp ardından Tamam.

  3. Sihirbazı tamamlayın.

Itme abonelik çoğaltma izleyicisi'nde eşitleme zamanlamasını değiştirmek için

  1. Çoğaltma izleyicisi'nin sol bölmede bir yayımcı grubu genişletin, bir Publisher genişletin ve sonra bir yayın'ı tıklatın.

  2. Tıklayın Tüm abonelikleri sekmesi.

  3. Bir abonelik sağ tıklatın ve ardından Ayrıntılara.

  4. İçinde Abonelik <SubscriptionName > penceresini tıklatın, eylemve'yi <AgentName > İş özelliklerini.

  5. Tarih programları sayfası Iş Özellikler - <işadı > iletişim kutusu'yı Düzenle

  6. İçinde İş çizelgesi Özellikler iletişim kutusunda, değer seçin Zamanlama türü açılan liste:

    • Aracı sürekli çalışması gerektiğini belirtmek için seçin SQL Server Agent başladığında otomatik olarak Başlat.

    • Aracısını zamanlamaya göre çalışması gerektiğini belirtmek için seçin yinelenen.

    • Ajan isteğe bağlı olarak çalışması gerektiğini belirtmek için seçin bir kez.

  7. Seçerseniz yinelenen, Aracısı için bir zamanlama belirtin.

  8. Tamam’ı tıklatın.

Itme abonelik Management Studio'da eşitleme zamanlamasını değiştirmek için

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

  2. Genişletin SQL Server Agent klasörünü ve ardından İş klasör.

  3. Dağıtım Aracısı veya Birleştirme Aracısı abonelik ile ilişkili işi sağ tıklatın ve sonra tıklatın Özellikler.

  4. Tarih programları sayfası Iş Özellikler - <işadı > iletişim kutusu'yı Düzenle

  5. İçinde İş çizelgesi Özellikler iletişim kutusunda, değer seçin Zamanlama türü açılan liste:

    • Aracı sürekli çalışması gerektiğini belirtmek için seçin SQL Server Agent başladığında otomatik olarak Başlat.

    • Aracısını zamanlamaya göre çalışması gerektiğini belirtmek için seçin yinelenen.

    • Ajan isteğe bağlı olarak çalışması gerektiğini belirtmek için seçin bir kez.

  6. Seçerseniz yinelenen, Aracısı için bir zamanlama belirtin.

  7. Tamam’ı tıklatın.

Çekme abonelik Management Studio'da eşitleme zamanlamasını değiştirmek için

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

  2. Genişletin SQL Server Agent klasörünü ve ardından İş klasör.

  3. Dağıtım Aracısı veya Birleştirme Aracısı abonelik ile ilişkili işi sağ tıklatın ve sonra tıklatın Özellikler.

  4. Tarih programları sayfası Iş Özellikler - <işadı > iletişim kutusu'yı Düzenle

  5. İçinde İş çizelgesi Özellikler iletişim kutusunda, değer seçin Zamanlama türü açılan liste:

    • Aracı sürekli çalışması gerektiğini belirtmek için seçin SQL Server Agent başladığında otomatik olarak Başlat.

    • Aracısını zamanlamaya göre çalışması gerektiğini belirtmek için seçin yinelenen.

    • Ajan isteğe bağlı olarak çalışması gerektiğini belirtmek için seçin bir kez.

  6. Seçerseniz yinelenen, Aracısı için bir zamanlama belirtin.

  7. Tamam’ı tıklatın.

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

Transact-SQL'i Kullanma

Program çoğaltma depolanmış yordamları kullanarak eşitleme zamanlamalarını tanımlayabilirsiniz. Kullanılan saklı yordamlar çoğaltma türünü ve abonelik (çekme veya itme) türüne bağlıdır.

Zamanlama davranışları olan miras alınır aşağıdaki zamanlama parametreleri tarafından tanımlanan sp_add_schedule (Transact-sql):

  • @ frequency_type -aracı zamanlarken kullanılan sıklığı türü.

  • @ frequency_interval - ne zaman bir aracı çalışır haftanın günü.

  • @ frequency_relative_interval - zaman aracı aylık çalışmak üzere zamanlandığı verilen ayın hafta.

  • @ frequency_recurrence_factor -eşitlemeler ortaya sıklığı türü birim sayısı.

  • @ frequency_subday -aracı günde bir kez daha sık çalıştığında sıklığı birimi.

  • @ frequency_subday_interval -aracı günde bir kez daha sık çalıştığında sıklığı birim arasında çalışır.

  • @ active_start_time_of_day - bir aracı çalıştırmak başlattığınızda belirli bir günde en erken saati.

  • @ active_end_time_of_day - bir aracı çalıştırmak başlattığınızda belirli bir günde en son Saat.

  • @ active_start_date - Aracısı zamanlama etkili olacak ilk günü.

  • @ active_end_date - Aracısı zamanlama etkili olacak son günü.

İşlem yayınına çekme abonelik Eşitleme zamanlama tanımlamak için

  1. Yeni bir çekme abonelik işlem yayınına oluşturur. Daha fazla bilgi için, bkz. Çekme abonelik oluştur.

  2. Abone tarafında idam yürütme eşdeğerdirsp_addpullsubscription_agent (Transact-sql). Belirtmek @ publisher, @ publisher_db, @ yayınve Microsoftabone adresindeki dağıtım aracı için çalıştığı Windows kimlik bilgileri @ job_name ve @ parola. Dağıtım Aracısı iş abonelik eşitler zamanlama tanımlamak yukarıda ayrıntılı eşitleme parametreleri belirtin.

Işlem bir yayın itme abonelik Eşitleme zamanlama tanımlamak için

  1. Yeni bir itme abonelik işlem yayınına oluşturur. Daha fazla bilgi için, bkz. Itme abonelik oluşturma.

  2. Abone tarafında idam sp_addpushsubscription_agent (Transact-sql). Belirtmek @ abone, @ subscriber_db, @ yayınve abone adresindeki dağıtım aracı çalıştığı için Windows kimlik bilgileri @ job_name ve @ parola. Dağıtım Aracısı iş abonelik eşitler zamanlama tanımlamak yukarıda ayrıntılı eşitleme parametreleri belirtin.

Bir birleştirme yayını çekme abonelik Eşitleme zamanlama tanımlamak için

  1. Yeni bir çekme abonelik birleştirme yayınına oluşturur. Daha fazla bilgi için, bkz. Çekme abonelik oluştur.

  2. Abone tarafında idam sp_addmergepullsubscription_agent. Belirtmek @ publisher, @ publisher_db, @ yayınve abone Birleştirme Aracısı çalıştığı için Windows kimlik bilgileri @ job_name ve @ parola. Zamanlama için Birleştirme Aracısı iş abonelik eşitler tanımlamak yukarıda ayrıntılı eşitleme parametreleri belirtin.

Bir birleştirme yayını itme abonelik Eşitleme zamanlama tanımlamak için

  1. Yeni bir itme abonelik birleştirme yayınına oluşturur. Daha fazla bilgi için, bkz. Itme abonelik oluşturma.

  2. Abone tarafında idam sp_addmergepushsubscription_agent. Belirtmek @ abone, @ subscriber_db, @ yayınve abone Birleştirme Aracısı çalıştığı için Windows kimlik bilgileri @ job_name ve @ parola. Zamanlama için Birleştirme Aracısı iş abonelik eşitler tanımlamak yukarıda ayrıntılı eşitleme parametreleri belirtin.

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

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

Çoğaltma Anlık görüntü üretimi ve abonelik eşitleme gibi düzenli aralıklarla gerçekleşen etkinliklerden işleri zamanlamak için SQL Server Agent kullanır. Çoğaltma Yönetimi Nesneleri'ni (rmo) çoğaltma aracısı işleri için zamanlama belirtmek için programlı olarak kullanabilirsiniz.

[!NOT]

Bir abonelik oluşturma ve bir değer falseiçin CreateSyncAgentByDefault(çekme abonelikleri için varsayılan davranış) Aracısı işi oluşturulmaz ve zamanlama özelliklerini dikkate alınmaz. Bu durumda, Eşitleme zamanlama uygulama tarafından belirlenmelidir. Daha fazla bilgi için Çekme abonelik oluşturve Itme abonelik oluşturma.

Itme abonelik işlem yayınına oluşturduğunuzda çoğaltma aracısı zamanlama tanımlamak için

  1. Örneğini TransSubscriptionsınıfı oluştururken Abonelik. Daha fazla bilgi için, bkz. Itme abonelik oluşturma.

  2. Aramadan önce Create, bir veya daha aşağıdaki alanları AgentScheduleözelliği:

    [!NOT]

    Bu özelliklerden birini belirtmezseniz, varsayılan değere ayarlanır.

  3. Arama Createabonelik oluşturma yöntemi.

Çekme abonelik işlem yayınına oluşturduğunuzda çoğaltma aracısı zamanlama tanımlamak için

  1. Örneğini TransPullSubscriptionsınıfı oluştururken Abonelik. Daha fazla bilgi için, bkz. Çekme abonelik oluştur.

  2. Aramadan önce Create, bir veya daha aşağıdaki alanları AgentScheduleözelliği:

    [!NOT]

    Bu özelliklerden birini belirtmezseniz, varsayılan değere ayarlanır.

  3. Arama Createabonelik oluşturma yöntemi.

Çekme abonelik birleştirme yayınına oluşturduğunuzda çoğaltma aracısı zamanlama tanımlamak için

  1. Örneğini MergePullSubscriptionsınıfı oluştururken Abonelik. Daha fazla bilgi için, bkz. Çekme abonelik oluştur.

  2. Aramadan önce Create, bir veya daha aşağıdaki alanları AgentScheduleözelliği:

    [!NOT]

    Bu özelliklerden birini belirtmezseniz, varsayılan değere ayarlanır.

  3. Arama Createabonelik oluşturma yöntemi.

Itme abonelik birleştirme yayınına oluşturduğunuzda çoğaltma aracısı zamanlama tanımlamak için

  1. Örneğini MergeSubscriptionsınıfı oluştururken Abonelik. Daha fazla bilgi için, bkz. Itme abonelik oluşturma.

  2. Aramadan önce Create, bir veya daha aşağıdaki alanları AgentScheduleözelliği:

    [!NOT]

    Bu özelliklerden birini belirtmezseniz, varsayılan değere ayarlanır.

  3. Arama Createabonelik oluşturma yöntemi.

Örnek (rmo)

Bu örnek, bir itme abonelik birleştirme yayınına oluşturur ve üzerinde abonelik eşitlenecek zamanlama belirtir.

           // Define the Publisher, publication, and databases.
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publisherName = publisherInstance;
            string subscriberName = subscriberInstance;
            string subscriptionDbName = "AdventureWorks2012Replica";
            string publicationDbName = "AdventureWorks2012";
            string hostname = @"adventure-works\garrett1";

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

            // Create the objects that we need.
            MergePublication publication;
            MergeSubscription subscription;

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

                // Ensure that the publication exists and that 
                // it supports push subscriptions.
                publication = new MergePublication();
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;
                publication.ConnectionContext = conn;

                if (publication.IsExistingObject)
                {
                    if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
                    {
                        publication.Attributes |= PublicationAttributes.AllowPush;
                    }

                    // Define the push subscription.
                    subscription = new MergeSubscription();
                    subscription.ConnectionContext = conn;
                    subscription.SubscriberName = subscriberName;
                    subscription.PublicationName = publicationName;
                    subscription.DatabaseName = publicationDbName;
                    subscription.SubscriptionDBName = subscriptionDbName;
                    subscription.HostName = hostname;

                    // Set a schedule to synchronize the subscription every 2 hours
                    // during weekdays from 6am to 10pm.
                    subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly;
                    subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32(0x003E);
                    subscription.AgentSchedule.FrequencyRecurrenceFactor = 1;
                    subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour;
                    subscription.AgentSchedule.FrequencySubDayInterval = 2;
                    subscription.AgentSchedule.ActiveStartDate = 20051108;
                    subscription.AgentSchedule.ActiveEndDate = 20071231;
                    subscription.AgentSchedule.ActiveStartTime = 060000;
                    subscription.AgentSchedule.ActiveEndTime = 100000;

                    // Specify the Windows login credentials for the Merge Agent job.
                    subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
                    subscription.SynchronizationAgentProcessSecurity.Password = winPassword;

                    // Create the push subscription.
                    subscription.Create();
                }
                else
                {
                    // Do something here if the publication does not exist.
                    throw new ApplicationException(String.Format(
                        "The publication '{0}' does not exist on {1}.",
                        publicationName, publisherName));
                }
            }
            catch (Exception ex)
            {
                // Implement the appropriate error handling here.
                throw new ApplicationException(String.Format(
                    "The subscription to {0} could not be created.", publicationName), ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
Dim hostname As String = "adventure-works\garrett1"

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

' Create the objects that we need.
Dim publication As MergePublication
Dim subscription As MergeSubscription

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

    ' Ensure that the publication exists and that 
    ' it supports push subscriptions.
    publication = New MergePublication()
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName
    publication.ConnectionContext = conn

    If publication.IsExistingObject Then
        If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
            publication.Attributes = publication.Attributes _
            Or PublicationAttributes.AllowPush
        End If

        ' Define the push subscription.
        subscription = New MergeSubscription()
        subscription.ConnectionContext = conn
        subscription.SubscriberName = subscriberName
        subscription.PublicationName = publicationName
        subscription.DatabaseName = publicationDbName
        subscription.SubscriptionDBName = subscriptionDbName
        subscription.HostName = hostname

        ' Set a schedule to synchronize the subscription every 2 hours
        ' during weekdays from 6am to 10pm.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly
        subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32("0x003E", 16)
        subscription.AgentSchedule.FrequencyRecurrenceFactor = 1
        subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour
        subscription.AgentSchedule.FrequencySubDayInterval = 2
        subscription.AgentSchedule.ActiveStartDate = 20051108
        subscription.AgentSchedule.ActiveEndDate = 20071231
        subscription.AgentSchedule.ActiveStartTime = 60000
        subscription.AgentSchedule.ActiveEndTime = 100000

        ' Specify the Windows login credentials for the Merge Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword

        ' Create the push subscription.
        subscription.Create()
    Else

        ' Do something here if the publication does not exist.
        Throw New ApplicationException(String.Format( _
         "The publication '{0}' does not exist on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here.
    Throw New ApplicationException(String.Format( _
    "The subscription to {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

ModeliveÇoğaltma güvenlik en iyi uygulamalar

Yayınlara abone

Itme abonelik eşitlemek

Çekme abonelik Eşitle

Verileri eşitleme