レプリケーション ディストリビューション エージェント

レプリケーション ディストリビューション エージェントは、ディストリビューション データベース テーブルに登録されたスナップショット (スナップショット レプリケーションの場合) とトランザクション (トランザクション レプリケーションの場合) を、サブスクライバのレプリケーション先のテーブルに移動する実行可能ファイルです。

注意注意

パラメータは任意の順序で指定できます。省略可能なパラメータを省略する場合、ローカル コンピュータであらかじめ定義されているレジストリ設定の値が使用されます。

構文

distrib [-?]
-Publisher server_name[\instance_name]
-PublisherDB publisher_database
-Subscriber server_name[\instance_name]
-SubscriberDB subscriber_database 
[-AltSnapshotFolder alt_snapshot_folder_path] 
[-BcpBatchSize bcp_batch_size]
[-CommitBatchSize commit_batch_size]
[-CommitBatchThreshold commit_batch_threshold]
[-Continuous]
[-DefinitionFile def_path_and_file_name]
[-Distributor distributor]
[-DistributorLogin distributor_login]
[-DistributorPassword distributor_password]
[-DistributorSecurityMode [0|1]]
[-EncryptionLevel [0|1|2]]
[-ErrorFile error_path_and_file_name]
[-FileTransferType [0|1]]
[-FtpAddress ftp_address]
[-FtpPassword ftp_password] 
[-FtpPort ftp_port]
[-FtpUserName ftp_user_name]
[-HistoryVerboseLevel [0|1|2|3]]
[-Hostname host_name]
[-KeepAliveMessageInterval keep_alive_message_interval_seconds]
[-LoginTimeOut login_time_out_seconds]
[-MaxBcpThreads]
[-MaxDeliveredTransactions number_of_transactions]
[-MessageInterval message_interval]
[-OledbStreamThreshold oledb_stream_threshold]
[-Output output_path_and_file_name]
[-OutputVerboseLevel [0|1|2]]
[-PacketSize packet_size]
[-PollingInterval polling_interval]
[-ProfileName profile_name]
[-Publication publication]
[-QueryTimeOut query_time_out_seconds]
[-QuotedIdentifier quoted_identifier]
[-SkipErrors native_error_id [:...n]]
[-SubscriberDatabasePath subscriber_path]
[-SubscriberLogin subscriber_login]
[-SubscriberPassword subscriber_password]
[-SubscriberSecurityMode [0|1]]
[-SubscriberType [0|1|3]]
[-SubscriptionStreams [1|2|...64]]
[-SubscriptionTableName subscription_table]
[-SubscriptionType [0|1|2]]
[-TransactionsPerHistory [0|1|...10000]]
[-UseDTS]
[-UseInprocLoader]
[-UseOledbStreaming]

引数

  • -?
    使用できるすべてのパラメータを表示します。

  • -Publisherserver_name[**\instance_name]
    パブリッシャの名前です。サーバー上の SQL Server の既定のインスタンスの場合は、server_name を指定します。サーバー上の SQL Server の名前付きインスタンスの場合は、server_name
    \**instance_name を指定します。

  • -PublisherDBpublisher_database
    パブリッシャ データベースの名前です。

  • -Subscriberserver_name[**\instance_name]
    サブスクライバの名前です。サーバー上の SQL Server の既定のインスタンスの場合は、server_name を指定します。サーバー上の SQL Server の名前付きインスタンスの場合は、server_name
    \**instance_name を指定します。

  • -SubscriberDBsubscriber_database
    サブスクライバ データベースの名前です。

  • -AltSnapshotFolderalt_snapshot_folder_path
    サブスクリプションの初期スナップショットが含まれるフォルダへのパスです。

  • -BcpBatchSizebcp_batch_size
    一括コピー操作によって送られる行の数です。bcp in 操作を実行する場合、バッチ サイズは 1 つのトランザクションとしてサーバーに送る行数です。ディストリビューション エージェントが bcp 実行状況メッセージをログに記録する前に、これらの行数を送る必要があります。bcp out 操作を実行する場合は、固定バッチ サイズ 1000 が使用されます。

  • -CommitBatchSizecommit_batch_size
    COMMIT ステートメントを実行する前に、サブスクライバに対して実行するトランザクションの数です。既定値は 100 です。

  • -CommitBatchThresholdcommit_batch_threshold
    COMMIT ステートメントを実行する前に、サブスクライバに対して実行するレプリケーション コマンドの数です。既定値は 1000 です。

  • -Continuous
    エージェントがレプリケートされたトランザクションの呼び出しを継続的に試みるかどうかを指定します。このパラメータを指定する場合、保留されているトランザクションがなくても、エージェントはポーリング間隔でレプリケートされたトランザクションをソースから呼び出します。

    注意注意

    -Continuous-MaxDeliveredTransactions と共に指定しないでください。詳細については、このトピックで後述する -MaxDeliveredTransactions エントリを参照してください。

  • -DefinitionFiledef_path_and_file_name
    エージェント定義ファイルのパスです。エージェント定義ファイルには、エージェントのコマンド プロンプト引数が含まれます。ファイルの内容は実行可能ファイルとして解析されます。二重引用符 (") を使用して、任意の文字を含む引数値を指定します。

  • -Distributordistributor
    ディストリビュータの名前です。ディストリビュータ (プッシュ) ディストリビューションの場合、既定値はローカル ディストリビュータの名前になります。

  • -DistributorLogindistributor_login
    ディストリビュータのログイン名です。

  • -DistributorPassworddistributor_password
    ディストリビュータのパスワードです。

  • -DistributorSecurityMode[ 0| 1]
    ディストリビュータのセキュリティ モードを指定します。値 0 は SQL Server 認証モードを指定し、値 1 は Windows 認証モード (既定値) を指定します。

  • -EncryptionLevel [ 0 | 1 | 2 ]
    接続確立時にディストリビューション エージェントが使用する SSL (Secure Sockets Layer) の暗号化レベルです。

    EncryptionLevel の値

    説明

    0

    SSL は使用されません。

    1

    SSL は使用されますが、信頼できる発行者によって SSL サーバー証明が署名されているかどうかを検証しません。

    2

    SSL が使用され、証明書が検証されます。

    詳細については、「セキュリティの概要 (レプリケーション)」を参照してください。

  • -ErrorFileerror_path_and_file_name
    ディストリビューション エージェントが作成するエラー ファイルのパスとファイル名です。このファイルは、サブスクライバでレプリケーション トランザクションを適用しているときに、エラーが発生すると生成されます。パブリッシャまたはディストリビュータで発生したエラーについては、このファイルには記録されません。このファイルには、障害が発生したレプリケーション トランザクションおよび関連するエラー メッセージが含まれます。指定しない場合は、エラー ファイルはディストリビューション エージェントの現在のディレクトリに作成されます。エラー ファイル名は、ディストリビューション エージェントの名前に .err 拡張子を付けた名前です。指定したファイル名が既存の場合、エラー メッセージはこのファイルに追加されます。このパラメータには最大 256 個の Unicode 文字を指定できます。

  • -FileTransferType [ 0| 1]
    ファイル転送タイプを指定します。0 の値は UNC (汎用名前付け規則) を示し、1 の値は FTP (ファイル転送プロトコル) を示します。

  • -FtpAddressftp_address
    ディストリビュータ用の FTP サービスのネットワーク アドレスです。このパラメータを指定しない場合、DistributorAddress が使用されます。DistributorAddress が指定されていない場合、Distributor が使用されます。

  • -FtpPasswordftp_password
    FTP サービスに接続するときに使用するユーザー パスワードです。

  • -FtpPortftp_port
    ディストリビュータ用の FTP サービスのポート番号です。このパラメータを指定しない場合、FTP サービスの既定のポート番号 (21) が使用されます。

  • -FtpUserNameftp_user_name
    FTP サービスに接続するときに使用するユーザー名です。指定しない場合、anonymous が使用されます。

  • -HistoryVerboseLevel[ 0 | 1 | 2 | 3 ]
    ディストリビューション操作中にログに記録する履歴の量を指定します。1 を選択すれば、ログへの履歴の記録がパフォーマンスに与える影響を最小限に抑えることができます。

    HistoryVerboseLevel の値

    説明

    0

    進行状況メッセージがコンソールまたは出力ファイルに書き込まれます。履歴レコードは、ディストリビューション データベースのログに記録されません。

    1

    既定値。同じ状態 (startup、progress、success など) を示している以前の履歴メッセージを常に更新します。前回の記録に同じ状態がない場合は、新しい記録を挿入します。

    2

    アイドル状態や長時間実行を示すメッセージでない場合、新しい履歴レコードを挿入します。アイドル状態などを示すメッセージの場合には、以前のレコードを更新します。

    3

    アイドル状態などを示すメッセージの場合には、以前の記録を更新します。

  • -Hostnamehost_name
    パブリッシャとの接続時に使用するホスト名です。このパラメータには最大 128 個の Unicode 文字を指定できます。

  • -KeepAliveMessageIntervalkeep_alive_message_interval_seconds
    既存の接続がサーバーからの応答を待機しているかどうかを、履歴スレッドがチェックするまでの秒数です。この値を小さくすれば、ディストリビューション エージェントが時間のかかるバッチを実行しているとき、照合エージェントによって SUSPECT とマークされるのを防ぐことができます。既定値は 300 秒です。

  • -LoginTimeOutlogin_time_out_seconds
    ログインがタイムアウトになるまでの秒数です。既定値は 15 秒です。

  • -MaxBcpThreadsnumber_of_threads
    並列実行できる一括コピーの操作数を指定します。同時に存在するスレッドと ODBC 接続の最大数は、MaxBcpThreads の値と、ディストリビューション データベースの同期トランザクションに示されている一括コピー要求の数の小さい方の値になります。MaxBcpThreads0 よりも大きくする必要がありますが、上限はありません。既定値は、プロセッサ数の 2 倍の値です。最大値は、8 になります。パブリッシャ側で同時実行スナップショット オプションを使って生成されたスナップショットを適用する場合は、MaxBcpThreads に指定した値に関係なく、単一のスレッドが使用されます。

  • -MaxDeliveredTransactionsnumber_of_transactions
    1 回の同期でサブスクライバに適用するプッシュまたはプル トランザクションの最大数です。値 0 は、トランザクション数に制限がないことを示します。その他の値は、サブスクライバがパブリッシャからプルする同期の経過時間を短縮するときに使用できます。

    注意注意

    -MaxDeliveredTransactions-Continuous が共に指定されている場合は、-MaxDeliveredTransactions が優先されます。同期は -MaxDeliveredTransactions で指定されたトランザクション数に達するまで続行され、その数に達すると -Continuous が指定されていてもディストリビューション エージェントは停止します。

  • -MessageIntervalmessage_interval
    履歴をログに記録する間隔です。次のいずれかの場合、履歴イベントはログに記録されます。

    • 最後の履歴イベントをログに記録した後、TransactionsPerHistory の値が経過した場合

    • 最後の履歴イベントをログに記録した後、MessageInterval の値が経過した場合

    ソースに利用可能なレプリケートされたトランザクションがない場合、エージェントはディストリビュータに対してトランザクションなしのメッセージを報告します。このオプションは、エージェントが次にトランザクションなしのメッセージを報告するまでの待ち時間を指定します。前回レプリケートされたトランザクションを処理した後で、ソースに利用可能なトランザクションがないことを検出すると、エージェントは必ずトランザクションなしのメッセージを報告します。既定値は 60 秒です。

  • -OledbStreamThresholdoledb_stream_threshold
    BLOB データの最小バイト サイズを指定します。この値を超えると、データはストリームとしてバインドされます。このパラメータを使用するためには、–UseOledbStreaming を指定する必要があります。400 バイトから 1048576 バイトまでの値を指定できます。既定値は 16384 バイトです。

  • -Outputoutput_path_and_file_name
    エージェントの出力ファイルのパスです。ファイル名が指定されない場合、出力はコンソールに送られます。指定したファイル名が既に存在する場合、出力はそのファイルに追加されます。

  • -OutputVerboseLevel[ 0| 1| 2]
    出力を詳細表示にするかどうかを指定します。詳細レベルが 0 の場合、エラー メッセージだけが出力されます。詳細レベルが 1 の場合、すべての実行状況報告メッセージが出力されます。詳細レベルが 2 (既定値) の場合、すべてのエラー メッセージと実行状況報告メッセージが出力されます。これはデバッグ時に便利です。

  • -PacketSizepacket_size
    パケット サイズをバイト単位で指定します。既定値は 4096 (バイト) です。

  • -PollingIntervalpolling_interval
    レプリケートされたトランザクションに関してディストリビューション データベースを照会する間隔を秒単位で示します。既定値は 5 秒です。

  • -ProfileNameprofile_name
    エージェント パラメータに使用するエージェント プロファイルを指定します。ProfileName が NULL の場合、このエージェント プロファイルは無効になります。ProfileName を指定しない場合、エージェントの種類に応じた既定のプロファイルが使われます。詳細については、「レプリケーション エージェント プロファイル」を参照してください。

  • -Publicationpublication
    パブリケーションの名前です。このパラメータは、新規または再初期化されたサブスクリプションのスナップショットを常に利用できるようにパブリケーションを設定している場合にのみ有効です。

  • -QueryTimeOutquery_time_out_seconds
    クエリがタイムアウトになるまでの秒数です。既定値は 1,800 秒です。

  • -QuotedIdentifierquoted_identifier
    使用する引用符で囲まれた識別子を指定します。値の最初の文字は、ディストリビューション エージェントが使用する値を示します。値を指定せずに QuotedIdentifier を使用する場合、ディストリビューション エージェントはスペースを使用します。QuotedIdentifier を使用しない場合には、ディストリビューション エージェントはサブスクライバがサポートしている引用符で囲まれた識別子を使用します。

  • -SkipErrorsnative_error_id[:...n]
    このエージェントでスキップされる一連のエラー番号をコロンで区切って指定します。詳細については、「トランザクション レプリケーションでのエラーのスキップ」を参照してください。

  • -SubscriberDatabasePathsubscriber_database_path
    SubscriberType2 の場合、Jet データベース (.mdb ファイル) へのパスを指定します。この指定では、ODBC データ ソース名 (DSN) なしで Jet データベースに接続することができます。

  • -SubscriberLoginsubscriber_login
    サブスクライバのログイン名です。SubscriberSecurityMode0 (SQL Server 認証モード) の場合は、このパラメータを指定する必要があります。

  • -SubscriberPasswordsubscriber_password
    サブスクライバのパスワードです。SubscriberSecurityMode0 (SQL Server 認証モード) の場合は、このパラメータを指定する必要があります。

  • -SubscriberSecurityMode[ 0| 1]
    サブスクライバのセキュリティ モードを指定します。値 0 は SQL Server 認証モードを指定し、値 1 は Windows 認証モード (既定値) を指定します。

  • -SubscriberType[ 0| 1| 3]
    ディストリビューション エージェントが使用するサブスクライバ接続の種類を指定します。

    サブスクライバの種類

    説明

    0

    SQL Server

    1

    ODBC データ ソース

    3

    OLE DB データ ソース

  • -SubscriptionStreams [0|1|2|...64]
    単一のスレッドを使用しているときに、トランザクションに関連したさまざまな特性を維持しながら、サブスクライバに対してバッチ変更を適用することのできる、ディストリビューション エージェントあたりの接続数です。SQL Server パブリッシャの場合、1 から 64 までの値がサポートされます。このパラメータは、パブリッシャとディストリビュータが SQL Server 2005 以降のバージョンで実行されている場合にのみ使用できます。SQL Server 以外のサブスクライバまたはピア ツー ピア サブスクリプションの場合は、このパラメータを使用しないか、0 にする必要があります。

    注意注意

    いずれかの接続が実行またはコミットに失敗した場合、進行中のバッチがすべての接続について中止されます。その場合、エージェントは、単一のストリームを使用して、失敗したバッチを再試行します。この再試行フェーズが完了するまでは、サブスクライバ側に、トランザクションの一時的な不整合が存在する可能性があります。サブスクライバのトランザクション一貫性は、前回失敗したバッチが正常にコミットされた後で復元されます。

    重要な注意事項重要

    -SubscriptionStreams に対して 2 以上の値を指定すると、サブスクライバ側でトランザクションが受信される順序が、パブリッシュ側でトランザクションが作成された順序と異なる場合があります。この動作が原因で同期中に制約違反が発生する場合は、NOT FOR REPLICATION オプションを使用して同期中の制約の適用を無効にする必要があります。詳細については、「同期中にトリガと制約の動作を制御する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

  • -SubscriptionTableNamesubscription_table
    指定したサブスクライバで作成または使用するサブスクリプション テーブルの名前です。指定しない場合、MSreplication_subscriptions (Transact-SQL) テーブルが使用されます。長いファイル名をサポートしないデータベース管理システム (DBMS) にはこのオプションを使用します。

  • -SubscriptionType[ 0| 1| 2]
    ディストリビューションのサブスクリプション タイプを指定します。値 0 はプッシュ サブスクリプションを、値 1 はプル サブスクリプションを、値 2 は匿名サブスクリプションを示します。

  • -TransactionsPerHistory[ 0| 1|...10000]
    履歴をログに記録するトランザクション間隔を指定します。最後に履歴をログに記録してからコミットしたトランザクションの数がこのオプションより多い場合、履歴メッセージがログに記録されます。既定値は 100 です。値 0 は、TransactionsPerHistory が無制限であることを指定します。上記の –MessageInterval パラメータを参照してください。

  • -UseDTS
    データ変換を許可するパブリケーションでは、このパラメータを指定する必要があります。

  • -UseInprocLoader
    ディストリビューション エージェントがスナップショット ファイルをサブスクライバに適用するときに、BULK INSERT コマンドが使用され、初期スナップショットのパフォーマンスが向上します。このパラメータは XML データ型との互換性がないため推奨されません。XML データをレプリケートしない場合にのみ、このパラメータを使用できます。このパラメータを、キャラクタ モードのスナップショットや、SQL Server 以外のサブスクライバで使用することはできません。このパラメータを使用する場合は、サブスクライバ側の SQL Server サービス アカウントに、スナップショットの .bcp データ ファイルが格納されたディレクトリの読み取り権限が必要です。このパラメータを使用しない場合、これらのファイルが、エージェント (SQL Server 以外のサブスクライバの場合) またはエージェントが読み込む ODBC ドライバ (SQL Server サブスクライバの場合) によって読み取られるため、SQL Server サービス アカウントのセキュリティ コンテキストは使用されません。

  • -UseOledbStreaming
    指定した場合、BLOB データをストリームとしてバインドできるようになります。ストリームが使用されるしきい値 (バイト サイズ) を指定するには、-OledbStreamThreshold を使用します。

説明

重要な注意事項重要

ドメイン ユーザー アカウント (既定値) ではなくローカル システム アカウントで実行するように SQL Server エージェントをインストールした場合、サービスはローカル コンピュータにのみアクセスできます。SQL Server のインスタンスへのログイン時に、SQL Server エージェントの下で実行するディストリビューション エージェントで、Windows 認証モードを使用するように構成すると、ディストリビューション エージェントは失敗します。既定の設定は SQL Server 認証です。セキュリティ アカウント変更の詳細については、「レプリケーションのセキュリティ設定を表示および変更する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

ディストリビューション エージェントを起動するには、コマンド プロンプトから distrib.exe を実行します。詳細については、「レプリケーション エージェント実行可能ファイルの概念」を参照してください。

変更履歴

変更内容

-Continuous-MaxTransactionsRequired の両方を指定するとどうなるかを明記しました。