Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Dit onderwerp beschrijft hoe je kunt werken met Replication Agent Profiles in SQL Server door gebruik te maken van SQL Server Management Studio, Transact-SQL of Replication Management Objects (RMO). Het gedrag van elk replicatie-agent wordt bepaald door een set parameters die via agentprofielen kunnen worden ingesteld. Elke agent heeft een standaardprofiel, en sommigen hebben extra vooraf gedefinieerde profielen; Op een bepaald moment is er slechts één profiel actief voor een agent.
SQL Server Management Studio gebruiken
Om toegang te krijgen tot het dialoogvenster Agent Profiles vanuit SQL Server Management Studio
- Op de algemene pagina van het dialoogvenster Distributor Properties - <Distributor> klik je op Profielstandaarden.
Om toegang te krijgen tot het dialoogvenster Agentprofielen vanuit Replication Monitor
Om het dialoogvenster voor alle agenten te openen, klik je met de rechtermuisknop op een Publisher en klik je vervolgens op Agentprofielen.
Om het dialoogvenster voor een enkele agent te openen:
Vouw een Publisher-groep uit in het linkerdeelvenster van Replication Monitor, vouw een uitgever uit en klik vervolgens op een publicatie.
Voor Distribution Agent- en Merge Agent-profielen, klik met de rechtermuisknop op een abonnement op het tabblad Alle abonnementen en klik vervolgens op Agent Profiel. Voor andere agenten, klik met de rechtermuisknop op de agent op het tabblad Agenten en klik vervolgens op Agent Profiel.
Om een profiel voor een agent te specificeren
Als het dialoogvenster Agentprofielen profielen toont voor meer dan één agent, selecteer dan een agent.
Selecteer een profiel in de kolom Standaard voor nieuwe in de tabel Agentprofielen. Standaard wordt het profiel alleen toegepast op agenten voor nieuwe publicaties en abonnementen.
Om te specificeren dat alle agenten van het geselecteerde type voor bestaande publicaties of abonnementen dit profiel moeten gebruiken, klik op Wijzigen van bestaande agenten.
Om de parameters die aan een profiel zijn gekoppeld te bekijken en te bewerken
Als het dialoogvenster Agentprofielen profielen toont voor meer dan één agent, selecteer dan een agent.
Klik op de eigenschappenknop (...) naast een profiel.
Bekijk de parameters en waarden in het <dialoogvenster ProfileName Profieleigenschappen>.
Parameters in door de gebruiker gedefinieerde profielen kunnen worden bewerkt; parameters in vooraf gedefinieerde systeemprofielen kunnen dat niet.
Om alle parameters voor een agent weer te geven, schakel je het selectievakje Alleen parameters weergeven die in dit profiel worden gebruikt uit. Voor informatie over agentparameters, zie de links aan het einde van dit onderwerp.
Klik op sluiten.
Om een door de gebruiker gedefinieerd profiel aan te maken
Als het dialoogvenster Agentprofielen profielen toont voor meer dan één agent, selecteer dan een agent.
Klik op Nieuw.
Selecteer in het dialoogvenster ' Nieuw Agent Profiel' een bestaand profiel waarop het nieuwe profiel wordt gebaseerd.
Voer in het dialoogvenster Nieuw Agent Profiel waarden in de tekstvakken Naam en Beschrijving .
Pas parameters aan om het profiel aan te passen. Om alle parameters voor een agent te bekijken, schakel je het selectievakje Alleen parameters weergeven die in dit profiel worden gebruikt uit. Voor informatie over agentparameters, zie de links aan het einde van dit onderwerp.
Kies OK.
Om een door de gebruiker gedefinieerd profiel te verwijderen
Als het dialoogvenster Agentprofielen profielen toont voor meer dan één agent, selecteer dan een agent.
Als een profiel aan één of meer agenten is gekoppeld, verander dan het profiel voor die agenten:
Selecteer een ander profiel in het Agent-profielenraster .
Klik op Bestaande agenten wijzigen.
Opmerking
Dit verandert het profiel van alle agenten van het geselecteerde type voor bestaande publicaties of abonnementen, niet alleen voor degenen die het profiel gebruiken dat je wilt verwijderen.
Selecteer het profiel dat je wilt verwijderen en klik dan op Verwijderen.
Kies OK.
Transact-SQL gebruiken
Om een nieuw agentenprofiel aan te maken
Voer bij de distributeur sp_add_agent_profile uit (Transact-SQL). Specificeer @name, een waarde van 1 voor @profile_type, en een van de volgende waarden voor @agent_type:
Als dit profiel het nieuwe standaardprofiel wordt voor het type replicatieagent, specificeer dan een waarde van 1 voor @default. De identifier voor het nieuwe profiel wordt teruggegeven met behulp van de @profile_id outputparameter. Dit creëert een nieuw profiel met een set profielparameters gebaseerd op het standaardprofiel voor het betreffende agenttype.
Nadat het nieuwe profiel is aangemaakt, voeg je de standaardparameters toe, verwijder of wijzig je de standaardparameters om het profiel aan te passen.
Om een bestaand agentprofiel te wijzigen
Voer bij de distributeur sp_help_agent_profile uit (Transact-SQL). Specificeer een van de volgende waarden voor @agent_type:
Dit geeft alle profielen terug voor het opgegeven type agent. Let op de waarde van profile_id in de resultaatset voor het profiel dat moet veranderen.
Voer bij de distributeur sp_help_agent_parameter uit (Transact-SQL). Geef de profielidentificatie op uit stap 1 voor @profile_id. Dit geeft alle parameters voor het profiel terug. Noteer de naam van eventuele parameters die je uit het profiel moet wijzigen of verwijderen.
Om de waarde van een parameter in een profiel te veranderen, voer je sp_change_agent_parameter uit (Transact-SQL). Geef de profielidentificatie van stap 1 voor @profile_id op, de naam van de parameter die voor @parameter_name moet worden gewijzigd, en een nieuwe waarde voor de parameter voor @parameter_value.
Opmerking
Je kunt een bestaand agentprofiel niet wijzigen zodat het het standaardprofiel van een agent wordt. Je moet in plaats daarvan een nieuw profiel aanmaken als standaardprofiel, zoals in de vorige procedure is getoond.
Om een parameter uit een profiel te verwijderen, voer je sp_drop_agent_parameter uit (Transact-SQL). Specificeer de profielidentificatie uit stap 1 voor @profile_id en de naam van de parameter die verwijderd moet worden voor @parameter_name.
Om een nieuwe parameter aan een profiel toe te voegen, moet je het volgende doen:
Raadpleeg de MSagentparameterlist (Transact-SQL) tabel bij de Distributor om te bepalen welke profielparameters voor elk agenttype kunnen worden ingesteld.
Voer bij de distributeur sp_add_agent_parameter uit (Transact-SQL). Geef de profielidentificatie uit stap 1 voor @profile_id op, de naam van een geldige parameter die voor @parameter_name moet worden toegevoegd, en de waarde van de parameter voor @parameter_value.
Om een agentprofiel te verwijderen
Voer bij de distributeur sp_help_agent_profile uit (Transact-SQL). Specificeer een van de volgende waarden voor @agent_type:
Dit geeft alle profielen terug voor het opgegeven type agent. Let op de waarde van profile_id in de resultaatset voor het profiel dat moet worden verwijderd.
Voer bij de distributeur sp_drop_agent_profile uit (Transact-SQL). Geef de profielidentificatie op uit stap 1 voor @profile_id.
Om agentprofielen te gebruiken tijdens synchronisatie
Voer bij de distributeur sp_help_agent_profile uit (Transact-SQL). Specificeer een van de volgende waarden voor @agent_type:
Dit geeft alle profielen terug voor het opgegeven type agent. Let op de waarde van profile_name in de resultaatset voor het te gebruiken profiel.
Als de agent wordt gestart vanuit een agenttaak, bewerk dan de taakstap die de agent start om de in stap 1 verkregen waarde van profile_name op te geven na de opdrachtregelparameter -ProfileName. Voor meer informatie, zie Bekijk en wijzig Replication Agent Command Prompt Parameters (SQL Server Management Studio).
Bij het starten van de agent vanaf de opdrachtprompt specificeer je de waarde van profile_name verkregen in stap 1 na de -ProfileName-commandoregelparameter .
Voorbeeld (Transact-SQL)
Dit voorbeeld maakt een aangepast profiel aan voor de Merge Agent genaamd custom_merge, wijzigt de waarde van de -UploadReadChangesPerBatch-parameter, voegt een nieuwe -ExchangeType-parameter toe en geeft informatie terug over het aangemaakte profiel.
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
Gebruik van RMO
Om een nieuw agentenprofiel aan te maken
Maak een verbinding met de Distributeur door gebruik te maken van een instantie van de ServerConnection klasse.
Maak een exemplaar van de AgentProfile-klasse.
Stel de volgende eigenschappen in op het object:
Name - De naam van het profiel.
AgentType - een AgentType waarde die het type replicatieagent specificeert waarvoor het profiel wordt aangemaakt.
ConnectionContext - de ServerConnection gemaakt in stap 1.
(Optioneel) Description - een beschrijving van het profiel.
(Optioneel) Default - stel deze eigenschap in op true als dit profiel standaard wordt gebruikt voor alle nieuwe agenttaken voor deze AgentType.
Roep de Create methode aan om het profiel op de server aan te maken.
Zodra het profiel op de server staat, kun je het aanpassen door de parameters van replicatieagenten toe te voegen, te verwijderen of te wijzigen.
Om het profiel toe te wijzen aan een bestaande replicatieagent-taak, roep de AssignToAgent methode aan. Geef de naam van de distributiedatabase voor distributieDBName en de ID van de taak door voor agentID.
Om een bestaand agentprofiel te wijzigen
Maak een verbinding met de Distributeur door gebruik te maken van een instantie van de ServerConnection klasse.
Maak een exemplaar van de ReplicationServer-klasse. Geef het ServerConnection-object dat in stap 1 is gemaakt door.
Roep de LoadProperties methode aan. Als deze methode false teruggeeft, verifieer dan dat de Distributor bestaat.
Roep de EnumAgentProfiles methode aan. Geef een AgentType waarde door om de geretourneerde profielen te beperken tot een specifiek type replicatieagent.
Haal het gewenste AgentProfile object uit het teruggegeven ArrayList, waarbij de Name eigenschap van het object overeenkomt met de profielnaam.
Roep een van de volgende methoden aan AgentProfile om het profiel te wijzigen:
AddParameter - voegt een ondersteunde parameter toe aan het profiel, waarbij naam de naam is van de replicatieagentparameter en waarde de gespecificeerde waarde. Om alle ondersteunde agentparameters voor een bepaald agenttype op te sommen, roep je de EnumParameterInfo methode aan. Deze methode geeft een van AgentProfileParameterInfo objecten ArrayList terug die alle ondersteunde parameters vertegenwoordigen.
RemoveParameter - verwijdert een bestaande parameter uit het profiel, waarbij de naam de naam is van de parameter van de replicatieagent. Om alle huidige agentparameters voor het profiel op te sommen, roep de EnumParameters methode aan. Deze methode geeft een van AgentProfileParameter objecten ArrayList terug die de bestaande parameter voor dit profiel vertegenwoordigen.
ChangeParameter - verandert de instelling van een bestaande parameter in het profiel, waarbij naam de naam is van de agentparameter en newValue de waarde waarnaar de parameter wordt veranderd. Om alle huidige agentparameters voor het profiel op te sommen, roep de EnumParameters methode aan. Deze methode geeft een van AgentProfileParameter objecten ArrayList terug die de bestaande parameter voor dit profiel vertegenwoordigen. Om alle ondersteunde agentparameterinstellingen op te sommen, roep de EnumParameterInfo methode aan. Deze methode geeft een van AgentProfileParameterInfo objecten ArrayList terug die de ondersteunde waarden voor alle parameters vertegenwoordigen.
Om een agentprofiel te verwijderen
Maak een verbinding met de Distributeur door gebruik te maken van een instantie van de ServerConnection klasse.
Maak een exemplaar van de AgentProfile-klasse. Stel de naam van het profiel in voor Name en de ServerConnection van stap 1 voor ConnectionContext.
Roep de LoadProperties methode aan. Als deze methode false teruggeeft, was de opgegeven naam ójuist of bestaat het profiel niet op de server.
Controleer of de Type eigenschap is ingesteld op User, wat een klantprofiel aangeeft. Je moet een profiel niet verwijderen dat een waarde van System voor Typeheeft.
Roep de Remove methode aan om het door de gebruiker gedefinieerde profiel dat door dit object wordt weergegeven van de server te verwijderen.
Vervolg: Na het wijzigen van agentparameters
Wijzigingen in de agentparameter worden van kracht wanneer de agent de volgende keer wordt gestart. Als de agent continu wordt uitgevoerd, moet u de agent stoppen en opnieuw starten. Vanaf SQL Server 2017 CU3 worden sommige wijzigingen in agentparameters ingevoerd zonder dat de agenten opnieuw hoeven te starten.