Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Yönetilen Örneği
Çoğaltma Yönetim Nesneleri (RMO), SQL Server için çoğaltma işlevlerini kapsülleyen yönetilen bir kod derlemesidir. RMO, Microsoft.SqlServer.Replication ad alanı tarafından uygulanır.
Aşağıdaki bölümlerdeki konular, çoğaltma görevlerini program aracılığıyla denetlemek için RMO'yu nasıl kullanabileceğinizi açıklar:
Dağıtım Yapılandırma
Bu bölümdeki konular, yayımlamayı ve dağıtımı yapılandırmak için RMO'yu kullanmayı gösterir.
yayın oluşturma
Bu bölümdeki konular, yayınları ve makaleleri oluşturmak, silmek ve değiştirmek için RMO'yu kullanmayı gösterir.
yayınlara abone
Bu bölümdeki konular, abonelikleri oluşturmak, silmek ve değiştirmek için RMO'yu kullanmayı gösterir.
Çoğaltma Topolojisi Güvenliğini
Bu bölümdeki konular, güvenlik ayarlarını görüntülemek ve değiştirmek için RMO'yu kullanmayı gösterir.
Abonelikleri Eşitleme (Çoğaltma)
Bu bölümdeki konular, aboneliklerin nasıl eşitleneceğini gösterir.
İzleme Çoğaltması
Bu bölümdeki konular, bir çoğaltma topolojisini program aracılığıyla izlemeyi gösterir.
RMO Programlamaya Giriş
RMO, SQL Server çoğaltmasının tüm yönlerini programlamak için tasarlanmıştır. RMO ad alanı Microsoft.SqlServer.Replicationve bir Microsoft .NET Framework derlemesi olan Microsoft.SqlServer.Rmo.dlltarafından uygulanır. Microsoft.SqlServer.Replication ad alanına da ait olan Microsoft.SqlServer.Replication.dll derlemesi, çeşitli çoğaltma aracılarını (Anlık Görüntü Aracısı, Dağıtım Aracısı ve Birleştirme Aracısı) programlamak için yönetilen bir kod arabirimi uygular. Sınıflarına abonelikleri eşitlemek için RMO'dan erişilebilir. Microsoft.SqlServer.Replication.BusinessLogicSupport.dll derlemesi tarafından uygulanan Microsoft.SqlServer.Replication.BusinessLogicSupport ad alanında sınıflar, birleştirme çoğaltması için özel iş mantığı oluşturmak için kullanılır. Bu derleme RMO'dan bağımsızdır.
RMO Tabanlı Uygulamaları Dağıtma
RMO, SQL Server Compact dışındaki tüm SQL Server sürümlerinde bulunan çoğaltma bileşenlerine ve istemci bağlantı bileşenlerine bağlıdır. RMO tabanlı bir uygulama dağıtmak için, uygulamanın çalıştırılacağı bilgisayara çoğaltma bileşenlerini ve istemci bağlantı bileşenlerini içeren bir SQL Server sürümü yüklemeniz gerekir.
RMO'yu Kullanmaya Başlama
Bu bölümde, Microsoft Visual Studio kullanarak basit bir RMO projesinin nasıl başlatıldığı açıklanmaktadır.
Yeni bir Microsoft Visual C# projesi oluşturmak için
Visual Studio'yu başlatın.
Dosya menüsündeYeniProje'ye tıklayın. Yeni Projeiletişim kutusu görüntülenir. Proje Türleri iletişim kutusunda Visual C# Projeleriseçin. Şablonları bölmesinde Windows Applicationöğesini seçin. (İsteğe bağlı) Adıalanına yeni uygulamanın adını yazın.
Visual C# Windows şablonunu yüklemek için Tamam
'a tıklayın. Project menüsünde Başvuru Ekle öğesiniseçin. Başvuru Ekle iletişim kutusu görüntülenir. .NET sekmesindeki listeden aşağıdaki derlemeleri seçin ve Tamamöğesine tıklayın.
Microsoft.SqlServer.Replication .NET Programlama Arabirimi
Microsoft.SqlServer.ConnectionInfo
Çoğaltma Aracısı Kitaplığı
Not
Birden fazla dosya seçmek için CTRL tuşunu kullanın.
(İsteğe bağlı) 6. adımı yineleyin. Gözat sekmesine tıklayın, sürücü>:\Program Files\Microsoft SQL Server\nnn\COM, select Microsoft.SqlServer.Replication.BusinessLogicSupport.dlladresine gidin < ve tamam'a tıklayın.
Görünüm menüsünde Kodöğesine tıklayın. Kodda, ad alanı deyiminden önce, RMO ad alanları içindeki türleri niteleyen deyimlerini kullanarak aşağıdaki
yazın: // These namespaces are required. using Microsoft.SqlServer.Replication; using Microsoft.SqlServer.Management.Common; // This namespace is only used when creating custom business // logic for merge replication. using Microsoft.SqlServer.Replication.BusinessLogicSupport;
Yeni bir Microsoft Visual Basic .NET projesi oluşturmak için
Visual Studio'yu başlatın.
Dosya menüsünde yeni projeseçin. Yeni Proje iletişim kutusu görüntülenir. Proje Türleri bölmesinde visual basic
öğesini seçin. Şablonlar bölmesinde windows uygulaması öğesini seçin. (İsteğe bağlı) Adı kutusuna yeni uygulamanın adını yazın.
Visual Basic Windows şablonunu yüklemek için Tamam'a tıklayın.
Project menüsünde Başvuru Ekleseçin. Başvuru Ekle iletişim kutusu görüntülenir. .NET sekmesindeki listeden aşağıdaki derlemeleri seçin ve Tamamöğesine tıklayın.
Microsoft.SqlServer.Replication .NET Programlama Arabirimi
Microsoft.SqlServer.ConnectionInfo
Çoğaltma Aracısı Kitaplığı
Not
Birden fazla dosya seçmek için CTRL tuşunu kullanın.
(İsteğe bağlı) 6. adımı yineleyin. Gözat sekmesine tıklayın, sürücü>:\Program Files\Microsoft SQL Server\nnn\COM, select Microsoft.SqlServer.Replication.BusinessLogicSupport.dlladresine gidin < ve tamam'a tıklayın.
Görünüm menüsünde Kodöğesine tıklayın. Kodda, bildirimlerden önce aşağıdaki imports deyimlerini yazarak RMO ad alanları içindeki türleri niteler.
' These namespaces are required. Imports Microsoft.SqlServer.Replication Imports Microsoft.SqlServer.Management.Common ' This namespace is only used when creating custom business ' logic for merge replication. Imports Microsoft.SqlServer.Replication.BusinessLogicSupport
Çoğaltma Sunucusuna Bağlanma
RMO programlama nesneleri, SQL Server örneğine bağlantının ServerConnection sınıfının bir örneği kullanılarak yapılmasını gerektirir. Sunucuya bu bağlantı tüm RMO programlama nesnelerinden bağımsız olarak yapılır. Daha sonra örnek oluşturma sırasında veya nesnenin P:Microsoft.SqlServer.Replication.ReplicationObject.ConnectionContext özelliğine atanarak RMO nesnesine geçirilir. Bu şekilde, bir RMO programlama nesnesi ve bağlantı nesnesi örnekleri ayrı ayrı oluşturulup yönetilebilir ve tek bir bağlantı nesnesi birden çok RMO programlama nesnesiyle yeniden kullanılabilir. Aşağıdaki kurallar bir çoğaltma sunucusuna bağlantılar için geçerlidir:
Bağlantının tüm özellikleri belirli bir ServerConnection nesnesi için tanımlanır.
SQL Server'ın her örneğine yönelik bir bağlantının kendi ServerConnection nesnesi olmalıdır.
ServerConnection nesnesi, sunucuda oluşturulan veya erişilen RMO programlama nesnesinin
P:Microsoft.SqlServer.Replication.ReplicationObject.ConnectionContextözelliğine atanır.Connect yöntemi sunucu bağlantısını açar. Bu yöntem, bağlantıyı kullanarak herhangi bir RMO programlama nesnesinde sunucuya erişen yöntemleri çağırmadan önce çağrılmalıdır.
RMO ve SQL Server Yönetim Nesneleri (SMO) sql server bağlantıları için ServerConnection sınıfını kullandığından, aynı bağlantı hem RMO hem de SMO nesneleri tarafından kullanılabilir. Daha fazla bilgi için bkz. SQL Server örneğine bağlanma.
Bağlantıyı kurmak ve sunucuda başarıyla oturum açmak için tüm kimlik doğrulama bilgileri ServerConnection nesnesinde sağlanır.
Windows Kimlik Doğrulaması varsayılandır. SQL Server Kimlik Doğrulamasını kullanmak için LoginSecureyanlış olarak ayarlanmalıdır ve Login ve Password geçerli bir SQL Server oturum açma ve parolası olarak ayarlanmalıdır. Güvenlik kimlik bilgileri her zaman güvenli bir şekilde depolanmalı ve işlenmeli ve mümkün olduğunda çalışma zamanında sağlanmalıdır.
Çok iş parçacıklı uygulamalar için her iş parçacığında ayrı bir ServerConnection nesnesi kullanılmalıdır.
RMO nesneleri tarafından kullanılan etkin sunucu bağlantılarını kapatmak için Disconnect nesnesinde ServerConnection yöntemini çağırın.
RMO Özelliklerini Ayarlama
RMO programlama nesnelerinin özellikleri, sunucudaki bu çoğaltma nesnelerinin özelliklerini temsil eder. Sunucuda yeni çoğaltma nesneleri oluştururken, bu nesneleri tanımlamak için RMO özellikleri kullanılır. Mevcut nesneler için RMO özellikleri, yalnızca yazılabilir veya ayarlanabilir özellikler için değiştirilebilen mevcut nesnenin özelliklerini temsil eder. Özellikler yeni nesnelerde veya mevcut nesnelerde ayarlanabilir.
Yeni Çoğaltma Nesnelerinin Özelliklerini Ayarlama
Sunucuda yeni bir çoğaltma nesnesi oluştururken, nesnenin Oluştur yöntemini çağırmadan önce tüm gerekli özellikleri belirtmeniz gerekir. Yeni bir çoğaltma nesnesinin özelliklerini ayarlama hakkında daha fazla bilgi için bkz. Yayımlama ve DağıtımYapılandırma
Varolan Çoğaltma Nesnelerinin Özelliklerini Ayarlama
Sunucuda bulunan çoğaltma nesneleri için, nesneye bağlı olarak, RMO özelliklerinin bir kısmını veya tümünü değiştirme özelliğini destekleyebileceğinden. Yalnızca yazılabilir veya ayarlanabilir özellikler değiştirilebilir. Özelliklerin değiştirilebilmesi için Load veya M:Microsoft.SqlServer.Replication.ReplicationObject.LoadProperties yöntemi, geçerli özellikleri sunucudan almak için çağrılmalıdır. Bu yöntemleri çağırmak, var olan bir nesnenin değiştirildiğini gösterir.
Varsayılan olarak, nesne özelliklerini değiştirirken, RMO bu değişiklikleri kullanılmakta olan ServerConnection yürütme moduna göre sunucuya işler.
P:Microsoft.SqlServer.Replication.ReplicationObject.IsExistingObject yöntemi, özelliklerini almaya veya değiştirmeye çalışmadan önce bir nesnenin sunucuda var olduğunu doğrulamak için kullanılabilir. Çoğaltma nesnesinin özelliklerini değiştirme hakkında daha fazla bilgi için bkz. Dağıtımcı ve Yayımcı Özelliklerini Görüntüleme ve Değiştirme.
Not
Birden çok RMO istemcisi veya bir RMO programlama nesnesinin birden çok örneği sunucuda aynı çoğaltma nesnesine eriştiğinde, özellikleri sunucudaki nesnenin geçerli durumuna göre güncelleştirmek için RMO nesnesinin Yenileme yöntemi çağrılabilir.
Özellik Değişikliklerini Önbelleğe Alma
SqlExecutionModes özelliği CaptureSql olarak ayarlandığında, RMO tarafından oluşturulan tüm Transact-SQL deyimleri, yürütme yöntemlerinden biri kullanılarak tek bir toplu işte el ile yürütülebilmeleri için yakalanır. RMO, nesnenin M:Microsoft.SqlServer.Replication.ReplicationObject.CommitPropertyChanges yöntemini kullanarak özellik değişikliklerini önbelleğe almanızı ve tek bir toplu işlemde birlikte işlemenizi sağlar. Özellik değişikliklerini önbelleğe almak için, nesnesinin
Önemli
ServerConnection sınıfı özellikleri ayarlarken açık işlemleri bildirmeyi desteklese de, bu tür işlemler iç çoğaltma işlemlerini etkileyebilir, beklenmeyen sonuçlar üretebilir ve RMO ile kullanılmamalıdır.
RMO Bileşenleri için TLS 1.2 Desteğini Etkinleştirme
Windows 2012 ve daha düşük sürümlerde RMO Bileşenleri için TLS1.2 desteği, güncelleştirme KB 3140245yüklenerek ve makalede belirtildiği gibi kayıt defteri anahtarları oluşturularak etkinleştirilebilir. Windows 2012 R2 ve sonraki sürümlerinde, yalnızca yukarıdaki makalede belirtildiği gibi kayıt defteri anahtarlarının oluşturulması gerekir.
Örnek
Bu örnek, özellik değişikliklerinin önbelleğe alınmasını gösterir. bir işlem yayınının özniteliklerinde yapılan değişiklikler açıkça sunucuya gönderilene kadar önbelleğe alınır.
// 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();
}
İlgili içerik
- Çoğaltma Sistemi Saklı Yordamları Kavramları
- çoğaltma programlama kavramlarını