如何:設定發行和散發 (RMO 程式設計)

您可以使用「複寫管理物件」(RMO) 以程式設計的方式設定複寫發行和散發。

在單一伺服器上設定發行和散發

  1. 使用 ServerConnection 類別建立與伺服器的連接。

  2. 建立 ReplicationServer 類別的執行個體。傳遞步驟 1 的 ServerConnection

  3. 建立 DistributionDatabase 類別的執行個體。

  4. Name 屬性設定為資料庫名稱,並將 ConnectionContext 屬性設定為步驟 1 中的 ServerConnection

  5. 呼叫 InstallDistributor 方法來安裝散發者。傳遞步驟 3 的 DistributionDatabase 物件。

  6. 建立 DistributionPublisher 類別的執行個體。

  7. 設定 DistributionPublisher 的以下屬性:

  8. 呼叫 Create 方法。

使用遠端散發者設定發行和散發

  1. 使用 ServerConnection 類別建立與遠端散發者伺服器的連接。

  2. 建立 ReplicationServer 類別的執行個體。傳遞步驟 1 的 ServerConnection

  3. 建立 DistributionDatabase 類別的執行個體。

  4. Name 屬性設定為資料庫名稱,並將 ConnectionContext 屬性設定為步驟 1 中的 ServerConnection

  5. 呼叫 InstallDistributor 方法來安裝散發者。指定安全密碼 (連接到遠端散發者時由發行者使用) 及步驟 3 中的 DistributionDatabase 物件。如需詳細資訊,請參閱<保護散發者>。

    安全性注意事項安全性注意事項

    可能的話,系統會在執行階段提示使用者輸入安全性認證。如果您必須儲存認證,請使用 Microsoft Windows .NET Framework 提供的<密碼編譯服務>(英文)。

  6. 建立 DistributionPublisher 類別的執行個體。

  7. 設定 DistributionPublisher 的以下屬性:

  8. 呼叫 Create 方法。

  9. 使用 ServerConnection 類別建立與本機發行者伺服器的連接。

  10. 建立 ReplicationServer 類別的執行個體。傳遞步驟 9 的 ServerConnection

  11. 呼叫 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