レプリケーション ログ リーダー エージェント

適用対象: はいSQL Server (サポートされているすべてのバージョン) はいAzure SQL Managed Instance

レプリケーション ログ リーダー エージェントは、トランザクション レプリケーション用に構成した各データベースのトランザクション ログを監視し、レプリケーションのマークが付けられたトランザクションをトランザクション ログからディストリビューション データベースにコピーする実行可能ファイルです。

注意

パラメーターは任意の順序で指定できます。 オプション パラメーターを指定しなかった場合、既定のエージェント プロファイルの定義済みの値が使用されます。

構文

  
logread [-?]   
-Publisher server_name[\instance_name]   
-PublisherDB publisher_database   
[-Continuous]  
[-DefinitionFile def_path_and_file_name]  
[-Distributor server_name[\instance_name]]  
[-DistributorLogin distributor_login]  
[-DistributorPassword distributor_password]  
[-DistributorSecurityMode [0|1]]  
[-EncryptionLevel [0|1|2]]  
[-ExtendedEventConfigFile configuration_path_and_file_name]  
[-HistoryVerboseLevel [0|1|2]]  
[-KeepAliveMessageInterval keep_alive_message_interval_seconds]  
[-LoginTimeOut login_time_out_seconds]  
[-LogScanThreshold scan_threshold]  
[-MaxCmdsInTran number_of_commands]  
[-MessageInterval message_interval]
[-MultiSubnetFailover [0|1]]
[-Output output_path_and_file_name]  
[-OutputVerboseLevel [0|1|2|3|4]]  
[-PacketSize packet_size]  
[-PollingInterval polling_interval]  
[-ProfileName profile_name]   
[-PublisherFailoverPartner server_name[\instance_name] ]  
[-PublisherSecurityMode [0|1]]  
[-PublisherLogin publisher_login]  
[-PublisherPassword publisher_password]   
[-QueryTimeOut query_time_out_seconds]  
[-ReadBatchSize number_of_transactions]   
[-ReadBatchThreshold read_batch_threshold]  
[-RecoverFromDataErrors]  

引数

-?
使用方法に関する情報を表示します。

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

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

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

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

-Distributor server_name[ \ instance_name]
ディストリビューターの名前です。 サーバー上の server_name の既定のインスタンスの場合は、 SQL Server を指定します。 サーバー上の server_name \ instance_name instance_name SQL Server の既定のインスタンスの場合は、server_name を指定します。

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

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

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

-EncryptionLevel [ 0 | 1 | 2 ]
接続確立時にログ リーダー エージェントが使用するトランスポート層セキュリティ (TLS) (旧称 Secure Sockets Layer (SSL)) の暗号化レベルです。

EncryptionLevel の値 説明
0 TLS を使用しないことを指定します。
1 TLS を使用しますが、信頼できる発行者によって TLS/SSL サーバー証明書が署名されているかどうかをエージェントでは検証しないことを指定します。
2 TLS を使用し、証明書を検証することを指定します。

注意

有効な TLS/SSL 証明書は、SQL Server の完全修飾ドメイン名を使用して定義されます。 -EncryptionLevel を 2 に設定したときにエージェントが正しく接続されるようにするには、ローカルの SQL Server 上に別名を作成します。 'Alias Name' パラメーターはサーバー名にし、'Server' パラメーターは SQL Server の完全修飾名に設定する必要があります。

詳細については、「レプリケーションのセキュリティ設定の表示および変更」を参照してください。

-ExtendedEventConfigFile configuration_path_and_file_name
拡張イベントの XML 構成ファイルのパスとファイル名を指定します。 拡張イベントの構成ファイルによって、追跡に必要なセッションを構成し、イベントを有効にすることができます。

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

HistoryVerboseLevel の値 説明
0
1 既定値。 同じ状態 (startup、progress、success など) を示している以前の履歴メッセージを常に更新します。 前回の記録に同じ状態がない場合は、新しい記録を挿入します。
2 アイドル状態や長時間実行を示すメッセージでない場合、新しい履歴レコードを挿入します。アイドル状態などを示すメッセージの場合には、以前のレコードを更新します。

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

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

-LogScanThreshold scan_threshold
内部使用のみです。

-MaxCmdsInTran number_of_commands
ログ リーダーがディストリビューション データベースにコマンドを書き込む際に、トランザクションにグループ化されるステートメントの最大数を指定します。 このパラメーターを使用すると、ログ リーダー エージェントおよびディストリビューション エージェントは、サブスクライバーでコマンドを適用するときに、パブリッシャーで (多数のコマンドで構成される) 大きなトランザクションを複数の小さなトランザクションに分割できます。 このパラメーターを指定すると、ディストリビューターでの競合を減らし、パブリッシャーとサブスクライバーの間の待機時間を減らすことができます。 元のトランザクションはより小さな単位で適用されるため、サブスクライバーは元のトランザクションが終了する前に、大きな論理パブリッシャー トランザクションの行にアクセスし、トランザクションの厳密な原子性を損なうことがあります。 既定値は 0 です。この場合、パブリッシャーのトランザクション境界が保護されます。

注意

このパラメーターは、SQL Server パブリケーション以外では無視されます。 詳細については、「 Performance Tuning for Oracle Publishers」の「トランザクション セット ジョブの構成」を参照してください。

-MessageInterval message_interval
履歴をログに記録する間隔です。 最後の履歴イベントがログに記録された後で MessageInterval 値に到達すると、次の履歴イベントがログに記録されます。

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

-MultiSubnetFailover [0|1] MultiSubnetFailover プロパティを有効にするかどうかを指定します。 アプリケーションが異なるサブネット上の AlwaysOn 可用性グループ (AG) に接続している場合、MultiSubnetFailover を 1 (true) に設定すると、(現在) アクティブなサーバーの検出と接続が速くなります。
適用対象: SQL Server (SQL Server 2019 (15.x) 以降)。

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

-OutputVerboseLevel [ 0| 1| 2 | 3 | 4 ]
出力を詳細表示にするかどうかを指定します。

説明
0 エラー メッセージのみが記録されます。
1 すべてのエージェント進行状況レポート メッセージが出力されます。
2 (既定値) すべてのエラー メッセージおよびエージェント進行状況レポート メッセージが出力されます。
3 レプリケートされた各コマンドの最初の 100 バイトが出力されます。
4 すべてのレプリケートされたコマンドが出力されます。

値 2 ~ 4 はデバッグ時に有用です。

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

-PollingInterval polling_interval
ログを対象としてレプリケートされたトランザクションをクエリする間隔を表す秒単位の値です。 既定値は 5 秒です。

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

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

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

-PublisherLogin publisher_login
パブリッシャーのログイン名です。

-PublisherPassword publisher_password
パブリッシャーのパスワードです。

-QueryTimeOut query_time_out_seconds
クエリがタイムアウトになるまでの秒数です。既定値は 1800 秒です。

-ReadBatchSize number_of_transactions
パブリッシング データベースのトランザクション ログから読み取られるトランザクションの処理サイクルあたりの最大数であり、既定値は 500、最大値は 10000 となります。 エージェントは、すべてのトランザクションをログから読み取るまで、トランザクションの読み取りをバッチ処理で継続します。 このパラメーターは、Oracle パブリッシャーに対してサポートされていません。

-ReadBatchThreshold number_of_commands
ディストリビューション エージェントによってサブスクライバーに発行される前に、トランザクション ログから読み取られるレプリケーション コマンドの数です。 既定値は 0 です。 このパラメーターが指定されていない場合、ログ リーダー エージェントは、ログの最後まで読み取るか、または -ReadBatchSize (トランザクション数) で指定された数だけ読み取ります。

-RecoverFromDataErrors
SQL Server 以外のパブリッシャーからパブリッシュされる列データでエラーが発生しても、ログ リーダー エージェントを継続して実行することを指定します。 既定では、このようなエラーが発生するとログ リーダー エージェントは失敗します。 -RecoverFromDataErrors を使用する場合、エラーのある列データは NULL または適切な NULL 以外の値としてレプリケートされ、警告メッセージが MSlogreader_history テーブルに記録されます。 このパラメーターは、Oracle パブリッシャーに対してのみサポートされます。

解説

重要

ドメイン ユーザー アカウント (既定値) ではなくローカル システム アカウントで実行するように SQL Server エージェントをインストールした場合、サービスはローカル コンピューターにのみアクセスできます。 SQL Server エージェントから実行されるログ リーダー エージェントで、Windows 認証モードを使用するように構成すると、 SQL Serverへのログイン時にログ リーダー エージェントは異常終了します。 既定の設定は SQL Server 認証です。 セキュリティ アカウント変更の詳細については、「 View and Modify Replication Security Settings」を参照してください。

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

変更履歴

変更内容
-ExtendedEventConfigFile パラメーターを追加しました。
-MultiSubnetFailover パラメーターを追加しました。

参照

レプリケーション エージェントの管理