Yayın Özelliklerini Görüntüle ve Değiştir

Şunlar için geçerlidir: SQL Server Azure SQL Yönetilen Örneği

Bu konu, SQL Server Management Studio, Transact-SQL veya Replication Management Objects (RMO) kullanılarak SQL Server Management Studio'da yayın özelliklerinin nasıl görüntüleneceğini ve değiştirileceğini açıklar.

Sınırlamalar ve Kısıtlamalar

  • Bazı özellikler, bir yayın oluşturulduktan sonra değiştirilemez, bazıları ise yayına abonelik varsa değiştirilemez. Değiştirilemeyen özellikler yalnızca okunabilir olarak gösterilir.

Öneriler

SQL Server Management Studio'yu kullanma

SQL Server Management Studio ve Replication Monitor'da bulunan Yayın Özellikleri - <Yayın> iletişim kutusunda yayın özelliklerini görüntüleyin ve değiştirin. Çoğaltma İzleyicisi'ni başlatma hakkında bilgi için bkz. Çoğaltma İzleyicisi'ni başlatma.

Yayın Özellikleri - <Yayın> diyalog kutusu aşağıdaki sayfaları içerir:

  • Genel sayfa, yayın adı ve açıklaması, veritabanı adı, yayın türü ve abonelik son kullanma süresi ayarlarını içerir.

  • Makaleler sayfası, Yeni Yayın Büyücüsü'ndeki Makaleler sayfasına karşılık gelir. Bu sayfayı makale eklemek ve silmek, makaleler için özellikleri ve sütun filtrelemesini değiştirmek için kullanın.

  • Filtre Satırları sayfası, Yeni Yayın Sihirbazı'ndaki Filtre Tablosu Satırları sayfasına karşılık gelir. Bu sayfayı her tür yayın için statik satır filtreleri eklemek, düzenlemek ve silmek, ayrıca birleştirme yayınları için parametrizeli satır filtreleri eklemek, düzenlemek ve silmek için kullanın.

  • Snapshot sayfası, snapshot'un formatını ve konumunu, snapshot'un sıkıştırılıp sıkıştırılmayacağını ve snapshot uygulanmadan önce ve sonra çalıştırılacak scriptleri belirlemenize olanak tanır.

  • FTP Snapshot sayfası (snapshot ve işlemsel yayınlar ile SQL Server 2005'ten önceki sürümleri çalıştıran Yayımcılar için birleştirme yayınları için), Abonelerin anlık görüntü dosyalarını Dosya Aktarım Protokolü (FTP) üzerinden indirip indiremeyeceklerini belirtmenize olanak tanır.

  • FTP Snapshot ve İnternet sayfası (SQL Server veya daha sonrasını çalıştıran Yayıncılardan yayınları birleştirmek için), Abonelerin FTP üzerinden snapshot dosyalarını indirip indiremeyeceğini ve abonelerin abonelikleri HTTPS üzerinden senkronize edip edemeyeceğini belirtmenize olanak tanır.

  • Abonelik Seçenekleri sayfası, tüm aboneliklere uygulanan bir dizi seçeneği belirlemenize olanak tanır. Seçenekler, yayın türüne göre değişir.

  • Yayın Erişim Listesi sayfası, bir yayına hangi girişlerin ve grupların erişebileceğini belirtmenize olanak tanır.

  • Ajan Güvenliği sayfası, aşağıdaki ajanların çalıştığı hesapların ayarlarına erişmenizi ve bir replikasyon topolojisinde bilgisayarlara bağlantı kurmanızı sağlar: tüm yayınlar için Snapshot Agent; tüm işlem amaçlı yayınlar için Log Reader Agent; ve kuyruklu güncellemeler için işlem yayınları için Queue Reader Agent.

  • Veri Bölümleri sayfası (SQL Server 2005 veya sonraki sürümleri çalıştıran Yayımcılardaki birleştirme yayınları için), parametreli filtrelere sahip yayınlara abone olan abonelerin, bir anlık görüntü mevcut değilse böyle bir anlık görüntü isteyip isteyemeyeceğini belirtmenize olanak tanır. Ayrıca, bir veya daha fazla disk bölümü için anlık görüntüleri bir kez ya da yinelenen bir zamanlamayla oluşturmanıza olanak tanır.

Management Studio'da yayın özelliklerini görüntülemek ve değiştirmek için

  1. Management Studio'da Publisher'a bağlanın ve sunucu düğümünü genişletin.

  2. Çoğaltma klasörünü genişletin ve ardından Yerel Yayınlar klasörünü genişletin.

  3. Bir yayına sağ tıklayın, ardından Özellikler'e tıklayın.

  4. Gerekirse tüm özellikleri değiştirin ve tamam'a tıklayın.

Replikasyon Monitörü'nde yayın özelliklerini görüntülemek ve değiştirmek için

  1. Replikasyon Monitörünün sol panelinde bir Publisher grubunu genişletin ve ardından bir Publisher'ı genişletin.

  2. Bir yayına sağ tıklayın, ardından Özellikler'e tıklayın.

  3. Gerekirse tüm özellikleri değiştirin ve tamam'a tıklayın.

Transact-SQL Kullanımı

Yayınlar değiştirilebilir ve özellikleri, çoğaltma saklı yordamları kullanılarak program aracılığıyla döndürülebilir. Kullandığınız saklanan prosedürler, yayın türüne bağlıdır.

Bir anlık görüntünün veya işlemsel yayının özelliklerini görüntülemek için

  1. sp_helppublication uygulayın, @publication parametresi için yayın adını belirtin. Bu parametri belirtmezseniz, Publisher'daki tüm yayınlar hakkında bilgiler geri gönderilir.

Bir anlık görüntünün veya işlemsel yayının özelliklerini değiştirmek için

  1. sp_changepublication çalıştırın, @property parametresinde değişecek yayın özelliğini ve @value parametresinde bu özelliğin yeni değerini belirtin.

    Uyarı

    Eğer değişiklik yeni bir anlık görüntünün oluşturulmasını gerektirecekse, @force_invalidate_snapshot için ayrıca 1 değerini belirtmeniz gerekir; değişiklik Abonelerin yeniden ilklendirilmesini gerektirecekse, @force_reinit_subscription için 1 değerini belirtmeniz gerekir. Değiştirildiğinde yeni bir anlık görüntü veya yeniden başlatma gerektiren özellikler hakkında daha fazla bilgi için Yayın Değişikliği ve Makale Özellikleri bölümlerine bakınız.

Birleştirme yayınının özelliklerini görüntülemek için

  1. sp_helpmergepublication uygulayın, @publication parametresi için yayın adını belirtin. Bu parametri belirtmezseniz, Publisher'daki tüm yayınlar hakkında bilgiler geri gönderilir.

Birleştirme yayınının özelliklerini değiştirmek için

  1. sp_changemergepublication çalıştırın ve @property parametresinde değiştirilen yayın özelliğini ve @value parametresinde bu özelliğin yeni değerini belirtin.

    Uyarı

    Değişiklik yeni bir anlık görüntünün oluşturulmasını gerektirecekse, @force_invalidate_snapshot için 1 değerini de belirtmeniz gerekir; ayrıca değişiklik Abonelerin yeniden ilklendirilmesini gerektirecekse, @force_reinit_subscription için 1 değeri belirtmeniz gerekir. Değiştirildiklerinde yeni bir anlık görüntü veya yeniden ilklendirme gerektiren özellikler hakkında daha fazla bilgi için bkz. Yayın ve Makale Özelliklerini Değiştirme.

Bir anlık görüntünün özelliklerini görüntülemek için

  1. sp_helppublication_snapshot uygulamasını uygulayın ve @publication parametresi için yayın adını belirtin.

Bir anlık görüntünün özelliklerini değiştirmek için

  1. sp_changepublication_snapshot çalıştırın, uygun anlık görüntü parametreleri için bir veya daha fazla yeni anlık görüntü özelliği belirtin.

Örnekler (Transact-SQL)

Bu işlemsel çoğaltma örneği, yayının özelliklerini döndürür.

DECLARE @myTranPub AS sysname
SET @myTranPub = N'AdvWorksProductTran' 

USE [AdventureWorks2022]
EXEC sp_helppublication @publication = @myTranPub
GO

Bu işlemsel çoğaltma örneği, yayın için şema çoğaltmasını devre dışı bırakır.

DECLARE @publication AS sysname
SET @publication = N'AdvWorksProductTran' 

-- Turn off DDL replication for the transactional publication.
USE [AdventureWorks2022]
EXEC sp_changepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0
GO

Bu birleştirme çoğaltma örneği, yayının özelliklerini geri getirir.

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2022]
EXEC sp_helpmergepublication @publication = @publication;
GO

Bu birleştirme çoğaltma örneği, yayın için şema çoğaltmasını devre dışı bırakır.

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge'; 

-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
EXEC sp_changemergepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0,
  @force_invalidate_snapshot = 0, 
  @force_reinit_subscription = 0;
GO

Çoğaltma Yönetimi Nesnelerini (RMO) Kullanma

Yayınları değiştirebilir ve Replikasyon Yönetim Nesneleri (RMO) kullanarak programlayıcı olarak özelliklerine erişebilirsiniz. Yayın özelliklerini görüntülemek veya değiştirmek için kullandığınız RMO sınıfları, yayın türüne bağlıdır.

Bir anlık görüntünün veya işlemsel yayının özelliklerini görüntülemek veya değiştirmek için

  1. sınıfını kullanarak ServerConnection Publisher'a bir bağlantı oluşturun.

  2. TransPublication sınıfının bir örneğini oluşturun, yayın için Name ve DatabaseName özelliklerini ayarlayın ve ConnectionContext özelliğini 1. adımda oluşturulan bağlantıya ayarlayın.

  3. nesnesinin LoadProperties özelliklerini almak için yöntemini çağırın. Bu yöntem false döndürürse, 2. adımdaki yayın özellikleri yanlış tanımlanmıştır veya yayın mevcut değildir.

  4. (İsteğe bağlı) Özellikleri değiştirmek için, ayarlanabilir özelliklerden biri veya birkaçına yeni bir değer ayarlayın. Microsoft Visual C#'ta & ve Microsoft Visual Basic'te And olan mantıksal ve işlecini, verilen bir değerinin özelliği için ayarlanmış olup olmadığını belirlemek üzere kullanın. Attributes özelliğinin PublicationAttributes değerlerini değiştirmek için kapsayıcı mantıksal OR işleçini (Visual C#'ta | ve Visual Basic'te Or) ve dışlayan mantıksal OR işleçini (Visual C#'ta ^ ve Visual Basic'te Xor) kullanın.

  5. (İsteğe bağlı) CachePropertyChanges için true değerini belirttiyseniz, değişiklikleri sunucuya işlemek için CommitPropertyChanges yöntemini çağırın. için CachePropertyChanges değerini belirttiyseniz (varsayılan), değişiklikler hemen sunucuya gönderilir.

Bir birleştirme yayınının özelliklerini görüntülemek veya değiştirmek için

  1. sınıfını kullanarak ServerConnection Publisher'a bir bağlantı oluşturun.

  2. MergePublication sınıfının bir örneğini oluşturun, yayın için Name ve DatabaseName özelliklerini ayarlayın ve ConnectionContext özelliğini 1. adımda oluşturulan bağlantıya ayarlayın.

  3. nesnesinin LoadProperties özelliklerini almak için yöntemini çağırın. Bu yöntem false döndürürse, 2. adımdaki yayın özellikleri yanlış tanımlanmıştır veya yayın mevcut değildir.

  4. (İsteğe bağlı) Özellikleri değiştirmek için, ayarlanabilir özelliklerden biri veya birkaçına yeni bir değer ayarlayın. Belirli bir değerinin özelliği için ayarlanıp ayarlanmadığını belirlemek üzere mantıksal AND işleçini (Visual C# dilinde & ve Visual Basic'te And) kullanın. Attributes özelliğinin PublicationAttributes değerlerini değiştirmek için kapsayıcı mantıksal OR işleçini (Visual C#'ta | ve Visual Basic'te Or) ve dışlayan mantıksal OR işleçini (Visual C#'ta ^ ve Visual Basic'te Xor) kullanın.

  5. (İsteğe bağlı) CachePropertyChanges için true değerini belirttiyseniz, değişiklikleri sunucuya işlemek için CommitPropertyChanges yöntemini çağırın. için CachePropertyChanges değerini belirttiyseniz (varsayılan), değişiklikler hemen sunucuya gönderilir.

Örnekler (RMO)

Bu örnek, işlemsel bir yayın için yayın niteliklerini belirler. Değişiklikler, sunucuya açıkça gönderilene kadar önbelleklenir.

// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2022";

TransPublication publication;

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

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

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

    // Explicitly enable caching of property changes on this object.
    publication.CachePropertyChanges = true;

    // If we can't get the properties for this publication, 
    // throw an application exception.
    if (publication.LoadProperties())
    {
        // Enable support for push subscriptions and disable support 
        // for pull subscriptions.
        if ((publication.Attributes & PublicationAttributes.AllowPull) != 0)
        {
            publication.Attributes ^= PublicationAttributes.AllowPull;
        }
        if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
        {
            publication.Attributes |= PublicationAttributes.AllowPush;
        }

        // Send changes to the server.
        publication.CommitPropertyChanges();
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Settings could not be retrieved for the publication. " +
            "Ensure that the publication {0} exists on {1}.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Do error handling here.
    throw new ApplicationException(
        "The publication property could not be changed.", ex);
}
finally
{
    conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2022"

Dim publication As TransPublication

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

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

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

    ' Explicitly enable caching of property changes on this object.
    publication.CachePropertyChanges = True

    ' If we can't get the properties for this publication, 
    ' throw an application exception.
    If publication.LoadProperties() Then
        ' Enable support for push subscriptions and disable support 
        ' for pull subscriptions.
        If (publication.Attributes And PublicationAttributes.AllowPull) <> 0 Then
            publication.Attributes = publication.Attributes _
            Xor PublicationAttributes.AllowPull
        End If
        If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
            publication.Attributes = publication.Attributes _
            Or PublicationAttributes.AllowPush
        End If

        ' Send changes to the server.
        publication.CommitPropertyChanges()
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException( _
        "The publication property could not be changed.", ex)
Finally
    conn.Disconnect()
End Try

Bu örnek, birleştirme yayını için DDL çoğaltmasını devre dışı bırakır.

// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2022";

MergePublication publication;

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

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

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


    // If we can't get the properties for this merge publication, then throw an application exception.
    if (publication.LoadProperties())
    {
        // If DDL replication is currently enabled, disable it.
        if (publication.ReplicateDdl == DdlReplicationOptions.All)
        {
            publication.ReplicateDdl = DdlReplicationOptions.None;
        }
        else
        {
            publication.ReplicateDdl = DdlReplicationOptions.All;
        }
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Settings could not be retrieved for the publication. " +
            "Ensure that the publication {0} exists on {1}.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Do error handling here.
    throw new ApplicationException(
        "The publication property could not be changed.", ex);
}
finally
{
    conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2022"

Dim publication As MergePublication

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

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

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

    ' If we can't get the properties for this merge publication, then throw an application exception.
    If publication.LoadProperties() Then
        ' If DDL replication is currently enabled, disable it.
        If publication.ReplicateDdl = DdlReplicationOptions.All Then
            publication.ReplicateDdl = DdlReplicationOptions.None
        Else
            publication.ReplicateDdl = DdlReplicationOptions.All
        End If
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException( _
        "The publication property could not be changed.", ex)
Finally
    conn.Disconnect()
End Try