sp_addpullsubscription_agent (Transact-SQL)
トランザクション パブリケーションに対するプル サブスクリプションの同期で使用される、スケジュールされたエージェント ジョブを追加します。 このストアド プロシージャは、サブスクライバー側でサブスクリプション データベースについて実行されます。
構文
sp_addpullsubscription_agent [ @publisher = ] 'publisher'
[ , [ @publisher_db = ] 'publisher_db' ]
, [ @publication = ] 'publication'
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @subscriber_db = ] 'subscriber_db' ]
[ , [ @subscriber_security_mode = ] subscriber_security_mode ]
[ , [ @subscriber_login = ] 'subscriber_login' ]
[ , [ @subscriber_password = ] 'subscriber_password' ]
[ , [ @distributor = ] 'distributor' ]
[ , [ @distribution_db = ] 'distribution_db' ]
[ , [ @distributor_security_mode = ] distributor_security_mode ]
[ , [ @distributor_login = ] 'distributor_login' ]
[ , [ @distributor_password = ] 'distributor_password' ]
[ , [ @optional_command_line = ] 'optional_command_line' ]
[ , [ @frequency_type = ] frequency_type ]
[ , [ @frequency_interval = ] frequency_interval ]
[ , [ @frequency_relative_interval = ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
[ , [ @frequency_subda y= ] frequency_subday ]
[ , [ @frequency_subday_interval = ] frequency_subday_interval ]
[ , [ @active_start_time_of_day = ] active_start_time_of_day ]
[ , [ @active_end_time_of_day = ] active_end_time_of_day ]
[ , [ @active_start_date = ] active_start_date ]
[ , [ @active_end_date = ] active_end_date ]
[ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
[ , [ @encrypted_distributor_password = ] encrypted_distributor_password ]
[ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ]
[ , [ @ftp_address = ] 'ftp_address' ]
[ , [ @ftp_port = ] ftp_port ]
[ , [ @ftp_login = ] 'ftp_login' ]
[ , [ @ftp_password = ] 'ftp_password' ]
[ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ]
[ , [ @working_directory = ] 'working_directory' ]
[ , [ @use_ftp = ] 'use_ftp' ]
[ , [ @publication_type = ] publication_type ]
[ , [ @dts_package_name = ] 'dts_package_name' ]
[ , [ @dts_package_password = ] 'dts_package_password' ]
[ , [ @dts_package_location = ] 'dts_package_location' ]
[ , [ @reserved = ] 'reserved' ]
[ , [ @offloadagent = ] 'remote_agent_activation' ]
[ , [ @offloadserver = ] 'remote_agent_server_name']
[ , [ @job_name = ] 'job_name' ]
[ , [ @job_login = ] 'job_login' ]
[ , [ @job_password = ] 'job_password' ]
引数
[ @publisher=] 'publisher'
パブリッシャーの名前です。 publisher のデータ型は sysname で、既定値はありません。[ @publisher_db=] **'**publisher_db'
パブリッシャー データベースの名前です。 publisher_db のデータ型は sysname で、既定値は NULL です。 publisher_db は Oracle パブリッシャーでは無視されます。[ @publication=] 'publication'
パブリケーションの名前です。 publication のデータ型は sysname で、既定値はありません。[ @subscriber=] 'subscriber'
サブスクライバーの名前です。 subscriber のデータ型は sysname で、既定値は NULL です。注 このパラメーターは、スクリプトの下位互換性を確保するために用意されているものであり、推奨されません。
[ @subscriber_db=] 'subscriber_db'
サブスクリプション データベースの名前です。 subscriber_db のデータ型は sysname で、既定値は NULL です。注 このパラメーターは、スクリプトの下位互換性を確保するために用意されているものであり、推奨されません。
[ @subscriber_security_mode=] subscriber_security_mode
サブスクライバーへ接続して同期するときに使用するセキュリティ モードを指定します。 subscriber_security_mode のデータ型は int で、既定値は NULL です。 0 は SQL Server 認証を表します。 1 は Windows 認証を表します。注 このパラメーターは、スクリプトの下位互換性を確保するために用意されているものであり、使用は推奨されません。 ディストリビューション エージェントは常に Windows 認証を使用してローカル サブスクライバーに接続します。 このパラメーターに NULL または 1 以外の値を指定した場合は、警告メッセージが返されます。
[ @subscriber_login =] 'subscriber_login'
サブスクライバーへ接続して同期するときに使用するサブスクライバー ログインを指定します。subscriber_login のデータ型は sysname で、既定値は NULL です。注 このパラメーターは、スクリプトの下位互換性を確保するために用意されているものであり、使用は推奨されません。 このパラメーターに値を指定した場合は、警告メッセージが返されますが、値は無視されます。
[ @subscriber_password=] 'subscriber_password'
サブスクライバーのパスワードです。 subscriber_security_mode が 0 の場合は subscriber_password が必要です。 subscriber_password のデータ型は sysname で、既定値は NULL です。 サブスクライバー パスワードを使用する場合、サブスクライバー パスワードは自動的に暗号化されます。注 このパラメーターは、スクリプトの下位互換性を確保するために用意されているものであり、使用は推奨されません。 このパラメーターに値を指定した場合は、警告メッセージが返されますが、値は無視されます。
[ @distributor=] 'distributor'
ディストリビューターの名前です。 distributor のデータ型は sysname です。publisher で指定されている値が既定値になります。[ @distribution_db=] 'distribution_db'
ディストリビューション データベースの名前を指定します。 distribution_db のデータ型は sysname で、既定値は NULL です。[ @distributor_security_mode=] distributor_security_mode
ディストリビューターへ接続して同期するときに使用するセキュリティ モードを指定します。 distributor_security_mode のデータ型は int で、既定値は 1 です。0 は SQL Server 認証を表します。 1 は Windows 認証を指定します。セキュリティに関する注意 可能な場合は、Windows 認証を使用します。
[ @distributor_login=] 'distributor_login'
ディストリビューターへ接続して同期するときに使用するディストリビューター ログインを指定します。 distributor_security_mode を 0 に設定した場合は、distributor_login を指定する必要があります。 distributor_login のデータ型は sysname で、既定値は NULL です。[ @distributor_password =] 'distributor_password'
ディストリビューターのパスワードです。 distributor_security_mode を 0 に設定した場合は、distributor_password を指定する必要があります。 distributor_password のデータ型は sysname で、既定値は NULL です。セキュリティに関する注意 空白のパスワードは使用しないでください。 強力なパスワードを使用してください。 可能であれば、実行時、ユーザーに対してセキュリティ資格情報の入力を要求します。 スクリプト ファイルに資格情報を格納する必要がある場合は、不正アクセスを防ぐために、ファイルを保護します。
[ @optional_command_line=] 'optional_command_line'
ディストリビューション エージェントに与えられるコマンド プロンプトで、省略可能です。 たとえば、-DefinitionFile C:\Distdef.txt または -CommitBatchSize 10 のように指定します。 optional_command_line のデータ型は nvarchar(4000) で、既定値は空の文字列です。[ @frequency_type=] frequency_type
ディストリビューション エージェントをスケジュールに組み込む頻度を指定します。 frequency_type のデータ型は int で、次のいずれかの値を指定できます。値
説明
1
指定日時
2 (既定値)
要求時
4
毎日
8
毎週
16
毎月
32
月単位
64
自動的に起動
128
定期的
注 値 64 を指定すると、ディストリビューション エージェントは連続モードで実行されます。 これはエージェントに -Continuous パラメーターを設定することに相当します。 詳細については、「レプリケーション ディストリビューション エージェント」を参照してください。
[ @frequency_interval=] frequency_interval
frequency_type で設定した頻度に適用される値を指定します。 frequency_interval のデータ型は int で、既定値は 1 です。[ @frequency_relative_interval=] frequency_relative_interval
ディストリビューション エージェントを実行する日付を指定します。 frequency_type を 32 (月単位) に設定したときにこのパラメーターを使用します。 frequency_relative_interval のデータ型は int で、次のいずれかの値を指定できます。値
説明
1 (既定値)
第 1
2
第 2
4
第 3
8
第 4
16
最終
[ @frequency_recurrence_factor=] frequency_recurrence_factor
frequency_type で使用される定期実行係数を指定します。 frequency_recurrence_factor のデータ型は int で、既定値は 1 です。[ @frequency_subday=] frequency_subday
定義した期間にスケジュールを組み直す頻度を指定します。 frequency_subday のデータ型は int で、次のいずれかの値を指定できます。値
説明
1 (既定値)
1 回のみ
2
秒
4
分
8
時
[ @frequency_subday_interval=] frequency_subday_interval
frequency_subday の間隔を指定します。 frequency_subday_interval のデータ型は int で、既定値は 1 です。[ @active_start_time_of_day=] active_start_time_of_day
ディストリビューション エージェントを最初にスケジュール設定する時刻を HHMMSS 形式で指定します。 active_start_time_of_day のデータ型は int で、既定値は 0 です。[ @active_end_time_of_day=] active_end_time_of_day
ディストリビューション エージェントのスケジュール設定を停止する時刻を HHMMSS 形式で指定します。 active_end_time_of_day のデータ型は int で、既定値は 0 です。[ @active_start_date=] active_start_date
ディストリビューション エージェントを最初にスケジュール設定する日付を YYYYMMDD 形式で指定します。 active_start_date のデータ型は int で、既定値は 0 です。[ @active_end_date=] active_end_date
ディストリビューション エージェントのスケジュール設定を停止する日付を YYYYMMDD 形式で指定します。 active_end_date のデータ型は int で、既定値は 0 です。[ @distribution_jobid =] distribution_jobidOUTPUT
このジョブのディストリビューションの ID を指定します。 distribution_jobid のデータ型は binary(16) で、既定値は NULL です。これは OUTPUT パラメーターです。[ @encrypted_distributor_password=] encrypted_distributor_password
encrypted_distributor_password の設定はサポートされなくなりました。 この bit パラメーターを 1 に設定すると、エラーになります。[ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
Microsoft 同期マネージャーを介したサブスクリプションの同期が可能かどうかを指定します。enabled_for_syncmgr のデータ型は nvarchar(5) で、既定値は FALSE です。 false の場合、サブスクリプションは同期マネージャーに登録されません。 true の場合、サブスクリプションは同期マネージャーに登録され、SQL Server Management Studio を起動しなくても同期できます。[ @ftp_address=] 'ftp_address'
これは旧バージョンとの互換性のためにだけ用意されています。[ @ftp_port=] ftp_port
これは旧バージョンとの互換性のためにだけ用意されています。[ @ftp_login=] 'ftp_login'
これは旧バージョンとの互換性のためにだけ用意されています。[ @ftp_password=] 'ftp_password'
これは旧バージョンとの互換性のためにだけ用意されています。[ @alt_snapshot_folder= ] **'**alternate_snapshot_folder'
スナップショットの代替フォルダーの場所を指定します。 alternate_snapshot_folder のデータ型は nvarchar(255) で、既定値は NULL です。[ @working_directory= ] 'working_director'
パブリケーション用のデータ ファイルとスキーマ ファイルの格納に使用する作業ディレクトリの名前を指定します。 working_directory のデータ型は nvarchar(255) で、既定値は NULL です。 名前は UNC 形式で指定する必要があります。[ @use_ftp= ] 'use_ftp'
標準のプロトコルの代わりに FTP を使用してスナップショットを取得します。 use_ftp のデータ型は nvarchar(5) で、既定値は FALSE です。[ @publication_type= ] publication_type
パブリケーションのレプリケーションの種類を指定します。 publication_type のデータ型は tinyint で、既定値は 0 です。 0 を指定すると、パブリケーションはトランザクション タイプになります。 1 を指定すると、パブリケーションはスナップショット タイプになります。 2 を指定すると、パブリケーションはマージ タイプになります。[ @dts_package_name= ] 'dts_package_name'
DTS パッケージの名前を指定します。 dts_package_name のデータ型は sysname で、既定値は NULL です。 たとえば、DTSPub_Package というパッケージを指定するには、パラメーターを @dts\_package\_name = N'DTSPub_Package' と設定します。[ @dts_package_password= ] 'dts_package_password'
パッケージのパスワード (ある場合) を指定します。 dts_package_password のデータ型は sysname で、既定値は NULL です。既定値は、パッケージにパスワードがないことを表します。注 dts_package_name を指定した場合は、パスワードを指定する必要があります。
[ @dts_package_location= ] 'dts_package_location'
パッケージの場所を指定します。 dts_package_location のデータ型は nvarchar(12) で、既定値は subscriber です。 パッケージの場所としては、distributor または subscriber を指定できます。[ @reserved= ] 'reserved'
単に情報を示すためだけに特定されます。サポートされていません。将来の互換性は保証されません。[ @offloadagent= ] 'remote_agent_activation'
注 リモート エージェント アクティブ化は現在サポートされておらず、使用は推奨されません。 このパラメーターは、スクリプトの下位互換性を確保するためだけに用意されています。 remote_agent_activation に false 以外の値を指定すると、エラーが発生します。
[ @offloadserver= ] 'remote_agent_server_name'
注 リモート エージェント アクティブ化は現在サポートされておらず、使用は推奨されません。 このパラメーターは、スクリプトの下位互換性を確保するためだけに用意されています。 remote_agent_server_name に NULL 以外の値を指定すると、エラーが発生します。
[ @job_name= ] 'job_name'
既存のエージェント ジョブの名前を指定します。 job_name のデータ型は sysname で、既定値は NULL です。 このパラメーターは、新しく作成したジョブ (既定値) の代わりに既存のジョブを使ってサブスクリプションを同期するときにだけ指定します。 sysadmin 固定サーバー ロールのメンバーではない場合、job_name を指定するときには job_login および job_password を指定する必要があります。[ @job_login= ] 'job_login'
エージェントを実行する Windows アカウント用のログインを指定します。 job_login のデータ型は nvarchar(257) で、既定値はありません。 この Windows アカウントはサブスクライバーへのエージェント接続で常に使用されます。[ @job_password= ] 'job_password'
エージェントを実行する Windows アカウント用のパスワードを指定します。 job_password のデータ型は sysname で、既定値はありません。セキュリティに関する注意 可能であれば、実行時、ユーザーに対してセキュリティ資格情報の入力を要求します。 スクリプト ファイルに資格情報を格納する必要がある場合は、不正アクセスを防ぐために、ファイルを保護します。
戻り値
0 (成功) または 1 (失敗)
説明
sp_addpullsubscription_agent は、スナップショット レプリケーションおよびトランザクション レプリケーションで使用します。
使用例
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). 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".
-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2012';
-- At the subscription database, create a pull subscription
-- to a transactional publication.
USE [AdventureWorks2012Replica]
EXEC sp_addpullsubscription
@publisher = @publisher,
@publication = @publication,
@publisher_db = @publicationDB;
-- Add an agent job to synchronize the pull subscription.
EXEC sp_addpullsubscription_agent
@publisher = @publisher,
@publisher_db = @publicationDB,
@publication = @publication,
@distributor = @publisher,
@job_login = $(Login),
@job_password = $(Password);
GO
権限
sp_addpullsubscription_agent を実行できるのは、sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバーだけです。
関連項目
参照
sp_addpullsubscription (Transact-SQL)
sp_change_subscription_properties (Transact-SQL)
sp_droppullsubscription (Transact-SQL)
sp_helppullsubscription (Transact-SQL)
sp_helpsubscription_properties (Transact-SQL)