Anzeigen und Ändern der Verteiler- und Verlegereigenschaften

In diesem Thema wird beschrieben, wie die Distributor-Eigenschaft und die Publisher-Eigenschaft in SQL Server 2012 mit SQL Server Management Studio, Transact-SQL oder Replikationsverwaltungsobjekten (RMO) angezeigt und geändert werden.

In diesem Thema

  • Vorbereitungen:

    Empfehlungen

    Sicherheit

  • So können Sie Verteiler- und Verlegereigenschaften anzeigen und ändern mit:

    SQL Server Management Studio

    Transact-SQL

    Replikationsverwaltungsobjekte (RMO)

Vorbereitungen

Empfehlungen

  • Bei Verlegern, auf denen eine niedrigere Versionen als Microsoft SQL Server 2005 ausgeführt wird, kann ein Benutzer der festen Serverrolle sysadmin auf der Seite Abonnenten Abonnenten registrieren. Ab SQL Server 2005 müssen Abonnenten für die Replikation nicht mehr explizit registriert werden.

Sicherheit

Die Benutzer sollten nach Möglichkeit während der Laufzeit zur Eingabe von Sicherheitsanmeldeinformationen aufgefordert werden.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von SQL Server Management Studio

So zeigen Sie die Verteilereigenschaften an oder ändern diese

  1. Stellen Sie in SQL Server Management Studio eine Verbindung mit dem Verteiler her, und erweitern Sie dann den Serverknoten.

  2. Klicken Sie mit der rechten Maustaste auf den Ordner Replikation, und klicken Sie dann auf Verteilereigenschaften.

  3. Sie können die Eigenschaften im Dialogfeld Verteilereigenschaften - <Verteiler> anzeigen und ändern.

    • Um die Eigenschaften einer Verteilungsdatenbank anzuzeigen und zu ändern, klicken Sie auf der Seite Allgemein desDialogfelds auf die Schaltfläche Eigenschaften (...) der Datenbank.

    • Um die mit dem Verteiler verbundenen Verlegereigenschaften anzuzeigen und zu ändern, klicken Sie auf der Seite Verleger des Dialogfelds auf die Schaltfläche Eigenschaften (...) des Verlegers.

    • Klicken Sie auf der Seite Allgemein des Dialogfelds auf Profilstandards, um auf die Profile der Replikations-Agents zuzugreifen. Weitere Informationen finden Sie unter Replikations-Agent-Profile.

    • Um das Kennwort des zum Ausführen von administrativen gespeicherten Prozeduren auf dem Verleger und Aktualisieren von Informationen auf dem Verteiler verwendeten Kontos zu ändern, geben Sie auf der Seite Verleger des Dialogfelds in den Feldern Kennwort und Kennwort bestätigen ein neues Kennwort ein. Weitere Informationen finden Sie unter Schützen des Verteilers.

  4. Ändern Sie gegebenenfalls Eigenschaften, und klicken Sie auf OK.

So zeigen Sie die Verlegereigenschaften an oder ändern diese

  1. Stellen Sie in SQL Server Management Studio eine Verbindung mit dem Verleger her, und erweitern Sie dann den Serverknoten.

  2. Klicken Sie mit der rechten Maustaste auf den Ordner Replikation, und klicken Sie dann auf Verlegereigenschaften.

  3. Sie können Eigenschaften im Dialogfeld Verlegereigenschaften - <Verleger> anzeigen und ändern.

    • Ein Benutzer der festen Serverrolle sysadmin kann Datenbanken für die Replikation auf der Seite Veröffentlichungsdatenbanken aktivieren. Durch das Aktivieren wird eine Datenbank nicht veröffentlicht, sondern Benutzer der festen Datenbankrolle db_owner für diese Datenbank können dann eine oder mehrere Veröffentlichungen in der Datenbank erstellen.
  4. Ändern Sie gegebenenfalls Eigenschaften, und klicken Sie auf OK.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von Transact-SQL

Die Verleger- und Verteilereigenschaften können mit gespeicherten Replikationsprozeduren programmgesteuert angezeigt werden.

So zeigen Sie Verleger- und Verteilerdatenbankeigenschaften an

  1. Führen Sie sp_helpdistributor aus, um Informationen über Verteiler, Verteilungsdatenbank und Arbeitsverzeichnis zurückzugeben.

  2. Führen Sie sp_helpdistributiondb aus, um die Eigenschaften einer angegebenen Verteilungsdatenbank zurückzugeben.

So ändern Sie Verleger- und Verteilerdatenbankeigenschaften

  1. Führen Sie auf dem Verteiler sp_changedistributor_property aus, um Verteilereigenschaften zu ändern.

  2. Führen Sie auf dem Verteiler sp_changedistributiondb aus, um Eigenschaften der Verteilerdatenbank zu ändern.

  3. Führen Sie auf dem Verteiler sp_changedistributor_password aus, um das Verteilerkennwort zu ändern.

    SicherheitshinweisSicherheitshinweis

    Die Benutzer sollten nach Möglichkeit während der Laufzeit zur Eingabe von Sicherheitsanmeldeinformationen aufgefordert werden. Wenn Sie Anmeldeinformationen in einer Skriptdatei speichern müssen, sollten Sie die Datei schützen, um nicht autorisierten Zugriff zu verhindern.

  4. Führen Sie auf dem Verteiler sp_changedistpublisher aus, um mit dem Verteiler die Eigenschaften eines Verlegers zu ändern.

Beispiele (Transact-SQL)

Das folgende Beispielskript Transact-SQL gibt Informationen über den Verteiler und die Verteilerdatenbank zurück.

-- View information about the Distributor, distribution database, 
-- working directory, and SQL Server Agent user account. 
USE master
EXEC sp_helpdistributor;
GO

-- View information about the specified distribution database. 
USE distribution
EXEC sp_helpdistributiondb;
GO

Im folgenden Beispiel werden die Beibehaltungsdauer für den Verteiler, das Kennwort für den Verbindungsaufbau zum Verteiler und das Intervall geändert, in dem der Verteiler den Status verschiedener Replikations-Agents überprüft (auch Taktintervall genannt).

SicherheitshinweisSicherheitshinweis

Die Benutzer sollten nach Möglichkeit während der Laufzeit zur Eingabe von Sicherheitsanmeldeinformationen aufgefordert werden. Wenn Sie Anmeldeinformationen in einer Skriptdatei speichern müssen, sollten Sie die Datei schützen, um nicht autorisierten Zugriff zu verhindern.

-- Change the heartbeat interval at the Distributor to 5 minutes. 
USE master 
exec sp_changedistributor_property 
    @property = N'heartbeat_interval', 
    @value = 5;
GO

DECLARE @distributionDB AS sysname;
SET @distributionDB = N'distribution';

-- Change the history retention period to 24 hours and the
-- maximum retention period to 48 hours.  
USE distribution
EXEC sp_changedistributiondb @distributionDB, N'history_retention', 24
EXEC sp_changedistributiondb @distributionDB, N'max_distretention', 48
GO 

-- Change the password on the Distributor. 
-- To avoid storing the password in the script file, the value is passed 
-- into SQLCMD as a scripting variable. For information about how to use 
-- scripting variables on the command line and in SQL Server Management
-- Studio, see the "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
USE master
EXEC sp_changedistributor_password $(Password)
GO

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwenden von Replikationsverwaltungsobjekten (RMO)

So zeigen Sie die Verteilereigenschaften an oder ändern diese

  1. Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection-Klasse verwenden.

  2. Erstellen Sie eine Instanz der ReplicationServer-Klasse. Übergeben Sie das ServerConnection-Objekt aus Schritt 1.

  3. (Optional) überprüfen Sie die IsDistributor-Eigenschaft, um sich davon zu überzeugen, dass der aktuell verbundene Server ein Verteiler ist.

  4. Rufen Sie die Load-Methode auf, um die Eigenschaften vom Server abzurufen.

  5. (Optional) Zum Ändern der Eigenschaften legen Sie einen neuen Wert für eine oder mehrere der Verteilereigenschaften fest, die im ReplicationServer-Objekt festgelegt werden können.

  6. (Optional) Wenn die CachePropertyChanges-Eigenschaft des ReplicationServer-Objekts auf true festgelegt ist, rufen Sie die CommitPropertyChanges-Methode auf, um Änderungen auf dem Server einzutragen.

So zeigen Sie Verteilerdatenbankeigenschaften an oder ändern Sie diese Eigenschaften

  1. Erstellen Sie eine Verbindung zum Verteiler, indem Sie die ServerConnection-Klasse verwenden.

  2. Erstellen Sie eine Instanz der DistributionDatabase-Klasse. Geben Sie die Namenseigenschaft an, und übergeben Sie das ServerConnection-Objekt aus Schritt 1.

  3. Rufen Sie die LoadProperties-Methode auf, um die Eigenschaften vom Server abzurufen. Wenn diese Methode false zurückgibt, ist die Datenbank mit dem angegebenen Namen nicht auf dem Server vorhanden.

  4. (Optional) Um Eigenschaften zu ändern, legen Sie einen neuen Wert für eine oder mehrere der festlegbaren DistributionDatabase-Eigenschaften fest.

  5. (Optional) Wenn die CachePropertyChanges-Eigenschaft des DistributionDatabase-Objekts auf true festgelegt ist, rufen Sie die CommitPropertyChanges-Methode auf, um Änderungen auf dem Server einzutragen.

So zeigen Sie die Verlegereigenschaften an oder ändern diese

  1. Erstellen Sie eine Verbindung mit dem Verleger, indem Sie die ServerConnection-Klasse verwenden.

  2. Erstellen Sie eine Instanz der DistributionPublisher-Klasse. Geben Sie die Name-Eigenschaft an, und übergeben Sie das ServerConnection-Objekt aus Schritt 1.

  3. (Optional) Um Eigenschaften zu ändern, legen Sie einen neuen Wert für eine oder mehrere de festlegbaren DistributionPublisher-Eigenschaften fest.

  4. (Optional) Wenn die CachePropertyChanges-Eigenschaft des DistributionPublisher-Objekts auf true festgelegt ist, rufen Sie die CommitPropertyChanges-Methode auf, um Änderungen auf dem Server einzutragen.

So ändern Sie das Kennwort für die Verwaltungsverbindung zwischen dem Verleger und dem Verteiler

  1. Erstellen Sie eine Verbindung zum Verteiler, indem Sie die ServerConnection-Klasse verwenden.

  2. Erstellen Sie eine Instanz der ReplicationServer-Klasse.

  3. Legen Sie die ConnectionContext-Eigenschaft auf die in Schritt 1 erstellte Verbindung fest.

  4. Rufen Sie die Load-Methode auf, um die Eigenschaften des Objekts abzurufen.

  5. Rufen Sie die ChangeDistributorPassword-Methode auf. Übergeben Sie den neuen Kennwortwert für den password-Parameter.

    SicherheitshinweisSicherheitshinweis

    Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Anmeldeinformationen zur Laufzeit einzugeben. Wenn Sie Anmeldeinformationen speichern müssen, verwenden Sie die Kryptografiedienste von Microsoft Windows .NET Framework.

  6. (Optional) Führen Sie die folgenden Schritte aus, um das Kennwort bei jedem Remoteverleger zu ändern, der diesen Verteiler verwendet:

    1. Erstellen Sie eine Verbindung mit dem Verleger, indem Sie die ServerConnection-Klasse verwenden.

    2. Erstellen Sie eine Instanz der ReplicationServer-Klasse.

    3. Legen Sie die ConnectionContext-Eigenschaft auf die in Schritt 6a erstellte Verbindung fest.

    4. Rufen Sie die Load-Methode auf, um die Eigenschaften des Objekts abzurufen.

    5. Rufen Sie die ChangeDistributorPassword-Methode auf. Übergeben Sie den neuen Kennwortwert aus Schritt 5 für den password-Parameter.

Beispiel (RMO)

In diesem Beispiel wird gezeigt, wie Verteilungs- und Verteilungsdatenbankeigenschaften geändert werden.

SicherheitshinweisSicherheitshinweis

Um die Speicherung von Anmeldeinformationen im Code vermeiden, wird das neue Verteilerkennwort zur Laufzeit angegeben.

          // Set the Distributor and distribution database names.
            string distributionDbName = "distribution";
            string distributorName = publisherInstance;

            ReplicationServer distributor;
            DistributionDatabase distributionDb;

            // Create a connection to the Distributor using Windows Authentication.
            ServerConnection conn = new ServerConnection(distributorName);

            try
            {
                // Open the connection. 
                conn.Connect();

                distributor = new ReplicationServer(conn);

                // Load Distributor properties, if it is installed.
                if (distributor.LoadProperties())
                {
                    // Password supplied at runtime.
                    distributor.ChangeDistributorPassword(password);
                    distributor.AgentCheckupInterval = 5;

                    // Save changes to the Distributor properties.
                    distributor.CommitPropertyChanges();
                }
                else
                {
                    throw new ApplicationException(
                        String.Format("{0} is not a Distributor.", publisherInstance));
                }

                // Create an object for the distribution database 
                // using the open Distributor connection.
                distributionDb = new DistributionDatabase(distributionDbName, conn);

                // Change distribution database properties.
                if (distributionDb.LoadProperties())
                {
                    // Change maximum retention period to 48 hours and history retention 
                    // period to 24 hours.
                    distributionDb.MaxDistributionRetention = 48;
                    distributionDb.HistoryRetention = 24;

                    // Save changes to the distribution database properties.
                    distributionDb.CommitPropertyChanges();
                }
                else
                {
                    // Do something here if the distribution database does not exist.
                }
            }
            catch (Exception ex)
            {
                // Implement the appropriate error handling here. 
                throw new ApplicationException("An error occured when changing Distributor " +
                    " or distribution database properties.", ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Set the Distributor and distribution database names.
Dim distributionDbName As String = "distribution"
Dim distributorName As String = publisherInstance

Dim distributor As ReplicationServer
Dim distributionDb As DistributionDatabase

' Create a connection to the Distributor using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(distributorName)

Try
    ' Open the connection. 
    conn.Connect()

    distributor = New ReplicationServer(conn)

    ' Load Distributor properties, if it is installed.
    If distributor.LoadProperties() Then
        ' Password supplied at runtime.
        distributor.ChangeDistributorPassword(password)
        distributor.AgentCheckupInterval = 5

        ' Save changes to the Distributor properties.
        distributor.CommitPropertyChanges()
    Else
        Throw New ApplicationException( _
            String.Format("{0} is not a Distributor.", publisherInstance))
    End If

    ' Create an object for the distribution database 
    ' using the open Distributor connection.
    distributionDb = New DistributionDatabase(distributionDbName, conn)

    ' Change distribution database properties.
    If distributionDb.LoadProperties() Then
        ' Change maximum retention period to 48 hours and history retention 
        ' period to 24 hours.
        distributionDb.MaxDistributionRetention = 48
        distributionDb.HistoryRetention = 24

        ' Save changes to the distribution database properties.
        distributionDb.CommitPropertyChanges()
    Else
        ' Do something here if the distribution database does not exist.
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here. 
    Throw New ApplicationException("An error occured when changing Distributor " + _
        " or distribution database properties.", ex)
Finally
    conn.Disconnect()
End Try

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Siehe auch

Aufgaben

Anzeigen von Informationen und Ausführen von Aufgaben für einen Verleger (Replikationsmonitor)

Konzepte

Konzepte für Replikationsverwaltungsobjekte (RMO)

Deaktivieren der Veröffentlichung und Verteilung

Konfigurieren der Verteilung

Konzepte für Replikationsverwaltungsobjekte (RMO)

Informationsskript für Verleger und Verteiler

Konzepte für gespeicherte Systemprozeduren für die Replikation