Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Managed Instance
Toto téma popisuje, jak pracovat s profily replikačních agentů v SQL Server pomocí SQL Server Management Studio, Transact-SQL nebo Replication Management Objects (RMO). Chování každého replikačního agentu je řízeno sadou parametrů, které lze nastavit pomocí profilů agentů. Každý agent má výchozí profil a někteří mají další předdefinované profily; V daném okamžiku je pro agenta aktivní pouze jeden profil.
Použití aplikace SQL Server Management Studio
Pro přístup k dialogovému oknu Profily agentů ze SQL Server Management Studio
- Na stránce Obecné dialogového okna Vlastnosti distributoru – <Distributor> klikněte na možnost Výchozí nastavení profilu.
Pro přístup k dialogovému oknu Profily agentů z Monitoru replikace
Pro otevření dialogového okna pro všechny agenty klikněte pravým tlačítkem na Publisher a poté klikněte na Profily agentů.
Pro otevření dialogového okna pro jednoho agenta:
Rozbalte skupinu Publisherů v levém podokně Sledování replikace, rozbalte Publisher a potom klikněte na publikaci.
Pro profily Distribution Agent a Merge Agent klikněte pravým tlačítkem na předplatné na záložku Všechna odběry a poté klikněte na Profil agenta. U ostatních agentů klikněte pravým tlačítkem na agenta na záložce Agenti a poté klikněte na Profil agenta.
Pro zadání profilu pro agenta
Pokud se v dialogovém okně Profily agentů zobrazí profily více agentů, vyberte jednoho agenta.
Vyberte profil ve sloupci Výchozí pro nové v tabulce Profily agentů. Profil je ve výchozím nastavení aplikován pouze na agenty nových publikací a odběrů.
Chcete-li specifikovat, že všichni agenti vybraného typu pro existující publikace nebo předplatné by měli používat tento profil, klikněte na Změnit stávající agenty.
Pro zobrazení a úpravu parametrů spojených s profilem
Pokud se v dialogovém okně Profily agentů zobrazí profily více agentů, vyberte jednoho agenta.
Klikněte na tlačítko vlastnosti (...) vedle profilu.
Parametry a hodnoty zobrazte v <dialogovém okně Vlastnosti profilu ProfileName>.
Parametry v uživatelsky definovaných profilech lze upravovat; parametry v předdefinovaných systémových profilech ne.
Pro zobrazení všech parametrů agenta vyškrtněte políčko Zobrazit pouze parametry použité v tomto profilu . Pro informace o parametrech agentů viz odkazy na konci tohoto tématu.
Klepněte na tlačítko Zavřít.
Pro vytvoření uživatelem definovaného profilu
Pokud se v dialogovém okně Profily agentů zobrazí profily více agentů, vyberte jednoho agenta.
Klikněte na tlačítko Nový.
V dialogovém okně inicializace nového profilu agenta vyberte existující profil, na kterém založíte nový profil.
V dialogovém okně Nový profil agenta zadejte hodnoty do textových polí Jméno a Popis .
Upravte parametry pro přizpůsobení profilu. Pro zobrazení všech parametrů agenta vyškrtněte políčko Zobrazit pouze parametry použité v tomto profilu . Pro informace o parametrech agentů viz odkazy na konci tohoto tématu.
Vyberte OK.
Pro smazání uživatelem definovaného profilu
Pokud se v dialogovém okně Profily agentů zobrazí profily více agentů, vyberte jednoho agenta.
Pokud je profil spojen s jedním nebo více agenty, změňte profil těchto agentů:
Vyberte jiný profil v mřížce profilů agentů .
Klikněte na Změnit stávající agenty.
Note
Tím se změní profil všech agentů vybraného typu u existujících publikací nebo odběrů, nejen těch, kteří používají profil, který chcete smazat.
Vyberte profil, který chcete smazat, a klikněte na Smazat.
Vyberte OK.
Použití Transact-SQL
Pro vytvoření nového profilu agenta
Na serveru Distributor spusťte sp_add_agent_profile (Transact-SQL). Zadejte @name, hodnotu 1 pro @profile_type a jednu z následujících hodnot pro @agent_type:
Pokud se tento profil stane novým výchozím profilem pro svůj typ replikačního agenta, zadejte hodnotu 1 pro @default. Identifikátor nového profilu se vrací pomocí výstupního parametru @profile_id . Tím vzniká nový profil se sadou parametrů profilu založenými na výchozím profilu pro daný typ agenta.
Po vytvoření nového profilu přidejte, odeberte nebo upravte výchozí parametry a přizpůsobte profil.
Pro úpravu existujícího profilu agenta
Na serveru Distributor spusťte sp_help_agent_profile (Transact-SQL). Zadejte jednu z následujících hodnot pro @agent_type:
Tím se vrátí všechny profily pro daný typ agenta. Všimněte si hodnoty profile_id ve výsledné množině pro změnu profilu.
U distributora provést sp_help_agent_parameter (Transact-SQL). Zadejte identifikátor profilu od kroku 1 pro @profile_id. Tím se vrátí všechny parametry profilu. Všimněte si názvu jakýchkoli parametrů, které je třeba z profilu upravit nebo odstranit.
Pro změnu hodnoty parametru v profilu spusťte sp_change_agent_parameter (Transact-SQL). Specifikujte identifikátor profilu z kroku 1 pro @profile_id, název parametru, který se změní pro @parameter_name, a novou hodnotu parametru pro @parameter_value.
Note
Nemůžete změnit stávající profil agenta tak, aby se stal výchozím profilem pro agenta. Místo toho musíte vytvořit nový profil jako výchozí profil, jak bylo ukázáno v předchozím postupu.
Pro odstranění parametru z profilu proveďte sp_drop_agent_parameter (Transact-SQL). Zadejte identifikátor profilu z kroku 1 pro @profile_id a název parametru, který se odstraní pro @parameter_name.
Pro přidání nového parametru do profilu musíte udělat následující:
Dotazem na tabulku MSagentparameterlist (Transact-SQL) u distributora zjistíte, které parametry profilu lze nastavit pro jednotlivé typy agentů.
Na serveru Distributor spusťte sp_add_agent_parameter (Transact-SQL). Specifikujte identifikátor profilu z kroku 1 pro @profile_id, název platného parametru pro přidání pro @parameter_name a hodnotu parametru pro @parameter_value.
Smazání profilu agenta
U distributora provést sp_help_agent_profile (Transact-SQL). Zadejte jednu z následujících hodnot pro @agent_type:
Tím se vrátí všechny profily pro daný typ agenta. Poznamenejte si hodnotu profile_id v sadě výsledků u profilu, který chcete odstranit.
V distributorovi spusťte sp_drop_agent_profile (Transact-SQL). Zadejte identifikátor profilu od kroku 1 pro @profile_id.
Pro použití profilů agentů během synchronizace
Na serveru Distributor spusťte sp_help_agent_profile (Transact-SQL). Zadejte jednu z následujících hodnot pro @agent_type:
Tím se vrátí všechny profily pro daný typ agenta. Poznamenejte si hodnotu profile_name ve výsledné množině u profilu, který chcete použít.
Pokud je agent spuštěn z agentní úlohy, upravte krok úlohy, který agenta spouští, tak, aby specifikoval hodnotu profile_name získanou v kroku 1 po parametru příkazového řádku -ProfileName . Pro více informací viz Zobrazit a upravit parametry příkazového řádku replikačního agenta (SQL Server Management Studio).
Při spuštění agenta z příkazového řádku zadejte hodnotu profile_name získanou v kroku 1 za parametrem příkazového řádku -ProfileName .
Příklad (Transact-SQL)
Tento příklad vytváří vlastní profil pro Merge Agent pojmenovaný custom_merge, mění hodnotu parametru -UploadReadChangesPerBatch, přidává nový parametr -ExchangeType a vrací informace o vytvořeném profilu.
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
Použití RMO
Pro vytvoření nového profilu agenta
Vytvořte spojení s distributorem pomocí instance této třídy ServerConnection .
Vytvořte instanci AgentProfile třídy.
Nastavte na objekt následující vlastnosti:
Name - Název profilu.
AgentType - hodnota AgentType , která určuje typ replikačního agentu, pro který je profil vytvářen.
ConnectionContext – ServerConnection vytvořené v kroku 1.
(Volitelné) Description - popis profilu.
(Volitelné) Default - nastavte tuto vlastnost na True , pokud všechny nové agentní úlohy pro tuto hodnotu AgentType budou tento profil používat ve výchozím nastavení.
Zavolejte metodu Create pro vytvoření profilu na serveru.
Jakmile profil existuje na serveru, můžete jej přizpůsobit přidáním, odstraněním nebo změnou hodnot parametrů replikačního agentu.
Pro přiřazení profilu k existující replicační agentní úlohě zavolejte metodu AssignToAgent . Předejte název distribuční databáze pro distribuDBName a ID úlohy pro agentID.
Pro úpravu existujícího profilu agenta
Vytvořte spojení s distributorem pomocí instance této třídy ServerConnection .
Vytvořte instanci ReplicationServer třídy. Předejte ServerConnection objekt vytvořený v kroku 1.
Zavolejte metodu LoadProperties . Pokud tato metoda vrací false, ověřte, že distributor existuje.
Zavolejte metodu EnumAgentProfiles . Předejte AgentType hodnotu pro zúžení vrácených profilů na konkrétní typ replikačního agentu.
Získejte požadovaný AgentProfile objekt z vráceného ArrayList, kde Name vlastnost objektu odpovídá názvu profilu.
Chcete-li změnit profil, zavolejte jednu z následujících metod objektu AgentProfile:
AddParameter - přidává podporovaný parametr do profilu, kde název je název parametru replikačního agenta a hodnota je zadaná hodnota. Pro vyjmenování všech podporovaných parametrů agenta pro daný typ agenta voláme metodu EnumParameterInfo . Tato metoda vrací ArrayList objektů AgentProfileParameterInfo, které představují všechny podporované parametry.
RemoveParameter - odstraní existující parametr z profilu, kde název je název parametru replikačního agentu. Pro vyjmenování všech aktuálních parametrů agenta definovaných pro profil voláme metodu EnumParameters . Tato metoda vrací ArrayList objektů typu AgentProfileParameter, které představují existující parametr tohoto profilu.
ChangeParameter - mění nastavení existujícího parametru v profilu, kde název je název parametru agenta a newValue je hodnota, na kterou se parametr mění. Pro vyjmenování všech aktuálních parametrů agenta definovaných pro profil voláme metodu EnumParameters . Tato metoda vrací ArrayList objektů AgentProfileParameter, které představují existující parametr pro tento profil. Pro vyjmenování všech podporovaných nastavení parametrů agenta zavolejte metodu EnumParameterInfo . Tato metoda vrací objekty ArrayListAgentProfileParameterInfo , které reprezentují podporované hodnoty pro všechny parametry.
Smazání profilu agenta
Vytvořte spojení s distributorem pomocí instance této třídy ServerConnection .
Vytvořte instanci AgentProfile třídy. Nastavte název profilu pro Name a ServerConnection z kroku 1 pro ConnectionContext.
Zavolejte metodu LoadProperties . Pokud tato metoda vrací false, buď byl zadaný název nesprávný, nebo profil na serveru neexistuje.
Ověřte, že vlastnost Type je nastavena na User, což označuje profil zákazníka. Neměli byste odstraňovat profil, který má hodnotu System pro Type.
Zavolejte metodu Remove pro odstranění uživatelsky definovaného profilu reprezentovaného tímto objektem ze serveru.
Následné kroky: Po změně parametrů látky
Změny parametrů agenta se projeví při příštím spuštění agenta. Pokud agent běží nepřetržitě, musíte agenta zastavit a restartovat. Od SQL Server 2017 CU3 se některé změny parametrů agentů uplatňují bez nutnosti restartovat agenty.