レプリケーション エージェント プロファイルを扱う方法 (レプリケーション Transact-SQL プログラミング)
エージェント プロファイルを使用して、エージェント ジョブを作成するときの既定の値を定義します。各エージェントには既定のプロファイルがあり、定義済みプロファイルが追加されたエージェントもあります。レプリケーション ストアド プロシージャを使用して、ユーザー定義のプロファイルを作成できます。エージェント プロファイルの詳細については、「レプリケーション エージェント プロファイル」を参照してください。
注 |
---|
定義済みのプロファイルは、変更したり削除しないでください。エージェント パラメータの変更は、エージェントの次回起動時に反映されます。エージェントを継続して実行している場合は、そのエージェントを停止して再起動する必要があります。 |
新しいエージェント プロファイルを作成するには
ディストリビュータで、sp_add_agent_profile (Transact-SQL) を実行します。@name を指定し、@profile_type に 1 を、@agent_type に次のいずれかの値を指定します。
このプロファイルがこの種類のレプリケーション エージェントの新しい既定のプロファイルになる場合、@default に 1 を指定します。新しいプロファイルの ID は、@profile_id 出力パラメータにより返されます。これにより、特定の種類のエージェントの既定のプロファイルに基づいたプロファイル パラメータのセットを備えた、新しいプロファイルが作成されます。
新しいプロファイルを作成したら、既定のパラメータを追加、削除、変更してプロファイルをカスタマイズします。
既存のエージェント プロファイルを変更するには
ディストリビュータで、sp_help_agent_profile (Transact-SQL) を実行します。次のいずれかの値を @agent_type に指定します。
これにより、指定された種類のエージェントのプロファイルがすべて返されます。変更するプロファイルの結果セットで profile_id の値を確認します。
ディストリビュータで、sp_help_agent_parameter (Transact-SQL) を実行します。手順 1. で確認したプロファイル ID を @profile_id に指定します。これにより、プロファイルのすべてのパラメータが返されます。変更するパラメータ、またはプロファイルから削除するパラメータの名前を確認します。
プロファイルのパラメータの値を変更するには、sp_change_agent_profile (Transact-SQL) を実行します。手順 1. で確認したプロファイル ID を @profile_id に指定し、変更するパラメータの名前を @property に、パラメータの新しい値を @value に指定します。
注 既存のエージェント プロファイルを変更して、エージェントの既定のプロファイルにすることはできません。代わりに、前の手順に示すように、新しいプロファイルを既定のプロファイルとして作成する必要があります。
プロファイルからパラメータを削除するには、sp_drop_agent_parameter (Transact-SQL) を実行します。手順 1. で確認したプロファイル ID を @profile_id に指定し、削除するパラメータの名前を @parameter_name に指定します。
プロファイルに新しいパラメータを追加するには、次の手順を実行する必要があります。
ディストリビュータの MSagentparameterlist (Transact-SQL) テーブルに対してクエリを実行し、各種類のエージェントに設定できるプロファイル パラメータを確認します。
ディストリビュータで、sp_add_agent_parameter (Transact-SQL) を実行します。手順 1. で確認したプロファイル ID を @profile_id に指定し、追加する有効なパラメータの名前を @parameter_name に、パラメータの値を @parameter_value に指定します。
エージェント プロファイルを削除するには
ディストリビュータで、sp_help_agent_profile (Transact-SQL) を実行します。次のいずれかの値を @agent_type に指定します。
これにより、指定された種類のエージェントのプロファイルがすべて返されます。削除するプロファイルの結果セットで profile_id の値を確認します。
ディストリビュータで、sp_drop_agent_profile (Transact-SQL) を実行します。手順 1. で確認したプロファイル ID を @profile_id に指定します。
同期の際にエージェント プロファイルを使用するには
ディストリビュータで、sp_help_agent_profile (Transact-SQL) を実行します。次のいずれかの値を @agent_type に指定します。
これにより、指定された種類のエージェントのプロファイルがすべて返されます。使用するプロファイルの結果セットで profile_name の値を確認します。
エージェントがエージェント ジョブから起動される場合、エージェントを起動するジョブ ステップを編集して、手順 1. で得た profile_name の値を -ProfileName コマンド ライン パラメータの後に指定します。詳細については、「レプリケーション エージェント コマンド プロンプト パラメータを表示および変更する方法 (SQL Server Management Studio)」を参照してください。
コマンド プロンプトからエージェントを起動する場合、手順 1. で得た profile_name の値を -ProfileName コマンド ライン パラメータの後に指定します。
使用例
次の例では、custom_merge という名前のマージ エージェント用のカスタム プロファイルを作成して、-UploadReadChangesPerBatch パラメータの値を変更し、-ExchangeType パラメータを新しく追加して、作成されたプロファイルに関する情報を返します。
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