レプリケーション スナップショット エージェント
レプリケーション スナップショット エージェントは、パブリッシュされたテーブルおよびデータベース オブジェクトのスキーマとデータを含むスナップショット ファイルを作成し、これらのファイルをスナップショット フォルダに格納し、同期ジョブをディストリビューション データベースに記録する実行可能ファイルです。
構文
snapshot [ -?]
-Publisher server_name[\instance_name]
-Publication publication_name
[-70Subscribers]
[-BcpBatchSize bcp_batch_size]
[-DefinitionFile def_path_and_file_name]
[-Distributor server_name[\instance_name]]
[-DistributorDeadlockPriority [-1|0|1] ]
[-DistributorLogin distributor_login]
[-DistributorPassword distributor_password]
[-DistributorSecurityMode [0|1] ]
[-DynamicFilterHostName dynamic_filter_host_name]
[-DynamicFilterLogin dynamic_filter_login]
[-DynamicSnapshotLocation dynamic_snapshot_location]
[-EncryptionLevel [0|1|2]]
[-FieldDelimiter field_delimiter]
[-HistoryVerboseLevel [0|1|2|3] ]
[-HRBcpBlocks number_of_blocks ]
[-HRBcpBlockSize block_size ]
[-HRBcpDynamicBlocks ]
[-KeepAliveMessageInterval keep_alive_interval]
[-LoginTimeOut login_time_out_seconds]
[-MaxBcpThreads number_of_threads ]
[-MaxNetworkOptimization [0|1]]
[-Output output_path_and_file_name]
[-OutputVerboseLevel [0|1|2] ]
[-PacketSize packet_size]
[-ProfileName profile_name]
[-PublisherDB publisher_database]
[-PublisherDeadlockPriority [-1|0|1] ]
[-PublisherFailoverPartner server_name[\instance_name] ]
[-PublisherLogin publisher_login]
[-PublisherPassword publisher_password]
[-PublisherSecurityMode [0|1] ]
[-QueryTimeOut query_time_out_seconds]
[-ReplicationType [1|2] ]
[-RowDelimiter row_delimiter]
[-StartQueueTimeout start_queue_timeout_seconds]
[-UsePerArticleContentsView use_per_article_contents_view]
解説
メモ : |
---|
パラメータは任意の順序で指定できます。 |
引数
- -?
使用できるすべてのパラメータを表示します。
- -Publisher server_name[**\instance_name]
パブリッシャの名前です。サーバー上の Microsoft SQL Server の既定のインスタンスの場合は、server_name を指定します。サーバー上の SQL Server の名前付きインスタンスの場合は、server_name\**instance_name を指定します。
- -Publicationpublication
パブリケーションの名前です。このパラメータは、新規または再初期化されたサブスクリプションのスナップショットを常に利用できるようにパブリケーションを設定している場合にのみ有効です。
- -70Subscribers
いずれかのサブスクライバで SQL Server 7.0 が動作している場合に、必ず使用します。
- -BcpBatchSizebcp_ batch_ size
一括コピー操作によって送られる行の数です。bcp in 操作を実行する場合、バッチ サイズは 1 つのトランザクションとしてサーバーに送る行数です。ディストリビューション エージェントが bcp 実行状況メッセージをログに記録する前に、これらの行数を送る必要があります。bcp out 操作を実行する場合は、固定バッチ サイズ 1000 が使用されます。値 0 は、メッセージをログに記録しないことを示します。
- -DefinitionFiledef_path_and_file_name
エージェント定義ファイルのパスです。エージェント定義ファイルには、エージェントのコマンド ライン引数が含まれます。ファイルの内容は実行可能ファイルとして解析されます。二重引用符 (") を使用して、任意の文字を含む引数値を指定します。
- -Distributorserver_name[**\instance_name]
ディストリビュータの名前です。サーバー上の SQL Server の既定のインスタンスの場合は、server_name を指定します。サーバー上の SQL Server の名前付きインスタンスの場合は、server_name\**instance_name を指定します。
-DistributorDeadlockPriority [-1|0|1]
デッドロックが発生した場合のディストリビュータへのスナップショット エージェント接続の優先度です。このパラメータは、スナップショットの生成中にスナップショット エージェントとユーザー アプリケーション間で発生する可能性のあるデッドロックを解決するために指定します。DistributorDeadlockPriority の値 説明 -1
ディストリビュータ側でデッドロックが発生した場合、スナップショット エージェント以外のアプリケーションが優先されます。
0 (既定値)
優先度は割り当てられません。
1
ディストリビュータ側でデッドロックが発生した場合、スナップショット エージェントが優先されます。
- -DistributorLogindistributor_login
SQL Server 認証を使用してディストリビュータに接続するときに使用されるログインです。
- -DistributorPassworddistributor_password
SQL Server 認証を使用してディストリビュータに接続するときに使用されるパスワードです。 .
- -DistributorSecurityMode [0|1]
ディストリビュータのセキュリティ モードを指定します。値 0 は SQL Server 認証モード (既定値) を示し、値 1 は Windows 認証モードを示します。
- -DynamicFilterHostNamedynamic_filter_host_name
動的スナップショットの作成時に、フィルタ選択用の HOST_NAME (Transact-SQL) の値を設定するために使用されます。たとえば、アーティクルに対してサブセット フィルタ句rep_id = HOST_NAME()
を指定し、DynamicFilterHostName プロパティを "FBJones" に設定した後でマージ エージェントを呼び出すと、rep_id 列に "FBJones" が含まれる行だけがレプリケートされます。
- -DynamicFilterLogindynamic_filter_login
動的スナップショットの作成時に、フィルタ選択用の SUSER_SNAME (Transact-SQL) の値を設定するために使用されます。たとえば、アーティクルに対してサブセット フィルタ句user_id = SUSER_SNAME()
を指定し、DynamicFilterLogin プロパティを "rsmith" に設定した後で、SQLSnapshot オブジェクトの Run メソッドを呼び出すと、user_id 列に "rsmith" を含む行だけがスナップショットに含められます。
- -DynamicSnapshotLocationdynamic_snapshot_location
動的スナップショットの生成先の場所です。
-EncryptionLevel [0|1|2]
スナップショット エージェントが接続時に使用する SSL (Secure Sockets Layer) 暗号化レベルです。EncryptionLevel の値 説明 0
SSL は使用されません。
1
SSL は使用されますが、信頼できる発行者によって SSL サーバー証明が署名されているかどうかを検証しません。
2
SSL が使用され、証明書が検証されます。
詳細については、「レプリケーション セキュリティの要素」を参照してください。
- -FieldDelimiterfield_delimiter
SQL Server 一括コピーで扱うデータ ファイルのフィールドの末尾を示す 1 文字または文字列です。既定では \n<x$3>\n です。
-HistoryVerboseLevel [1|2|3]
スナップショット操作中にログに記録する履歴の量を指定します。1 を選択すれば、ログへの履歴の記録がパフォーマンスに与える影響を最小限に抑えることができます。HistoryVerboseLevel の値 説明 0
進行状況メッセージがコンソールまたは出力ファイルに書き込まれます。履歴レコードは、ディストリビューション データベースのログに記録されません。
1
同じ状態 (startup、progress、success など) を示している以前の履歴メッセージを常に更新します。前回の記録に同じ状態がない場合は、新しい記録を挿入します。
2 (既定値)
アイドル状態や長時間実行を示すメッセージでない場合、新しい履歴レコードを挿入します。アイドル状態などを示すメッセージの場合には、以前のレコードを更新します。
3
アイドル状態などを示すメッセージの場合には、以前の記録を更新します。
-HRBcpBlocksnumber_of_blocks
ライタ スレッドとリーダー スレッド間でキューに格納される bcp データ ブロックの数です。既定値は 50 です。HRBcpBlocks は、Oracle パブリケーションでのみ使用されます。メモ : このパラメータは、Oracle パブリッシャから bcp パフォーマンスのチューニングを行う場合に使用されます。
-HRBcpBlockSizeblock_size
各 bcp データ ブロックのサイズ (KB) です。既定値は 64 KB です。HRBcpBlocks は、Oracle パブリケーションでのみ使用されます。メモ : このパラメータは、Oracle パブリッシャから bcp パフォーマンスのチューニングを行う場合に使用されます。
-HRBcpDynamicBlocks
各 bcp データ ブロックのサイズが動的に拡張可能かどうかを示します。HRBcpBlocks は、Oracle パブリケーションでのみ使用されます。メモ : このパラメータは、Oracle パブリッシャから bcp パフォーマンスのチューニングを行う場合に使用されます。
- -KeepAliveMessageIntervalkeep_alive_interval
MSsnapshot_history テーブルに "waiting for backend message" が記録されるまでのスナップショット エージェントの待機時間 (秒) です。既定値は 300 秒です。
- -LoginTimeOutlogin_time_out_seconds
ログインがタイムアウトになるまでの秒数です。既定値は 15 秒です。
- -MaxBcpThreadsnumber_of_threads
並列実行できる一括コピーの操作数を指定します。同時に存在するスレッドと ODBC 接続の最大数は、MaxBcpThreads の値と、ディストリビューション データベースの同期トランザクションに示されている一括コピー要求の数の小さい方の値になります。MaxBcpThreads は 0 よりも大きくする必要があり、上限はありません。既定値は 1 です。
- MaxNetworkOptimization [0|1]
無関係な削除がサブスクライバに送られたかどうかを示します。無関係な削除とは、サブスクライバのパーティションに属さない行に対する DELETE コマンドがサブスクライバに送られたことを表します。無関係な削除はデータの整合性や収束には影響しませんが、不要なネットワーク トラフィックを生じます。MaxNetworkOptimization の既定値は 0 です。MaxNetworkOptimization を 1 に設定すると、無関係な削除が発生する可能性が最小限に抑えられ、ネットワーク トラフィックが減少し、最もネットワークが最適化されます。ただし、このパラメータを 1 に設定するとメタデータの保存領域が増加するため、複数レベルの結合フィルタと複雑なサブセット フィルタが存在する場合、パブリッシャのパフォーマンスが低下します。レプリケーション トポロジを慎重に評価する必要があります。無関係な削除によるネットワーク トラフィックが容認できないほど大きい場合に限り、MaxNetworkOptimization を 1 に設定してください。メモ : このパラメータを 1 に設定することが役立つのは、マージ パブリケーションの同期最適化オプション (sp_addmergepublication (Transact-SQL) の @keep_partition_changes パラメータ) が true に設定されている場合のみです。
- -Outputoutput_path_and_file_name
エージェントの出力ファイルのパスです。ファイル名が指定されない場合、出力はコンソールに送られます。指定したファイル名が既に存在する場合、出力はそのファイルに追加されます。
-OutputVerboseLevel [0|1|2]
出力を詳細表示にするかどうかを指定します。OutputVerboseLevel の値 説明 0
エラー メッセージのみが出力されます。
1 (既定値)
すべての進行状況レポート メッセージが出力されます (既定)。
2
すべてのエラー メッセージと進行状況レポート メッセージが出力されます。これはデバッグの際に役立ちます。
-PacketSizepacket_size
SQL Server への接続中にスナップショット エージェントが使用するパケット サイズ (バイト) です。既定値は 8,192 バイトです。メモ : パフォーマンスの向上が明確でない限り、パケット サイズは変更しないでください。多くのアプリケーションでは、既定のパケット サイズが最適です。
- -ProfileNameprofile_name
エージェント パラメータに使用するエージェント プロファイルを指定します。ProfileName が NULL の場合、このエージェント プロファイルは無効になります。ProfileName を指定しない場合、エージェントの種類に応じた既定のプロファイルが使われます。詳細については、「レプリケーション エージェント プロファイル」を参照してください。
- -PublisherDBpublisher_database
パブリケーション データベースの名前です。このパラメータは、Oracle パブリッシャについてはサポートされません。
-PublisherDeadlockPriority [-1|0|1]
デッドロックが発生した場合のパブリッシャへのスナップショット エージェント接続の優先度です。このパラメータは、スナップショットの生成中にスナップショット エージェントとユーザー アプリケーション間で発生する可能性のあるデッドロックを解決するために指定します。PublisherDeadlockPriority の値 説明 -1
パブリッシャ側でデッドロックが発生した場合、スナップショット エージェント以外のアプリケーションが優先されます。
0 (既定値)
優先度は割り当てられません。
1
パブリッシャ側でデッドロックが発生した場合、スナップショット エージェントが優先されます。
- -PublisherFailoverPartnerserver_name[**\**instance_name]
パブリケーション データベースとのデータベース ミラーリング セッションに参加する、SQL Server フェールオーバー パートナー インスタンスを指定します。詳細については、「レプリケーションおよびデータベース ミラーリング」を参照してください。
- -PublisherLoginpublisher_login
SQL Server 認証を使用してパブリッシャに接続するときに使用されるログインです。
- -PublisherPassword publisher_password
SQL Server 認証を使用してパブリッシャに接続するときに使用されるパスワードです。 .
- -PublisherSecurityMode [0|1]
パブリッシャのセキュリティ モードを指定します。値 0 は SQL Server 認証モード (既定値) を示し、値 1 は Windows 認証モードを示します。
- -QueryTimeOutquery_time_out_seconds
クエリがタイムアウトになるまでの秒数です。既定値は 1,800 秒です。
- -ReplicationType [1|2]
レプリケーションの種類を指定します。値 1 はトランザクション レプリケーションを示し、値 2 はマージ レプリケーションを示します。
- -RowDelimiterrow_delimiter
SQL Server 一括コピーで扱うデータ ファイルの各行の末尾を示す 1 文字または文字列です。既定では \n<,@g\>\n です。
- -StartQueueTimeoutstart_queue_timeout_seconds
実行中の同時実行動的スナップショット処理のメンバ数が、sp_addmergepublication (Transact-SQL) の @max_concurrent_dynamic_snapshots プロパティの設定による制限に達している場合に、スナップショット エージェントの最大待機時間を秒単位で指定します。最大秒数に達したときにスナップショット エージェントがまだ待機していると、スナップショット エージェントは待機を終了します。値が 0 の場合は、このエージェントが無期限に待機することを意味しますが、取り消すこともできます。
- - UsePerArticleContentsView use_per_article_contents_view
このパラメータは推奨されません。旧バージョンとの互換性のためにサポートされています。
解説
重要 : |
---|
ドメイン ユーザー アカウント (既定値) ではなくローカル システム アカウントで実行するように SQL Server エージェントをインストールした場合、サービスはローカル コンピュータにだけアクセスできます。SQL Server エージェント下で実行するスナップショット エージェントで、SQL Server へのログイン時に Windows 認証モードを使用するように構成すると、スナップショット エージェントは異常終了します。既定の設定は SQL Server 認証です。 |
スナップショット エージェントを開始するには、コマンド プロンプトから snapshot.exe を実行します。詳細については、「レプリケーション エージェント実行可能ファイルのプログラミング」を参照してください。