レプリケーション マージ エージェント

レプリケーション マージ エージェントは、データベース テーブルに保持された初期スナップショットをサブスクライバに適用する実行可能ファイルです。さらに、初期スナップショットの作成後にパブリッシャで発生したデータの増分変更をマージし、ユーザーが構成したルールに従って、またはユーザーが作成したカスタム競合回避モジュールを使用して、競合を調整します。

注意注意

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

構文

replmerg [-?] 
-Publisher server_name[\instance_name]
-PublisherDB publisher_database
-Publication publication
-Subscriber server_name[\instance_name]
-SubscriberDB subscriber_database
[-AltSnapshotFolder alt_snapshot_folder_path]
[-Continuous]
[-DefinitionFile def_path_and_file_name]
[-DestThreads number_of_destination_threads]
[-Distributor server_name[\instance_name]]
[-DistributorLogin distributor_login]
[-DistributorPassword distributor_password]
[-DistributorSecurityMode [0|1]]
[-DownloadGenerationsPerBatch download_generations_per_batch]
[-DownloadReadChangesPerBatch download_read_changes_per_batch]
[-DownloadWriteChangesPerBatch download_write_changes_per_batch]
[-DynamicSnapshotLocation dynamic_snapshot_location]
[-EncryptionLevel [0|1|2]]
[-ExchangeType [1|2|3]]
[-FastRowCount [0|1]]
[-FileTransferType [0|1]]
[-ForceConvergenceLevel [0|1|2 (Publisher|Subscriber|Both)]]
[-FtpAddress ftp_address]
[-FtpPassword ftp_password]
[-FtpPort ftp_port]
[-FtpUserNameftp_user_name]
[-HistoryVerboseLevel [0|1|2|3]]
[-Hostname host_name]
[-InteractiveResolution [0|1]]
[-InternetLogin internet_login]
[-InternetPassword internet_password]
[-InternetProxyLogin internet_proxy_login]
[–InternetProxyPassword internet_proxy_password]
[-InternetProxyServer internet_proxy_server]
[-InternetSecurityMode [0|1]]
[-InternetTimeout internet_timeout]
[-InternetURL internet_url]
[-KeepAliveMessageInterval keep_alive_message_interval_seconds]
[-LoginTimeOut login_time_out_seconds]
[-MakeGenerationInterval make_generation_interval_seconds]
[-MaxBcpThreads number_of_threads]
[-MaxDownloadChanges number_of_download_changes]
[-MaxUploadChanges number_of_upload_changes]
[-MetadataRetentionCleanup [0|1]]
[-Output]
[-OutputVerboseLevel [0|1|2]]
[-ParallelUploadDownload [0|1]]
[-PollingInterval polling_interval]
[-ProfileName profile_name]
[-PublisherFailoverPartner server_name[\instance_name] ]
[-PublisherLogin publisher_login]
[-PublisherPassword publisher_password]
[-PublisherSecurityMode [0|1]]
[-QueryTimeOut query_time_out_seconds]
[-SrcThreads number_of_source_threads]
[-StartQueueTimeout start_queue_timeout_seconds]
[-SubscriberConflictClean [0|1]]
[-SubscriberDatabasePath subscriber_path]
[-SubscriberDBAddOption [0|1|2|3]]
[-SubscriberLogin subscriber_login]
[-SubscriberPassword subscriber_password 
[-SubscriberSecurityMode [0|1]]
[-SubscriberType [0|1|2|3|4|5|6|7|8|9]]
[-SubscriptionType [0|1|2]]
[-SyncToAlternate [0|1]
[-UploadGenerationsPerBatch upload_generations_per_batch]
[-UploadReadChangesPerBatch upload_read_changes_per_batch]
[-UploadWriteChangesPerBatch upload_write_changes_per_batch]
[-UseInprocLoader]
[-Validate [0|1|2|3]]
[-ValidateInterval validate_interval]

引数

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

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

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

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

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

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

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

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

  • -DestThreadsnumber_of_destination_threads
    マージ エージェントが変更の対象で変更を適用するために使用する対象スレッドの数を指定します。変更の対象は、アップロード実行時はパブリッシャであり、ダウンロード実行時はサブスクライバです。既定値は 4 です。

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

  • -Distributorserver_name[**\instance_name]
    ディストリビュータの名前です。サーバー上の SQL Server の既定のインスタンスの場合は、server_name を指定します。サーバー上の SQL Server の名前付きインスタンスの場合は、server_name
    \**instance_name を指定します。ディストリビュータ (プッシュ) ディストリビューションの場合、既定の名前は、ローカル コンピュータの SQL Server の既定のインスタンス名です。

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

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

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

  • -DownloadGenerationsPerBatchdownload_generations_per_batch
    パブリッシャからサブスクライバに変更をダウンロードする間に、1 つのバッチで処理される生成結果の数です。生成結果は、アーティクルごとに変更の論理グループとして定義されます。信頼性の高い通信リンクの既定値は 100 です。信頼性の低い通信リンクの既定値は 10 です。

  • -DownloadReadChangesPerBatchdownload_read_changes_per_batch
    パブリッシャからサブスクライバに変更をダウンロードする間に、1 つのバッチで読み取られる変更の数です。既定値は 100 です。

  • -DownloadWriteChangesPerBatchdownload_write_changes_per_batch
    パブリッシャからサブスクライバに変更をダウンロードする間に、1 つのバッチで適用される変更の数です。既定値は 100 です。

  • -DynamicSnapshotLocationdynamic_snapshot_location
    パブリケーションでパラメータ化された行フィルタを使用する場合のフィルタ選択されたデータ スナップショット ファイルの位置です。

  • -EncryptionLevel [0|1|2]
    接続時にマージ エージェントで使用される SSL (Secure Sockets Layer) 暗号化のレベルです。

    EncryptionLevel の値

    説明

    0

    SSL は使用されません。

    1

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

    2

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

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

  • -ExchangeType [1|2|3]
    同期中のデータ交換の種類を指定します。次のいずれかを指定できます。

    ExchangeType の値

    説明

    1

    エージェントは、サブスクライバからパブリッシャにデータ変更をアップロードします。

    2

    エージェントは、パブリッシャからサブスクライバにデータ変更をダウンロードします。

    3 (既定値)

    エージェントは最初にサブスクライバからパブリッシャにデータ変更をアップロードし、次にパブリッシャからサブスクライバにデータ変更をダウンロードします。このオプションは、Web 同期で使用する必要があります。

    ダウンロード専用のアーティクルによって、パブリケーション内の個別のアーティクルの同期の動作を制御して、パフォーマンスを向上させることができます。詳細については、「ダウンロード専用アーティクルを使用したマージ レプリケーションのパフォーマンス最適化」を参照してください。

  • -FastRowCount [0|1]
    行数の検証に使用する行数計算方法の種類を指定します。値 1 (既定) は高速計算法を示します。値 0 は、完全行数計算法を示します。

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

  • -ForceConvergenceLevel [0|1|2 (Publisher|Subscriber|Both)]
    マージ エージェントが使用する収束のレベルを指定します。次のいずれかを指定できます。

    ForceConvergenceLevel の値

    説明

    0 (既定値)

    既定値。追加の収束なしで標準のマージを実行します。

    1

    すべての生成結果の収束を強制します。

    2

    すべての生成結果の収束を強制し、破損した系列を修正します。この値を指定する場合は、系列を修正する場所 (パブリッシャ、サブスクライバ、またはパブリッシャとサブスクライバの両方) を指定します。

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

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

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

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

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

    HistoryVerboseLevel の値

    説明

    0

    エージェントの状態の最終メッセージ、最終のセッションの詳細、およびすべてのエラーをログに記録します。

    1

    各セッションの状態における増分セッションの詳細をログに記録します。エージェントの状態の最終メッセージ、最終のセッションの詳細、およびすべてのエラーに加えて、進行状況が含まれます。

    2

    既定値。各セッションの状態における増分セッションの詳細、およびアーティクル レベルのセッションの詳細をログに記録します。エージェントの状態の最終メッセージ、最終のセッションの詳細、およびすべてのエラーに加えて、進行状況が含まれます。エージェントの状態のメッセージもログに記録されます。

    3

    -HistoryVerboseLevel = 2 と同じですが、より多くのエージェント進行状況メッセージがログに記録されます。

  • -Hostnamehost_name
    ローカル コンピュータのネットワーク名です。既定値は、ローカル コンピュータの名前になります。

  • -InteractiveResolution [0|1]
    同期中に競合が発生した場合に、インタラクティブ競合回避を使用するかどうかを指定します。既定値の 0 は、インタラクティブ競合回避を使用しないことを示します。

  • -InternetLogininternet_login
    認証を必要とする SQL Server レプリケーション リスナ ISAPI DLL への接続時に使用されるログイン名を指定します。

  • -InternetPasswordinternet_password
    認証を必要とする SQL Server レプリケーション リスナ ISAPI DLL への接続時に使用されるパスワードを指定します。

  • -InternetProxyLogininternet_proxy_login
    認証を必要とする、internet_proxy_server で定義されたプロキシ サーバーへの接続時に使用されるログイン名を指定します。

  • –InternetProxyPasswordinternet_proxy_password
    認証を必要とする、internet_proxy_server で定義されたプロキシ サーバーへの接続時に使用されるパスワードを指定します。

  • -InternetProxyServerinternet_proxy_server
    internet_url で指定した HTTP リソースへのアクセス時に使用するプロキシ サーバーを指定します。

  • -InternetSecurityMode [0|1]
    Web 同期時の Web サーバーとの接続に使用される IIS セキュリティ モードを指定します。値 0 は基本認証を示し、値 1 は Windows 統合認証 (既定値) を指定します。

  • -InternetTimeoutinternet_timeout
    SQL Server レプリケーション リスナ ISAPI DLL がタイムアウトになるまでの秒数です。

  • -InternetURLinternet_url
    SQL Server レプリケーション リスナ ISAPI DLL への接続に使用される URL を指定します。このプロパティの指定は必須です。

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

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

  • -MakeGenerationIntervalmake_generation_interval_seconds
    クライアントにダウンロードする生成結果 (変更のバッチ) を作成する間隔 (秒) です。既定値は 1 秒です。

    Makegeneration は、パブリッシャの変更をサブスクライバにダウンロードするように準備するプロセスです。また、ダウンロード中にパフォーマンスのボトルネックになる場合があります。makegeneration プロセスが -MakeGenerationInterval で指定された間隔で既に実行された場合、現在の同期セッションでは、このプロセスはスキップされます。これは、同期の同時実行に役立つ場合があります。特に、サブスクライバが変更をダウンロードしない場合に役立ちます。

  • -MaxBcpThreadsnumber_of_threads
    並列実行できる一括コピーの操作数を指定します。同時に存在するスレッドおよび ODBC 接続の最大数は、MaxBcpThreads、またはパブリケーション データベース内のシステム テーブル sysmergeschemachange に表示される一括コピー要求数のいずれか少ない方の値になります。MaxBcpThreads の値は、0 よりも大きくする必要がありますが、ハードコーディングされた上限はありません。既定値は 1 です。

  • -MaxDownloadChangesnumber_of_download_changes
    パブリッシャからサブスクライバにダウンロードする必要のある変更済みの行の最大数を指定します。ダウンロードする行数が、指定した最大数より多くなる場合があります。完全な生成結果が処理されること、および並列の対象スレッドが実行されて最初のパスでそれぞれ 100 以上の変更が処理されることが原因です。既定では、ダウンロードの準備が整っている変更がすべて送信されます。

  • -MaxUploadChangesnumber_of_upload_changes
    サブスクライバからパブリッシャにアップロードする必要のある変更済みの行の最大数を指定します。アップロードする行数が、指定した最大数より多くなる場合があります。完全な生成結果が処理されること、および並列の対象スレッドが実行されて最初のパスでそれぞれ 100 以上の変更が処理されることが原因です。既定では、アップロードの準備が整っている変更がすべて送信されます。

  • -MetadataRetentionCleanup [0|1]
    パブリケーション保有期間に基づいて、メタデータを MSmerge_genhistoryMSmerge_contentsMSmerge_tombstoneMSmerge_past_partition_mappings、および MSmerge_current_partition_mappings から削除するかどうかを指定します。既定値の 1 は、クリーンアップを行う必要があることを示します。値 0 は、クリーンアップを自動的に実行しないことを示します。メタデータ クリーンアップの詳細については、「マージ レプリケーションの動作方法」を参照してください。

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

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

  • -ParallelUploadDownload [0|1]
    パブリッシャにアップロードする変更とサブスクライバにダウンロードする変更をマージ エージェントが並列で処理するかどうかを指定します。帯域幅が広いネットワークを使用している大容量環境で有用です。ParallelUploadDownload1 の場合は、並列処理が有効です。

  • -PollingIntervalpolling_interval
    パブリッシャまたはサブスクライバへのデータ変更を照会する間隔 (秒数) を示します。既定値は 60 秒です。

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

  • -PublisherFailoverPartnerserver_name[**\**instance_name]
    パブリケーション データベースとのデータベース ミラーリング セッションに参加する、SQL Server フェールオーバー パートナー インスタンスを指定します。詳細については、「レプリケーションおよびデータベース ミラーリング」を参照してください。

  • -PublisherLoginpublisher_login
    パブリッシャのログイン名です。PublisherSecurityMode0 (SQL Server 認証) の場合、このパラメータの指定は必須です。

  • -PublisherPasswordpublisher_password
    パブリッシャのパスワードです。PublisherSecurityMode0 (SQL Server 認証) の場合、このパラメータの指定は必須です。

  • -PublisherSecurityMode [0|1]
    パブリッシャのセキュリティ モードを指定します。値 0 は SQL Server 認証モード (既定値) を示し、値 1 は Windows 認証モードを示します。

  • -QueryTimeOutquery_time_out_seconds
    クエリがタイムアウトになるまでの秒数です。既定値は 300 秒です。マージ エージェントも QueryTimeout の値を使用して、この値が 1800 を超える場合にパーティション スナップショットの生成をどのくらいの期間待機するかを判断します。

  • -SrcThreadsnumber_of_source_threads
    マージ エージェントが変更元から変更を列挙するために使用するソース スレッドの数を指定します。変更元は、アップロード実行時はサブスクライバであり、ダウンロード実行時はパブリッシャです。既定値は 3 です。

  • -StartQueueTimeoutstart_queue_timeout_seconds
    実行中の同時マージ処理数が sp_addmergepublication@max_concurrent_merge プロパティによって設定された制限に達した場合に、マージ エージェントが待機する最長秒数です。最長秒数に達したときにマージ エージェントが待機中である場合、マージ エージェントは終了します。値 0 は、エージェントが無制限に待機することを示します。ただし、キャンセルできます。

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

  • -SubscriberDBAddOption [0|1|2|3]
    既存のサブスクライバ データベースがあるかどうかを指定します。

    SubscriberDBAddOption の値

    説明

    0

    既存のデータベースを使用します (既定値)。

    1

    新しい空のサブスクライバ データベースを作成します。

    2

    新しいデータベースを作成して、指定されたファイルにアタッチします。

    3

    新しいデータベースを作成し、データベースをアタッチして、ファイルに存在する可能性のあるすべてのサブスクリプションを有効にします。

    注意注意

    2 および 3 を使用する場合は、サブスクライバのデータベース パスを SubscriberDatabasePath オプションで指定する必要があります。

  • -SubscriberLoginsubscriber_login
    サブスクライバのログイン名です。SubscriberSecurityMode0 (SQL Server 認証モード) の場合は、このパラメータを指定しなければなりません。

  • -SubscriberPasswordsubscriber_password
    サブスクライバのパスワードです。SubscriberSecurityMode0 (SQL Server 認証モード) の場合は、このパラメータを指定しなければなりません。

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

  • -SubscriberConflictClean [0|1]
    同期処理中にサブスクライバで競合テーブルがクリーンアップされるかどうかを示します。値 1 は、サブスクライバで競合テーブルがクリーンアップされることを示します。このパラメータは、競合のログ記録が集中管理されていないパブリケーションに対するサブスクリプションにのみ使用されます。

  • -SubscriberType [0|1|3|4|5|6|7|8]
    マージ エージェントによって使用されるサブスクライバ接続の種類を指定します。このパラメータでは、既定値の 0 のみがサポートされています。

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

  • -SyncToAlternate [0|1]
    マージ エージェントがサブスクリプションと代替パブリッシャ間での同期を実行しているかどうかを指定します。値 1 は、これが代替パブリッシャであることを示します。既定値は 0 です。

  • -UploadGenerationsPerBatchupload_generations_per_batch
    サブスクライバからパブリッシャに変更をアップロードする間に、1 つのバッチで処理される生成結果の数です。生成結果は、アーティクルごとに変更の論理グループとして定義されます。信頼性の高い通信リンクの既定値は 100 です。信頼性の低い通信リンクの既定値は 1 です。

  • -UploadReadChangesPerBatchupload_read_changes_per_batch
    サブスクライバからパブリッシャに変更をアップロードする間に、1 つのバッチで読み取られる変更の数です。既定値は 100 です。

  • -UploadWriteChangesPerBatchupload_write_changes_per_batch
    サブスクライバからパブリッシャに変更をアップロードする間に、1 つのバッチで適用される変更の数です。既定値は 100 です。

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

  • -Validate [0|1|2|3]
    マージ セッションの最後に検証を行うかどうかを指定し、行う場合は検証の種類も指定します。推奨値は 3 です。

    Validate の値

    説明

    0 (既定値)

    検証なし。

    1

    行数のみの検証。

    2

    行数とチェックサムの検証。

    3

    行数とバイナリ チェックサムの検証。

    注意注意

    バイナリ チェックサムまたはチェックサムを使用した検証では、データ型がサブスクライバ側とパブリッシャ側とで異なる場合には、誤ってエラーを報告することがあります。詳細については、「レプリケートされたデータの検証」の「データ検証に関する注意点」を参照してください。

  • -ValidateIntervalvalidate_interval
    サブスクリプションが継続モードで検証される間隔 (分) です。既定値は 60 分です。

説明

重要な注意事項重要

ドメイン ユーザー アカウント (既定値) ではなくローカル システム アカウントで実行するように SQL Server エージェントをインストールした場合、サービスはローカル コンピュータにだけアクセスできます。SQL Server エージェントの下で実行するマージ エージェントで、SQL Server へのログイン時に Windows 認証モードが使用されるように構成すると、マージ エージェントは失敗します。既定の設定は SQL Server 認証です。

マージ エージェントを開始するには、コマンド プロンプトから replmerg.exe を実行します。詳細については、「レプリケーション エージェント実行可能ファイルのプログラミング」を参照してください。