如何:設定發行和散發 (RMO 程式設計)
您可以使用「複寫管理物件」(RMO) 以程式設計的方式設定複寫發行和散發。
在單一伺服器上設定發行和散發
使用 ServerConnection 類別建立與伺服器的連接。
建立 ReplicationServer 類別的執行個體。傳遞步驟 1 的 ServerConnection。
建立 DistributionDatabase 類別的執行個體。
將 Name 屬性設定為資料庫名稱,並將 ConnectionContext 屬性設定為步驟 1 中的 ServerConnection。
呼叫 InstallDistributor 方法來安裝散發者。傳遞步驟 3 的 DistributionDatabase 物件。
建立 DistributionPublisher 類別的執行個體。
設定 DistributionPublisher 的以下屬性:
Name - 發行者的名稱。
ConnectionContext - 步驟 1 中的 ServerConnection。
DistributionDatabase - 步驟 5 中建立的資料庫名稱。
WorkingDirectory - 用於存取快照集檔案的共用。
PublisherSecurity - 當連接到發行者時使用的安全性模式。建議使用 WindowsAuthentication。
呼叫 Create 方法。
使用遠端散發者設定發行和散發
使用 ServerConnection 類別建立與遠端散發者伺服器的連接。
建立 ReplicationServer 類別的執行個體。傳遞步驟 1 的 ServerConnection。
建立 DistributionDatabase 類別的執行個體。
將 Name 屬性設定為資料庫名稱,並將 ConnectionContext 屬性設定為步驟 1 中的 ServerConnection。
呼叫 InstallDistributor 方法來安裝散發者。指定安全密碼 (連接到遠端散發者時由發行者使用) 及步驟 3 中的 DistributionDatabase 物件。如需詳細資訊,請參閱<保護散發者>。
安全性注意事項 可能的話,系統會在執行階段提示使用者輸入安全性認證。如果您必須儲存認證,請使用 Microsoft Windows .NET Framework 提供的<密碼編譯服務>(英文)。
建立 DistributionPublisher 類別的執行個體。
設定 DistributionPublisher 的以下屬性:
Name - 本機發行者伺服器的名稱。
ConnectionContext - 步驟 1 中的 ServerConnection。
DistributionDatabase - 步驟 5 中建立的資料庫名稱。
WorkingDirectory - 用於存取快照集檔案的共用。
PublisherSecurity - 當連接到發行者時使用的安全性模式。建議使用 WindowsAuthentication。
呼叫 Create 方法。
使用 ServerConnection 類別建立與本機發行者伺服器的連接。
建立 ReplicationServer 類別的執行個體。傳遞步驟 9 的 ServerConnection。
呼叫 InstallDistributor 方法。傳遞遠端散發者的名稱以及步驟 5 中指定之遠端散發者的密碼。
安全性注意事項 可能的話,系統會在執行階段提示使用者輸入安全性認證。如果您必須儲存認證,請使用 Windows .NET Framework 提供的<密碼編譯服務>(英文)。
範例
下列範例會將伺服器設定為具有本機散發者的發行者。
// Set the server and database names
string distributionDbName = "distribution";
string publisherName = publisherInstance;
string publicationDbName = "AdventureWorks2008R2";
DistributionDatabase distributionDb;
ReplicationServer distributor;
DistributionPublisher publisher;
ReplicationDatabase publicationDb;
// Create a connection to the server using Windows Authentication.
ServerConnection conn = new ServerConnection(publisherName);
try
{
// Connect to the server acting as the Distributor
// and local Publisher.
conn.Connect();
// Define the distribution database at the Distributor,
// but do not create it now.
distributionDb = new DistributionDatabase(distributionDbName, conn);
distributionDb.MaxDistributionRetention = 96;
distributionDb.HistoryRetention = 120;
// Set the Distributor properties and install the Distributor.
// This also creates the specified distribution database.
distributor = new ReplicationServer(conn);
distributor.InstallDistributor((string)null, distributionDb);
// Set the Publisher properties and install the Publisher.
publisher = new DistributionPublisher(publisherName, conn);
publisher.DistributionDatabase = distributionDb.Name;
publisher.WorkingDirectory = @"\\" + publisherName + @"\repldata";
publisher.PublisherSecurity.WindowsAuthentication = true;
publisher.Create();
// Enable AdventureWorks as a publication database.
publicationDb = new ReplicationDatabase(publicationDbName, conn);
publicationDb.EnabledTransPublishing = true;
publicationDb.EnabledMergePublishing = true;
}
catch (Exception ex)
{
// Implement appropriate error handling here.
throw new ApplicationException("An error occured when installing distribution and publishing.", ex);
}
finally
{
conn.Disconnect();
}
' Set the server and database names
Dim distributionDbName As String = "distribution"
Dim publisherName As String = publisherInstance
Dim publicationDbName As String = "AdventureWorks2008R2"
Dim distributionDb As DistributionDatabase
Dim distributor As ReplicationServer
Dim publisher As DistributionPublisher
Dim publicationDb As ReplicationDatabase
' Create a connection to the server using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(publisherName)
Try
' Connect to the server acting as the Distributor
' and local Publisher.
conn.Connect()
' Define the distribution database at the Distributor,
' but do not create it now.
distributionDb = New DistributionDatabase(distributionDbName, conn)
distributionDb.MaxDistributionRetention = 96
distributionDb.HistoryRetention = 120
' Set the Distributor properties and install the Distributor.
' This also creates the specified distribution database.
distributor = New ReplicationServer(conn)
distributor.InstallDistributor((CType(Nothing, String)), distributionDb)
' Set the Publisher properties and install the Publisher.
publisher = New DistributionPublisher(publisherName, conn)
publisher.DistributionDatabase = distributionDb.Name
publisher.WorkingDirectory = "\\" + publisherName + "\repldata"
publisher.PublisherSecurity.WindowsAuthentication = True
publisher.Create()
' Enable AdventureWorks as a publication database.
publicationDb = New ReplicationDatabase(publicationDbName, conn)
publicationDb.EnabledTransPublishing = True
publicationDb.EnabledMergePublishing = True
Catch ex As Exception
' Implement appropriate error handling here.
Throw New ApplicationException("An error occured when installing distribution and publishing.", ex)
Finally
conn.Disconnect()
End Try