レプリケーション エージェント実行可能ファイルの概念

適用対象: SQL ServerAzure SQL Managed Instance

レプリケーション エージェントは、次のような方法でプログラムから制御できます。

  • Microsoft.SqlServer.Replication 名前空間のマネージド エージェント プログラミング インターフェイスを使用する。

  • エージェントの実行可能ファイルを一連のパラメーターを指定してコマンド プロンプトから呼び出す。

レプリケーション エージェントはコマンド プロンプトから直接呼び出すことができるため、コマンド ライン スクリプトをバッチ ファイル化することで、プログラムからエージェントにアクセスできます。 エージェントをコマンド プロンプトから呼び出した場合、そのエージェントは、エージェントを呼び出したユーザーまたはバッチ ファイルを実行したユーザーの Microsoft Windows セキュリティ アカウント下で実行されます。

次のレプリケーション エージェントのインスタンスは、実行可能ファイルを使用して実行できます。

レプリケーション エージェントを呼び出す際、パフォーマンス プロファイルを使用することで、あらかじめ定義された一連のパラメーターを自動的にエージェント実行可能ファイルに渡すことができます。 詳しくは、「 レプリケーション エージェント プロファイル」をご覧ください。

次の例は、レプリケーション エージェントをコマンド プロンプトから呼び出す方法を示しています。 レプリケーション エージェントは、レプリケーション管理オブジェクト (RMO) を使用して呼び出すこともできます。 詳細については、「 サブスクリプションの同期 (レプリケーション)」を参照してください。

注意

これらの例では、読みやすくするために、改行が追加されています。 バッチ ファイルの場合、コマンドは 1 行で入力する必要があります。

スナップショット エージェントの実行

次の例では、バッチ ファイルを使って、スナップショット エージェントをコマンド プロンプトから呼び出し、AdvWorksSalesOrdersMerge パブリケーションのスナップショットを生成しています。 (以下のスクリプトでは、SQL Server 2016 (13.x) ファイル (バージョン 130) へのパスを使用しています)。 スクリプトを調整し、使用しているバージョンの SQL Server のファイルを指すようにする必要があります。)

REM -- Declare variables  
SET Publisher=%InstanceName%;  
SET PublicationDB=AdventureWorks2022;   
SET Publication=AdvWorksSalesOrdersMerge;   
  
REM --Start the Snapshot Agent to generate the snapshot for AdvWorksSalesOrdersMerge.  
"C:\Program Files\Microsoft SQL Server\130\COM\SNAPSHOT.EXE" -Publication %Publication%   
-Publisher %Publisher% -Distributor %Publisher% -PublisherDB %PublicationDB%   
-ReplicationType 2 -OutputVerboseLevel 1 -DistributorSecurityMode 1 ;  
  

ディストリビューション エージェントの実行

この例では、バッチ ファイルを使って、ディストリビューション エージェントをコマンド プロンプトから呼び出し、AdvWorksProductTran パブリケーションからの変更を、プッシュ サブスクライバーに連続してレプリケートしています。

REM -- Declare the variables.  
SET Publisher=%instancename%;  
SET Subscriber=%instancename%;  
SET PublicationDB=AdventureWorks2022;  
SET SubscriptionDB=AdventureWorks2022Replica;   
SET Publication=AdvWorksProductsTran;  
  
REM -- Start the Distribution Agent with four subscription streams.  
REM -- The following command must be supplied without line breaks.  
"C:\Program Files\Microsoft SQL Server\130\COM\DISTRIB.EXE" -Subscriber %Subscriber%   
-SubscriberDB %SubscriptionDB% -SubscriberSecurityMode 1 -Publication %Publication%   
-Publisher %Publisher% -PublisherDB %PublicationDB% -Distributor %Publisher%   
-DistributorSecurityMode 1 -Continuous -SubscriptionType 0 -SubscriptionStreams 4 ;  
  

マージ エージェントの実行

この例では、バッチ ファイルを使って、マージ エージェントをコマンド プロンプトから呼び出し、AdvWorksSalesOrdersMerge パブリケーションにプル サブスクリプションを同期しています。

REM -- Declare the variables.  
SET Publisher=%instancename%;  
SET Subscriber=%instancename%;  
SET PublicationDB=AdventureWorks2022;  
SET SubscriptionDB=AdventureWorks2022Replica;   
SET Publication=AdvWorksSalesOrdersMerge;  
  
REM --Start the Merge Agent with concurrent upload and download processes.  
REM -- The following command must be supplied without line breaks.  
"C:\Program Files\Microsoft SQL Server\130\COM\REPLMERG.EXE" -Publication %Publication%    
-Publisher %Publisher%  -Subscriber  %Subscriber%  -Distributor %Publisher%    
-PublisherDB %PublicationDB%  -SubscriberDB %SubscriptionDB% -PublisherSecurityMode 1    
-OutputVerboseLevel 2  -SubscriberSecurityMode 1  -SubscriptionType 1 -DistributorSecurityMode 1    
-Validate 3  -ParallelUploadDownload 1 ;