sp_addpublication_snapshot (Transact-SQL)
更新 : 2006 年 12 月 12 日
指定されたパブリケーションのスナップショット エージェントを作成します。このストアド プロシージャは、パブリッシャ側でパブリケーション データベースについて実行されます。
セキュリティ メモ : |
---|
リモート ディストリビュータを使用するパブリッシャを構成する場合は、job_login および job_password を含め、すべてのパラメータの指定値がプレーン テキストとしてディストリビュータに送信されます。このストアド プロシージャを実行する前に、パブリッシャとそのリモート ディストリビュータ間の接続を暗号化する必要があります。詳細については、「SQL Server への接続の暗号化」を参照してください。 |
構文
sp_addpublication_snapshot [ @publication= ] 'publication' [ , [ @frequency_type= ] frequency_type ] [ , [ @frequency_interval= ] frequency_interval ] [ , [ @frequency_subday= ] frequency_subday ] [ , [ @frequency_subday_interval= ] frequency_subday_interval ] [ , [ @frequency_relative_interval= ] frequency_relative_interval ] [ , [ @frequency_recurrence_factor= ] frequency_recurrence_factor ] [ , [ @active_start_date= ] active_start_date ] [ , [ @active_end_date= ] active_end_date ] [ , [ @active_start_time_of_day= ] active_start_time_of_day ] [ , [ @active_end_time_of_day= ] active_end_time_of_day ] [ , [ @snapshot_job_name = ] 'snapshot_agent_name' ] [ , [ @publisher_security_mode = ] publisher_security_mode ] [ , [ @publisher_login = ] 'publisher_login' ] [ , [ @publisher_password = ] 'publisher_password' ] [ , [ @job_login = ] 'job_login' ] [ , [ @job_password = ] 'job_password' ] [ , [ @publisher = ] 'publisher' ]
引数
- [ @publication=] 'publication'
パブリケーションの名前を指定します。publication のデータ型は sysname で、既定値はありません。
[ @frequency_type=] frequency_type
スナップショット エージェントの実行頻度を指定します。frequency_type のデータ型は int で、次のいずれかの値をとります。値 説明 1
1 回のみ
4 (既定値)
毎日
8
毎週
16
毎月
32
月単位に frequency_interval で示される間隔
64
SQL Server エージェントの起動時
128
コンピュータがアイドル状態のときに実行
[ @frequency_interval=] frequency_interval
frequency_type で設定した頻度に適用される値を指定します。frequency_interval のデータ型は int で、次のいずれかの値を指定できます。frequency_type の値 frequency_interval への影響 1
frequency_interval は使用されません。
4 (既定値)
frequency_interval の日数ごとに実行されます。既定では毎日です。
8
frequency_interval には次の値を 1 つ以上指定できます (| (ビット演算子 OR) (Transact-SQL) 論理演算子で結合します)。
1 = 日曜日
2 = 月曜日
4 = 火曜日
8 = 水曜日
16 = 木曜日
32 = 金曜日
64 = 土曜日
16
毎月の frequency_interval で指定した日に実行されます。
32
frequency_interval は、次のいずれかの値です。
1 = 日曜日
2 = 月曜日
3 = 火曜日
4 = 水曜日
5 = 木曜日
6 = 金曜日
7 = 土曜日
8 = 毎日
9 = 平日
10 = 土日
64
frequency_interval は使用されません。
128
frequency_interval は使用されません。
[ @frequency_subday=] frequency_subday
freq_subday_interval の単位を指定します。frequency_subday のデータ型は int で、次のいずれかの値をとります。値 説明 1
1 回
2
秒
4 (既定値)
分
8
時
- [ @frequency_subday_interval=] frequency_subday_interval
frequency_subday の間隔を指定します。frequency_subday_interval のデータ型は int で、既定値は 5 (5 分間隔) です。
- [ @frequency_relative_interval=] frequency_relative_interval
スナップショット エージェントを実行する日付を指定します。frequency_relative_interval のデータ型は int で、既定値は 1 です。
- [ @frequency_recurrence_factor=] frequency_recurrence_factor
frequency_type で使用される定期実行係数を指定します。frequency_recurrence_factor のデータ型は 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 で、既定値は 9999 年 12 月 31 日です。
- [ @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 で、既定値は 235959 です。235959 は、24 時間制の午後 11 時 59 分 59 秒を意味します。
- [ @snapshot_job_name = ] 'snapshot_agent_name'
既存のジョブが使用されている場合、既存のスナップショット エージェントのジョブ名を指定します。snapshot_agent_name データ型は nvarchar(100) で、既定値は NULL です。このパラメータは内部でのみ使用するため、新しいパブリケーションを作成するときに指定する必要はありません。snapshot_agent_name を指定する場合、job_login と job_password の値は NULL にする必要があります。
- [ @publisher_security_mode= ] publisher_security_mode
パブリッシャに接続するときにエージェントが使用するセキュリティ モードです。publisher_security_mode のデータ型は smallint で、既定値は 1 です。0 は SQL Server 認証を表し、1 は Windows 認証を表します。0 の値は、SQL Server 以外のパブリッシャに対して指定する必要があります。
- [ @publisher_login= ] 'publisher_login'
パブリッシャへの接続時に使用するログインを指定します。publisher_login のデータ型は sysname で、既定値は NULL です。publisher_security_mode が 0 の場合は、publisher_login を指定する必要があります。publisher_login が NULL で publisher_security_mode が 1 の場合、パブリッシャへの接続時には job_login で指定した Windows アカウントが使用されます。
[ @publisher_password= ] 'publisher_password'
パブリッシャへの接続時に使用するパスワードを指定します。publisher_password のデータ型は sysname で、既定値は NULL です。セキュリティ メモ : スクリプト ファイルには認証情報を保存しないでください。ログイン名とパスワードは実行時に指定します。
- [ @job_login= ] 'job_login'
エージェントを実行する Windows アカウント用のログインを指定します。job_login のデータ型は nvarchar(257) で、既定値は NULL です。この Windows アカウントは、エージェントがディストリビュータに接続するときに常に使用されます。新しいスナップショット エージェント ジョブを作成するときにはこのパラメータを指定する必要があります。
[ @job_password= ] 'job_password'
エージェントを実行する Windows アカウント用のパスワードを指定します。job_password のデータ型は sysname で、既定値はありません。新しいスナップショット エージェント ジョブを作成するときにはこのパラメータを指定する必要があります。セキュリティ メモ : スクリプト ファイルには認証情報を保存しないでください。ログイン名とパスワードは実行時に指定します。
[ @publisher= ] 'publisher'
SQL Server 以外のパブリッシャを指定します。publisher のデータ型は sysname で、既定値は NULL です。メモ : SQL Server パブリッシャでスナップショット エージェントを作成するときは publisher を使用しないでください。
解説
sp_addpublication_snapshot は、スナップショット レプリケーション、トランザクション レプリケーション、マージ レプリケーションで使用されます。
権限
sp_addpublication_snapshot を実行できるのは、固定サーバー ロール sysadmin または固定データベース ロール db_owner のメンバだけです。
戻り値
成功した場合は 0 を、失敗した場合は 1 をそれぞれ返します。
使用例
-- To avoid storing the login and password in the script file, the values
-- are passed into SQLCMD as scripting variables. 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".
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks';
SET @publication = N'AdvWorksProductTran';
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login);
-- This should be passed at runtime.
SET @password = $(Password);
-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption
@dbname=@publicationDB,
@optname=N'publish',
@value = N'true';
-- Execute sp_addlogreader_agent to create the agent job.
EXEC sp_addlogreader_agent
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
-- Create a new transactional publication with the required properties.
EXEC sp_addpublication
@publication = @publication,
@status = N'active',
@allow_push = N'true',
@allow_pull = N'true',
@independent_agent = N'true';
-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
GO
参照
関連項目
sp_addpublication (Transact-SQL)
sp_changepublication_snapshot (Transact-SQL)
sp_startpublication_snapshot (Transact-SQL)
レプリケーション ストアド プロシージャ (Transact-SQL)
その他の技術情報
パブリケーションを作成する方法 (レプリケーション Transact-SQL プログラミング)
スナップショットの作成および適用
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2006 年 12 月 12 日 |
|