Share via


Arbeiten mit Replikations-Agent-Profilen

In diesem Thema wird beschrieben, wie in SQL Server 2012 mithilfe von SQL Server Management Studio, Transact-SQL oder Replikationsverwaltungsobjekten (RMO) mit Replikations-Agentprofilen gearbeitet wird. Das Verhalten der einzelnen Replikations-Agents wird durch eine Reihe von Parametern gesteuert, die über Agentprofile festgelegt werden können. Jeder Agent weist ein Standardprofil auf, und einige Agents besitzen weitere vordefinierte Profile, wobei für einen Agent jeweils immer nur ein Profil aktiv ist.

In diesem Thema

  • So arbeiten Sie mit Replikations-Agentprofilen mit:

    SQL Server Management Studio

    • Auf das Dialogfeld Agentprofile zugreifen

    • Ein Profil für einen Agent angeben

    • Ein Profil erstellen

    • Ein Profil ändern

    • Ein Profil löschen

    Transact-SQL

    • Ein Profil erstellen

    • Ein Profil ändern

    • Ein Profil löschen

    • Agentprofile während der Synchronisierung verwenden

    • Beispiel für Transact-SQL

    Replikationsverwaltungsobjekte (RMO)

    • Ein Profil erstellen

    • Ein Profil ändern

    • Ein Profil löschen

  • Nachverfolgung: Nach dem Ändern der Agentparameter

Verwendung von SQL Server Management Studio

So greifen Sie auf das Dialogfeld Agentprofile in SQL Server Management Studio zu

  • Klicken Sie im Dialogfeld Verteilereigenschaften - <Verteiler> auf der Seite Allgemein auf Profilstandards.

So greifen Sie über den Replikationsmonitor auf das Dialogfeld Agentprofile zu

  • Um das Dialogfeld für alle Agents zu öffnen, klicken Sie mit der rechten Maustaste auf einen Verleger, und klicken Sie dann auf Agentprofile.

  • Gehen Sie folgendermaßen vor, um das Dialogfeld für einen Agent zu öffnen:

    1. Erweitern Sie im linken Bereich des Replikationsmonitors eine Verlegergruppe, erweitern Sie einen Verleger, und klicken Sie dann auf eine Veröffentlichung.

    2. Klicken Sie bei Verteilungs-Agent- oder Merge-Agent-Profilen auf der Registerkarte Alle Abonnements mit der rechten Maustaste auf ein Abonnement, und klicken Sie dann auf Agentprofil. Klicken Sie bei anderen Agents auf der Registerkarte Agents mit der rechten Maustaste auf den Agent, und klicken Sie dann auf Agentprofil.

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

So geben Sie ein Profil für einen Agent an

  1. Wenn im Dialogfeld Agentprofile Profile für mehrere Agents angezeigt werden, wählen Sie einen Agent aus.

  2. Wählen Sie im Raster Agentprofile in der Default for new-Spalte ein Profil aus. Standardmäßig wird das Profil nur auf Agents für neue Veröffentlichungen und Abonnements angewendet.

  3. Wenn Sie angeben möchten, dass dieses Profil von allen Agents des ausgewählten Typs für vorhandene Veröffentlichungen oder Abonnements verwendet werden soll, klicken Sie auf Vorhandene Agents ändern.

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

So zeigen Sie einem Profil zugeordnete Parameter an und bearbeiten Sie die Parameter

  1. Wenn im Dialogfeld Agentprofile Profile für mehrere Agents angezeigt werden, wählen Sie einen Agent aus.

  2. Klicken Sie auf die Eigenschaftenschaltfläche () neben einem Profil.

  3. Im Dialogfeld Profileigenschaften von <Profilname> werden die Parameter und Werte angezeigt.

    • Parameter in benutzerdefinierten Profilen können bearbeitet werden; Parameter in vordefinierten Systemprofilen können nicht bearbeitet werden.

    • Um alle Parameter für einen Agent anzuzeigen, deaktivieren Sie das Kontrollkästchen Nur die in diesem Profil verwendeten Parameter anzeigen. Informationen zu den Agentparametern finden Sie unter den Links am Ende dieses Themas.

  4. Klicken Sie auf Schließen.

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

So erstellen Sie ein benutzerdefiniertes Profil

  1. Wenn im Dialogfeld Agentprofile Profile für mehrere Agents angezeigt werden, wählen Sie einen Agent aus.

  2. Klicken Sie auf Neu.

  3. Wählen Sie im Initialisierungsdialogfeld Neues Agentprofil ein vorhandenes Profil aus, auf dem das neue Profil basieren soll.

  4. Geben Sie im Dialogfeld Neues Agentprofil Werte in die Textfelder Name und Beschreibung ein.

  5. Ändern Sie die Parameter in dem gewünschten Profil entsprechend. Um alle Parameter für einen Agent anzuzeigen, deaktivieren Sie das Kontrollkästchen Nur die in diesem Profil verwendeten Parameter anzeigen. Informationen zu den Agentparametern finden Sie unter den Links am Ende dieses Themas.

  6. Klicken Sie auf OK.

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

So löschen Sie ein benutzerdefiniertes Profil

  1. Wenn im Dialogfeld Agentprofile Profile für mehrere Agents angezeigt werden, wählen Sie einen Agent aus.

  2. Wenn ein Profil einem oder mehreren Agents zugeordnet ist, ändern Sie das Profil für diese Agents:

    1. Wählen Sie im Raster Agentprofile ein anderes Profil aus.

    2. Klicken Sie auf Vorhandene Agents ändern.

      HinweisHinweis

      Dadurch wird das Profil nicht nur für die Agents geändert, deren Profil Sie löschen möchten, sondern für alle Agents des ausgewählten Typs für vorhandene Veröffentlichungen oder Abonnements.

  3. Wählen Sie das zu löschende Profil aus, und klicken Sie dann auf Löschen.

  4. Klicken Sie auf OK.

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

Verwendung von Transact-SQL

So erstellen Sie ein neues Agentprofil

  1. Führen Sie auf dem Verteiler sp_add_agent_profile (Transact-SQL) aus. Geben Sie @name, einen Wert 1 für @profile_type und einen der folgenden Werte für @agent_type an:

    Wenn dieses Profil zum neuen Standardprofil für den zugehörigen Typ von Replikations-Agent wird, geben Sie einen Wert 1 für @default an. Der Bezeichner für das neue Profil wird mithilfe des @profile_id-Ausgabeparameters zurückgegeben. Dadurch wird ein neues Profil mit einem Satz von Profilparametern erstellt, das auf dem Standardprofil des bestimmten Agenttyps basiert.

  2. Nach der Erstellung des neuen Profils können Sie Standardparameter hinzufügen, entfernen oder ändern, um das Profil anzupassen.

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

So ändern Sie ein vorhandenes Agentprofil

  1. Führen Sie auf dem Verteiler sp_help_agent_profile (Transact-SQL) aus. Geben Sie einen der folgenden Werte für @agent_type an:

    Dadurch werden alle Profile für den angegebenen Agenttyp zurückgegeben. Beachten Sie den Wert profile_id im Resultset für das zu ändernde Profil.

  2. Führen Sie auf dem Verteiler sp_help_agent_parameter (Transact-SQL) aus. Geben Sie den Bezeichner des Profils aus Schritt 1 für @profile_id an. Dadurch werden alle Parameter für das Profil zurückgegeben. Beachten Sie den Namen der zu ändernden Parameter bzw. der aus dem Profil zu entfernenden Parameter.

  3. Um den Wert eines Parameters in einem Profil zu ändern, führen Sie sp_change_agent_profile (Transact-SQL) aus. Geben Sie den Bezeichner des Profils aus Schritt 1 für @profile_id, den Namen des zu ändernden Parameters für @property und einen neuen Wert für den Parameter für @value an.

    HinweisHinweis

    Es ist nicht möglich, ein vorhandenes Agentprofil in das Standardprofil für einen Agent zu ändern. Stattdessen müssen Sie ein neues Profil als Standardprofil erstellen, wie in der vorherigen Prozedur beschrieben.

  4. Um einen Parameter aus einem Profil zu entfernen, führen Sie sp_drop_agent_parameter (Transact-SQL) aus. Geben Sie den Bezeichner des Profils aus Schritt 1 für @profile_id und den Namen des zu entfernenden Parameters für @parameter_name an.

  5. Sie müssen die folgenden Schritte ausführen, um einem Profil einen neuen Parameter hinzuzufügen:

    • Fragen Sie die MSagentparameterlist (Transact-SQL)-Tabelle auf dem Verteiler ab, um die Profilparameter zu bestimmen, die für die einzelnen Agenttypen festgelegt werden können.

    • Führen Sie auf dem Verteiler sp_add_agent_parameter (Transact-SQL) aus. Geben Sie den Bezeichner des Profils aus Schritt 1 für @profile_id, den Namen eines gültigen Parameters zum Hinzufügen für @parameter_name und den Wert des Parameters für @parameter_value an.

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

So löschen Sie ein Agentprofil

  1. Führen Sie auf dem Verteiler sp_help_agent_profile (Transact-SQL) aus. Geben Sie einen der folgenden Werte für @agent_type an:

    Dadurch werden alle Profile für den angegebenen Agenttyp zurückgegeben. Beachten Sie den Wert profile_id im Resultset für das zu entfernende Profil.

  2. Führen Sie auf dem Verteiler sp_drop_agent_profile (Transact-SQL) aus. Geben Sie den Bezeichner des Profils aus Schritt 1 für @profile_id an.

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

So verwenden Sie während der Synchronisierung Agentprofile

  1. Führen Sie auf dem Verteiler sp_help_agent_profile (Transact-SQL) aus. Geben Sie einen der folgenden Werte für @agent_type an:

    Dadurch werden alle Profile für den angegebenen Agenttyp zurückgegeben. Beachten Sie den Wert profile_name im Resultset für das zu verwendende Profil.

  2. Wenn der Agent in einem Agentauftrag gestartet wird, bearbeiten Sie den Auftragsschritt, mit dem der Agent gestartet wird, um den in Schritt 1 ermittelten Wert profile_name nach dem -ProfileName-Befehlszeilenparameter anzugeben. Weitere Informationen finden Sie unter Anzeigen und Ändern von Befehlszeilenparametern des Replikations-Agents (SQL Server Management Studio).

  3. Wenn der Agent von der Eingabeaufforderung gestartet wird, geben Sie den in Schritt 1 ermittelten Wert profile_name nach dem -ProfileName-Befehlszeilenparameter an.

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

Beispiel (Transact-SQL)

In diesem Beispiel werden ein benutzerdefiniertes Profil für den Merge-Agent mit der Bezeichnung custom_merge erstellt, der Wert des -UploadReadChangesPerBatch-Parameters geändert, ein neuer -ExchangeType-Parameter hinzugefügt und Informationen zu dem Profil, das erstellt wird, zurückgegeben.

DECLARE @profilename AS sysname;
DECLARE @profileid AS int;
SET @profilename = N'custom_merge';

-- Create a temporary table to hold the returned 
-- Merge Agent profiles.
CREATE TABLE #profiles (
    profile_id int, 
    profile_name sysname,
    agent_type int,
    [type] int,
    description varchar(3000),
    def_profile bit)

INSERT INTO #profiles (profile_id, profile_name, 
    agent_type, [type],description, def_profile)
    EXEC sp_help_agent_profile @agent_type = 4;

SET @profileid = (SELECT profile_id FROM #profiles 
    WHERE profile_name = @profilename);

IF (@profileid IS NOT NULL)
BEGIN
    EXEC sp_drop_agent_profile @profileid;
END
DROP TABLE #profiles

-- Add a new merge agent profile. 
EXEC sp_add_agent_profile @profile_id = @profileid OUTPUT, 
@profile_name = @profilename, @agent_type = 4, 
@description = N'custom merge profile';

-- Change the value of uploadreadchangesperbatch in the profile.
EXEC sp_change_agent_parameter @profile_id = @profileid, 
    @parameter_name = N'-UploadReadChangesPerBatch', @parameter_value = 50;

-- Add a new parameter ExchangeType the profile. 
EXEC sp_add_agent_parameter @profile_id = @profileid, 
    @parameter_name = N'-ExchangeType', @parameter_value = 1;

-- Verify the new profile. 
EXEC sp_help_agent_parameter @profileid;
GO

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

Verwenden von RMO

So erstellen Sie ein neues Agentprofil

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

  2. Erstellen Sie eine Instanz der AgentProfile-Klasse.

  3. Legen Sie die folgenden Eigenschaften für das Objekt fest:

    • Name - der Name des Profils.

    • AgentType - ein AgentType-Wert, der den Typ des Replikations-Agents angibt, für den das Profil erstellt wird.

    • ConnectionContext - die in Schritt 1 erstellte ServerConnection.

    • (Optional) Description - eine Beschreibung des Profils.

    • (Optional) Default - Legen Sie diese Eigenschaft auf true fest, wenn alle neuen Agentaufträge für diesen AgentType dieses Profil standardmäßig verwenden.

  4. Rufen Sie die Create-Methode auf, um das Profil auf dem Server zu erstellen.

  5. Sobald das Profil auf dem Server vorhanden ist, können Sie es anpassen, indem Sie Werte für die Parameter für Replikations-Agents hinzufügen, entfernen oder ändern.

  6. Rufen Sie die AssignToAgent-Methode auf, um das Profil einem vorhandenen Auftrag des Replikations-Agents zuzuordnen. Übergeben Sie den Namen der Verteilungsdatenbank für distributionDBName und die ID des Auftrags für agentID.

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

So ändern Sie ein vorhandenes Agentprofil

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

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

  3. Rufen Sie die LoadProperties-Methode auf. Überprüfen Sie, ob der Verteiler vorhanden ist, wenn diese Methode false zurückgibt.

  4. Rufen Sie die EnumAgentProfiles-Methode auf. Übergeben Sie einen AgentType-Wert, um die zurückgegebenen Profile für einen bestimmten Typ von Replikations-Agent einzugrenzen.

  5. Rufen Sie das gewünschte AgentProfile-Objekt von der zurückgegebenen ArrayList ab, wobei die Name-Eigenschaft des Objekt mit dem Profilnamen übereinstimmt.

  6. Rufen Sie eine der folgenden Methoden von AgentProfile auf, um das Profil zu ändern:

    • AddParameter - fügt dem Profil einen unterstützten Parameter hinzu, wobei name der Name des Parameters für den Replikations-Agent und value der angegebene Wert ist. Rufen Sie zum Aufzählen aller unterstützten Agentparameter für einen bestimmten Agenttyp die EnumParameterInfo-Methode auf. Diese Methode gibt eine ArrayList von AgentProfileParameterInfo-Objekten zurück, die alle unterstützten Parameter darstellen.

    • RemoveParameter - entfernt einen vorhandenen Parameter aus dem Profil, wobei name der Name des Parameters für den Replikations-Agent ist. Rufen Sie zum Aufzählen aller aktuellen Agentparameter, die für das Profil definiert sind, die EnumParameters-Methode auf. Diese Methode gibt eine ArrayList von AgentProfileParameter-Objekten zurück, die den vorhandenen Parameter für dieses Profil darstellen.

    • ChangeParameter - ändert die Einstellung eines vorhandenen Parameters im Profil, wobei name der Name des Agentparameters und newValue der Wert ist, in den der Parameter geändert wird. Rufen Sie zum Aufzählen aller aktuellen Agentparameter, die für das Profil definiert sind, die EnumParameters-Methode auf. Diese Methode gibt eine ArrayList von AgentProfileParameter-Objekten zurück, die den vorhandenen Parameter für dieses Profil darstellen. Rufen Sie zum Aufzählen aller unterstützten Einstellungen für den Agentparameter die EnumParameterInfo-Methode auf. Diese Methode gibt eine ArrayList von AgentProfileParameterInfo-Objekten zurück, die die unterstützten Werte für alle Parameter darstellen.

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

So löschen Sie ein Agentprofil

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

  2. Erstellen Sie eine Instanz der AgentProfile-Klasse. Legen Sie den Namen des Profils für Name und ServerConnection aus Schritt 1 für ConnectionContext fest.

  3. Rufen Sie die LoadProperties-Methode auf. Wenn diese Methode false zurückgibt, wurde ein falscher Name angegeben, oder das Profil ist auf dem Server nicht vorhanden.

  4. Stellen Sie sicher, dass die Type-Eigenschaft auf User festgelegt ist, womit ein Kundenprofil angegeben wird. Entfernen Sie kein Profil, das einen Wert System für Type aufweist.

  5. Rufen Sie die Remove-Methode auf, um das benutzerdefinierte Profil, das durch dieses Objekt dargestellt wird, vom Server zu entfernen.

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

Nachverfolgung: Nach dem Ändern der Agentparameter

Die Änderungen der Agentparameter treten in Kraft, wenn der Agent das nächste Mal gestartet wird. Wenn der Agent ständig ausgeführt wird, müssen Sie den Agent beenden und neu starten.

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

Siehe auch

Verweis

Replikations-Agent-Profile

Replikationsmomentaufnahme-Agent

Replikationsprotokolllese-Agent

Replikationsverteilungs-Agent

Replikationsmerge-Agent

Warteschlangenlese-Agent der Microsoft SQL Server-Replikation