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

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

構文

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]]
[-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]
[-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]

解説

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

引数

  • -?
    使用方法についての情報を表示します。
  • -Publisherserver_name[**\instance_name]
    パブリッシャの名前です。サーバー上の Microsoft SQL Server の既定のインスタンスの場合は、server_name を指定します。サーバー上の SQL Server の名前付きインスタンスの場合は、server_name
    \**instance_name を指定します。
  • -PublisherDBpublisher_database
    パブリッシャ データベースの名前です。
  • -Continuous
    エージェントがレプリケートされたトランザクションの呼び出しを継続的に試みるかどうかを指定します。このパラメータを指定する場合は、保留されているトランザクションがなくても、エージェントはポーリング間隔でレプリケートされたトランザクションをソースから呼び出します。
  • -DefinitionFiledef_path_and_file_name
    エージェント定義ファイルのパスです。エージェント定義ファイルには、エージェントのコマンド ライン引数が含まれます。ファイルの内容は実行可能ファイルとして解析されます。二重引用符 (") を使用して、任意の文字を含む引数値を指定します。
  • -Distributorserver_name[**\instance_name]
    ディストリビュータの名前です。サーバー上の SQL Server の既定のインスタンスの場合は、server_name を指定します。サーバー上の SQL Server の名前付きインスタンスの場合は、server_name
    \**instance_name を指定します。
  • -DistributorLogindistributor_login
    ディストリビュータのログイン名です。
  • -DistributorPassworddistributor_password
    ディストリビュータのパスワードです。
  • -DistributorSecurityMode [0|1]
    ディストリビュータのセキュリティ モードを指定します。0 の値は SQL Server 認証モード (既定値) を示し、1 の値は Microsoft Windows 認証モードを示します。
  • -EncryptionLevel [0|1|2]
    ログ リーダー エージェントが接続を行うときに使用する SSL (Secure Sockets Layer) 暗号化レベルです。

    EncryptionLevel の値 説明

    0

    SSL は使用されません。

    1

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

    2

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

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

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

    HistoryVerboseLevel の値 説明

    0

     

    1

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

    2

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

  • -KeepAliveMessageIntervalkeep_alive_message_interval_seconds
    既存の接続がサーバーからの応答を待機しているかどうかを、履歴スレッドがチェックするまでの秒数です。長時間実行のときに、照合エージェントによってログ リーダー エージェントに SUSPECT とマークされないようにするには、この値を小さくします。既定値は 300 秒です。
  • -LoginTimeOutlogin_time_out_seconds
    ログインがタイムアウトになるまでの秒数です。既定値は 15 秒です。
  • -LogScanThresholdscan_threshold
    内部でのみ使用されます。
  • -MaxCmdsInTrannumber_of_commands
    ログ リーダーがディストリビューション データベースにコマンドを書き込む際に、トランザクションにグループ化されるステートメントの最大数を指定します。このパラメータを使用すると、ログ リーダー エージェントおよびディストリビューション エージェントは、サブスクライバでコマンドを適用するときに、パブリッシャで (多数のコマンドで構成される) 大きなトランザクションを複数の小さなトランザクションに分割できます。このパラメータを指定すると、ディストリビュータでの競合を減らし、パブリッシャとサブスクライバの間の待機時間を減らすことができます。元のトランザクションはより小さな単位で適用されるため、サブスクライバは元のトランザクションが終了する前に、大きな論理パブリッシャ トランザクションの行にアクセスし、トランザクションの厳密な原子性を損なうことがあります。既定値は 0 です。この場合、パブリッシャのトランザクション境界が保護されます。

    ms146878.note(ja-jp,SQL.90).gifメモ :
    このパラメータは、SQL Server パブリケーション以外では無視されます。詳細については、「Oracle パブリッシャのパフォーマンス チューニング」の「トランザクション セット ジョブの構成」を参照してください。
  • -MessageIntervalmessage_interval
    履歴をログに記録する間隔です。最後の履歴イベントがログに記録された後で MessageInterval 値に到達すると、次の履歴イベントがログに記録されます。

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

  • -Outputoutput_path_and_file_name
    エージェントの出力ファイルのパスです。ファイル名が指定されない場合、出力はコンソールに送られます。指定したファイル名が既に存在する場合、出力はそのファイルに追加されます。
  • -OutputVerboseLevel [0|1|2|3|4]
    出力を詳細表示にするかどうかを指定します。

    説明

    0

    エラー メッセージのみが出力されます。

    1

    すべてのエージェント進行状況レポート メッセージが出力されます。

    2 (既定値)

    すべてのエラー メッセージおよびエージェント進行状況レポート メッセージが出力されます。

    3

    レプリケートされた各コマンドの最初の 100 バイトが出力されます。

    4

    すべてのレプリケートされたコマンドが出力されます。

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

  • -PacketSizepacket_size
    パケット サイズをバイト単位で指定します。既定値は 4096 (バイト) です。
  • -PollingIntervalpolling_interval
    ログを対象としてレプリケートされたトランザクションを照会する間隔を表す秒単位の値です。既定値は 5 秒です。
  • -ProfileNameprofile_name
    エージェント パラメータに使用するエージェント プロファイルを指定します。ProfileName が NULL の場合、このエージェント プロファイルは無効になります。ProfileName を指定しない場合、エージェントの種類に応じた既定のプロファイルが使われます。詳細については、「レプリケーション エージェント プロファイル」を参照してください。
  • -PublisherFailoverPartnerserver_name[**\**instance_name]
    パブリケーション データベースとのデータベース ミラーリング セッションに参加する、SQL Server フェールオーバー パートナー インスタンスを指定します。詳細については、「レプリケーションおよびデータベース ミラーリング」を参照してください。
  • -PublisherSecurityMode [0|1]
    パブリッシャのセキュリティ モードを指定します。値 0 は SQL Server 認証モード (既定値) を示し、値 1 は Windows 認証モードを示します。
  • -PublisherLoginpublisher_login
    パブリッシャのログイン名です。
  • -PublisherPasswordpublisher_password
    パブリッシャのパスワードです。
  • -QueryTimeOutquery_time_out_seconds
    クエリがタイムアウトになるまでの秒数です。既定値は 1,800 秒です。
  • -ReadBatchSizenumber_of_transactions
    パブリッシング データベースのトランザクション ログから読み取られるトランザクションの処理サイクルあたりの最大数であり、既定値は 500 です。エージェントは、すべてのトランザクションをログから読み取るまで、トランザクションの読み取りをバッチ処理で継続します。このパラメータは、Oracle パブリッシャに対してサポートされていません。
  • -ReadBatchThresholdnumber_of_commands
    ディストリビューション エージェントによってサブスクライバに発行される前に、トランザクション ログから読み取られるレプリケーション コマンドの数です。既定値は 0 です。このパラメータが指定されていない場合、ログ リーダー エージェントは、ログの最後まで読み取るか、または -ReadBatchSize (トランザクション数) で指定された数だけ読み取ります。
  • -RecoverFromDataErrors
    SQL Server 以外のパブリッシャからパブリッシュされる列データでエラーが発生しても、ログ リーダー エージェントを継続して実行することを指定します。既定では、このようなエラーが発生するとログ リーダー エージェントは失敗します。-RecoverFromDataErrors を使用する場合、エラーのある列データは NULL または適切な NULL 以外の値としてレプリケートされ、警告メッセージが MSlogreader_history テーブルに記録されます。このパラメータは、Oracle パブリッシャに対してのみサポートされます。

解説

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

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

参照

その他の技術情報

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手