Anzeigen und Ändern der Verteiler- und Verlegereigenschaften
In diesem Thema wird beschrieben, wie Verteiler- und Verlegereigenschaften in SQL Server 2014 mithilfe von SQL Server Management Studio, Transact-SQL oder Replikationsverwaltungsobjekten (Replication Management Objects, RMO) angezeigt und geändert werden.
In diesem Thema
Vorbereitungen:
So können Sie Verteiler- und Verlegereigenschaften anzeigen und ändern mit:
Vorbereitungen
Empfehlungen
- Für Herausgeber, die Versionen vor Microsoft SQL Server 2005 ausführen, kann ein Benutzer in der festen Serverrolle sysadmin Abonnenten auf der Seite Abonnenten registrieren. Ab SQL Server 2005 ist es nicht mehr erforderlich, Abonnenten explizit für die Replikation zu registrieren.
Sicherheit
Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Anmeldeinformationen zur Laufzeit anzugeben.
Verwendung von SQL Server Management Studio
So zeigen Sie die Verteilereigenschaften an oder ändern diese
Stellen Sie in SQL Server Management Studioeine Verbindung mit dem Verteiler her, und erweitern Sie dann den Serverknoten.
Klicken Sie mit der rechten Maustaste auf den Ordner Replikation , und klicken Sie dann auf Verteilereigenschaften.
Anzeigen und Ändern von Eigenschaften im Dialogfeld Verteilereigenschaften – <Verteiler>
Um die Eigenschaften einer Verteilungsdatenbank anzuzeigen und zu ändern, klicken Sie auf die Schaltfläche Eigenschaften ( ... ) für die Datenbank auf der Seite Allgemein des Dialogfelds.
Um die mit dem Verteiler verbundenen Verlegereigenschaften anzuzeigen und zu ändern, klicken Sie auf der SeiteVerlegerdes 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 Replication Agent Profiles.
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.
Ändern Sie die Eigenschaften nach Bedarf, und klicken Sie dann auf OK.
So zeigen Sie die Verlegereigenschaften an oder ändern diese
Stellen Sie in SQL Server Management Studioeine Verbindung mit dem Verleger her, und erweitern Sie dann den Serverknoten.
Klicken Sie mit der rechten Maustaste auf den Ordner Replikation , und klicken Sie dann auf Verlegereigenschaften.
Zeigen Sie eigenschaften im Dialogfeld Verlegereigenschaften – < Verleger > an, und ändern Sie sie.
- 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.
Ändern Sie die Eigenschaften nach Bedarf, und klicken Sie dann auf OK.
Verwenden von Transact-SQL
Die Verleger- und Verteilereigenschaften können mit gespeicherten Replikationsprozeduren programmgesteuert angezeigt werden.
So zeigen Sie Verleger- und Verteilerdatenbankeigenschaften an
Führen Sie sp_helpdistributor aus, um Informationen über Verteiler, Verteilungsdatenbank und Arbeitsverzeichnis zurückzugeben.
Führen Sie sp_helpdistributiondb aus, um die Eigenschaften einer angegebenen Verteilungsdatenbank zurückzugeben.
So ändern Sie Verleger- und Verteilerdatenbankeigenschaften
Führen Sie auf dem Verteiler sp_changedistributor_property aus, um Verteilereigenschaften zu ändern.
Führen Sie auf dem Verteiler sp_changedistributiondb aus, um Eigenschaften der Verteilerdatenbank zu ändern.
Führen Sie auf dem Verteiler sp_changedistributor_password aus, um das Verteilerkennwort zu ändern.
Wichtig
Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Anmeldeinformationen zur Laufzeit anzugeben. Wenn Sie Anmeldeinformationen in einer Skriptdatei speichern müssen, sollten Sie die Datei schützen, um nicht autorisierten Zugriff zu verhindern.
Führen Sie auf dem Verteiler sp_changedistpublisher aus, um mit dem Verteiler die Eigenschaften eines Verlegers zu ändern.
Beispiele (Transact-SQL)
Das folgende Transact-SQL-Beispielskript gibt Informationen zur Verteiler- und Verteilungsdatenbank 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).
Wichtig
Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Anmeldeinformationen zur Laufzeit anzugeben. 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
Verwenden von Replikationsverwaltungsobjekten (RMO)
So zeigen Sie die Verteilereigenschaften an oder ändern diese
Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection -Klasse verwenden.
Erstellen Sie eine Instanz der ReplicationServer-Klasse. Übergeben Sie das ServerConnection -Objekt aus Schritt 1.
(Optional) überprüfen Sie die IsDistributor -Eigenschaft, um sich davon zu überzeugen, dass der aktuell verbundene Server ein Verteiler ist.
Rufen Sie die Load -Methode auf, um die Eigenschaften vom Server abzurufen.
(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.
(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
Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection -Klasse verwenden.
Erstellen Sie eine Instanz der DistributionDatabase-Klasse. Geben Sie die Namenseigenschaft an, und übergeben Sie das ServerConnection -Objekt aus Schritt 1.
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.(Optional) Um Eigenschaften zu ändern, legen Sie einen neuen Wert für eine der definierbaren DistributionDatabase -Eigenschaften fest.
(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
Erstellen Sie eine Verbindung mit dem Verleger, indem Sie die ServerConnection -Klasse verwenden.
Erstellen Sie eine Instanz der DistributionPublisher-Klasse. Geben Sie die Name -Eigenschaft an, und übergeben Sie das ServerConnection -Objekt aus Schritt 1.
(Optional) Um Eigenschaften zu ändern, legen Sie einen neuen Wert für eine der definierbaren DistributionPublisher -Eigenschaften fest.
(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
Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection -Klasse verwenden.
Erstellen Sie eine Instanz der ReplicationServer-Klasse.
Legen Sie die ConnectionContext -Eigenschaft auf die in Schritt 1 erstellte Verbindung fest.
Rufen Sie die Load -Methode auf, um die Eigenschaften des Objekts abzurufen.
Rufen Sie die ChangeDistributorPassword -Methode auf. Übergeben Sie den neuen Kennwortwert für den password -Parameter.
Wichtig
Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Anmeldeinformationen zur Laufzeit anzugeben. Wenn Sie Anmeldeinformationen speichern müssen, verwenden Sie die Kryptografiedienste von Microsoft Windows .NET Framework.
(Optional) Führen Sie die folgenden Schritte aus, um das Kennwort bei jedem Remoteverleger zu ändern, der diesen Verteiler verwendet:
Erstellen Sie eine Verbindung mit dem Verleger, indem Sie die ServerConnection -Klasse verwenden.
Erstellen Sie eine Instanz der ReplicationServer-Klasse.
Legen Sie die ConnectionContext -Eigenschaft auf die in Schritt 6a erstellte Verbindung fest.
Rufen Sie die Load -Methode auf, um die Eigenschaften des Objekts abzurufen.
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.
Wichtig
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
Weitere Informationen
Replication Management Objects Concepts
Deaktivieren der Veröffentlichung und Verteilung
Verteilung konfigurieren
Replication Management Objects Concepts
Informationsskript für Verleger und Verteiler
Replication System Stored Procedures Concepts
Anzeigen von Informationen und Ausführen von Aufgaben mithilfe des Replikationsmonitors