モニター

モニタリング・タスクについてすべて学習します。

トピック:

モニタリングに使用するコマンド

Oracle GoldenGate MA Webインタフェースから、様々なレベルでExtractおよびReplicatグループに関する情報を表示できます。もう1つの方法として、コマンドライン・インタフェースを使用して様々なプロセスをモニターする方法があります。

「Performance Metrics Serviceからのプロセスのモニター」を参照してください。

コマンドの構文、使用方法の詳細および例は、『Oracle GoldenGateコマンドライン・インタフェース・リファレンス』を参照してください。

コマンド 表示内容
INFO {EXTRACT | REPLICAT} group [DETAIL] 実行ステータス、チェックポイント、ラグ概算および環境情報
INFO ALL

システム上のすべてのOracle GoldenGateプロセスに関するINFO出力を表示します。

STATS {EXTRACT | REPLICAT} group

実行した操作の数など、処理量に関する統計を表示します。

STATUS {EXTRACT | REPLICAT} group

ExtractおよびReplicatプロセスの実行ステータス(起動、実行中、停止、異常終了)を表示します。

LAG {EXTRACT | REPLICAT} group

最後に処理されたレコードとデータ・ソースのタイムスタンプとの間のレイテンシを表示します。

INFO {EXTTRAIL  | RMTTRAIL } trail

関連するプロセスの名前、最後に処理されたデータの位置、最大ファイル・サイズを表示します。

SEND {EXTRACT | REPLICAT } group

プロセスと選択したオプションに応じて、メモリー・プール、ラグ、TCP統計、長時間実行トランザクション、プロセス・ステータス、リカバリ進行状況などに関する情報が戻されます。

VIEW REPORT group

破棄ファイルまたはプロセス・レポートの内容を表示します。

VIEW GGSEVT

Oracle GoldenGateエラー・ログの内容を表示します。

COMMAND ER wildcard

COMMANDタイプに応じた次の情報:

INFO
LAG
SEND
STATS
STATUS
wildcard
は、影響を受けるプロセス・グループに応じたワイルドカードの指定です。たとえば:
INFO ER ext*
STATS ER *
INFO PARAM

静的情報を問い合せて表示します。

GETPARAMINFO

現在実行中のパラメータ値を表示します。

INFO DISTPATH

分散パスに関する情報を返します。このコマンドを実行する前に、そのデプロイメントの分散サービスが稼働していることを確認します。

INFO EXTTRAIL

ローカル証跡の構成情報を取得します。トレイル名、書込み元のExtract、最新のデータ処理位置、割り当てられた最大ファイル・サイズが表示されます。

INFO RMTTRAIL

リモート証跡の構成情報を取得します。トレイル名、書込み元のExtract、最新のデータ処理位置、割り当てられた最大ファイル・サイズが表示されます。

INFO ER

複数のExtractおよびReplicatグループの情報を1つの単位として取得します。

INFO CHECKPOINTTABLE

チェックポイント表の存在を確認し、作成された日時を表示します。

INFO CREDENTIALS

資格証明のリストを取得します。

INFO ENCRYPTIONPROFILE

サービス・マネージャで使用可能な暗号化プロファイルに関する情報を返します。

INFO HEARTBEATTABLE

データベースに構成されたハートビート表に関する情報を表示します。

INFO AUTHORIZATIONPROFILE

デプロイメント内のすべての認可プロファイルまたは特定のデプロイメントの特定の認可プロファイルの情報をリストします。

INFO MASTERKEY

現在オープンしているマスター・キー・ウォレットの内容を表示します。ウォレット・ストアが存在しない場合は、新しいウォレット・ストア・ファイルが作成されます。このウォレット・ストア・ファイルは、様々な暗号化キーを作成時にホストするために使用されます。

INFO PROFILE

管理対象プロセスのプロファイルに関する情報を返します。

INFO RECVPATH

レシーバ・サービスのターゲットで開始される分散パスに関する情報を返します。このコマンドを実行する前に、レシーバ・サービスが実行中であることを確認します。

INFO SCHEMATRANDATA

Oracleデータベースにのみ有効です。Oracleのスキーマレベルのサプリメンタル・ロギングが、指定したスキーマに対して有効かどうか、またはインスタンス化情報があるかどうかを確認します。このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。

INFO TRACETABLE

データベースのローカル・インスタンスに指定したトレース表が存在することを確認します。

INFO TRANDATA

データベースに応じて異なる出力を表示します。

STATS DISTPATH | RECVPATH

分散パス(DISTPATH)またはレシーバ・パス(RECVPATH)の統計を取得します。

STATS ER

複数のExtractおよびReplicatグループの統計を1つの単位として取得します。ワイルドカードとともに使用すると、その条件を満たすすべてのExtractおよびReplicatグループにコマンドを適用します。

STATUS ER

複数のExtractおよびReplicatグループのステータスを1つの単位として取得します。

STATUS DEPLOYMENT

指定したデプロイメントのステータスを表示します。

STATUS PMSRVR

パフォーマンス・サービスのステータス。

STATUS SERVICE

指定したOracle GoldenGateサービスのステータスを表示します。

Performance Metrics Serviceからのプロセスのモニター

Performance Metrics Serviceは、メトリック・サービスを使用してインスタンス・デプロイメントのパフォーマンス結果を収集して格納します。Performance Metrics Serviceの概要ページにアクセスすると、すべてのOracle GoldenGateプロセスがそれらの現在の状態で表示されます。

プロセスをクリックすると、そのパフォーマンス・メトリックを表示できます。また、このページでサービス・メッセージやステータス変更の詳細を確認することもできます。

このページで実行できるタスクの概要を次に示します。

タスク 説明

メッセージの確認

「メッセージ概要」タブでの「メッセージ概要」タブでのメッセージの確認

ステータス変更の確認

ステータス変更の確認タブをクリックしてサービスのステータスの変更を確認します。

トピック:

メッセージ概要タブでのメッセージの確認

サービスからのメッセージは、Performance Metrics Serviceの概要ページに表示されます。

送信または受信されるメッセージを確認するには、次の手順を実行します。
  1. Service Managerで「パフォーマンス・メトリック・サービス」をクリックします。
    Performance Metrics Serviceの「概要」ページが表示されます。
  2. 「メッセージ概要」タブ(まだ選択されていない場合)をクリックすると、すべてのサービス・メッセージへのドリルダウンが表示されます。

    メッセージのリストをスクロール表示するか、メッセージのテキストを入力して特定のメッセージを検索します。

  3. 「Refresh」をクリックして、メッセージの同期済リアルタイム・リストを取得してから、検索を開始します。メッセージ数を増減するためにページ・サイズを変更することもできます。

ステータス変更の確認

マイクロサービスのリアルタイムのステータス変更は、Performance Metrics Serviceの「ステータス変更の概要」タブでモニターできます。

ステータス変更メッセージには、日付、プロセス名およびステータス(実行中、開始中、停止、中止)が表示されます。

ステータスの変更を確認するには、Service Managerのホームページで「パフォーマンス・メトリック・サービス」をクリックしてから、「ステータス変更の概要」タブをクリックします。サービスからのステータス変更メッセージのリストが表示されます。

特定のメッセージを検索する場合は検索を使用できます。ただし、「リフレッシュ」をクリックしてから検索し、サービスの更新されたステータスを確実に取得してください。

検索メッセージは、クリティカル・メッセージや情報メッセージと区別するために異なる色で表示されることに注意してください。

データストアのパージ

Performance Metrics Serviceのモニタリング・コマンドタブから、データストアの保持の変更とそれの消去ができます。

ステータスの変更を確認するには、Service Managerのホームページで「パフォーマンス・メトリック・サービス」をクリックしてから、「モニタリング・コマンド」タブをクリックします。

現在のプロセス保持(日数)が表示されます。

保持する日数を入力するか、スライド・アイコンで新しい期間(1日から365日まで)を設定してから、「実行」で消去を有効化します。パージの詳細も表示されます。

様々なオペレーティング・システムのパフォーマンス・モニタリングのためのプロトコル

Oracle GoldenGateは、UNIXベースのシステム用のUnixドメイン・ソケット(UDS)を使用して、Extract、Replicatおよびその他のプロセスからデプロイメントのパフォーマンス・モニタリング・サービスに監視ポイントを送信します。

UDSは、OracleおよびOracle以外のデータベースで使用できます。UDSファイルは、デプロイメントの$OGG_HOME/var/tempディレクトリにあります。

Oracle GoldenGate 21cの場合、パフォーマンス・メトリック・サービスの通信プロトコルはUDSのみです。UDSをサポートしていないWindowsおよびその他のオペレーティング・システムでは、UDPがデフォルトのパラメータです。

Extractリカバリの監視

長時間実行トランザクションがオープンしているときにExtractが異常終了すると、Extractの再起動時のリカバリに時間がかかることがあります。処理状態をリカバリするため、Extractは、必要に応じて以前のオンライン・ログとアーカイブ・ログを検索し、その長時間実行トランザクションの最初のログ・レコードを検出する必要があります。トランザクションの開始時点が古いほど、一般的にリカバリにかかる時間も長くなり、Extractは停止したように見えることがあります。

Extractのリカバリ状況が適切であることを確認するには、SEND EXTRACTコマンドをSTATUSオプション付きで使用します。次のステータス記録のいずれかが表示されるため、リカバリの実行中にExtractがそのログ読取り位置を変更するのに応じて、作業の進行状況を追跡できます。
In recovery[1]

Extractは、トランザクション・ログのチェックポイントにリカバリ中です。これは、BRチェックポイント・ファイル、アーカイブ/オンライン・ログ、またはアーカイブ/オンライン・ログのリカバリ・チェックポイントからの読取りを意味します。

In recovery[2]

Extractは、チェックポイントから証跡の末尾にリカバリ中です。これは、最後のトランザクションが完全には書き込まれず、トランザクションを再書込みしているときにリカバリ・マーカーが出力証跡に付加されることを意味します。

Recovery complete

リカバリが終了し、通常の処理が再開されます。

ラグのモニター

ラグ統計は、Oracle GoldenGateプロセスが、ビジネス・アプリケーションによって生成されたデータの量に後れを取らず適切に処理を進めているかどうかを示します。この情報によって、潜在的な問題を診断し、Oracle GoldenGateプロセスのパフォーマンスをチューニングしてソース・データベースとターゲット・データベース間のレイテンシを最小化できます。

トピック:

ラグについて

Extractのラグとは、(システム・クロックに基づく)Extractがレコードを処理した時刻と、データ・ソース内のそのレコードのタイムスタンプとの差(秒)です。

Replicatのラグとは、(システムクロックに基づく)Replicatが最後のレコードを処理した時刻と、証跡内のそのレコードのタイムスタンプとの差(秒)です。

ラグ統計を表示するには、LAGまたはSEND ERSEND EXTRACTSEND REPLICATコマンドを使用します。

ノート:

INFOコマンドでもラグ統計は戻されますが、この統計は、処理中の現在のレコードではなく、チェックポイントが指定された最後のレコードから取得された統計です。LAGINFOと比較して正確性の点で劣ります。

自動ハートビート表を使用したラグのモニター

デフォルトの自動ハートビート表機能を使用してエンドツーエンドのレプリケーション遅延を監視できます。自動ハートビートは、ハートビート・シード表およびハートビート表のレコードを更新し、ハートビート履歴表を構築することにより、各ソース・データベースからレプリケーション・ストリームに送信されます。レプリケーション・パスの各レプリケーション・プロセスがこれらのハートビート・レコードを処理して、その情報を更新します。これらのハートビート・レコードは、ターゲット・データベースでハートビート表に挿入されるか、更新されます。

ハートビート表には次の情報が含まれます。

  • ソース・データベース

  • 宛先データベース

  • 送信レプリケーション・ストリームに関する情報:

    • パス内のExtract、Distribution ServiceまたはReplicatプロセスの名前

    • ハートビート・レコードがレプリケーション・プロセスによって処理されたときのタイムスタンプ。

  • 受信レプリケーション・ストリームに関する情報:

    • パス内のExtract、Distribution ServiceまたはReplicatプロセスの名前

    • ハートビート・レコードがレプリケーション・プロセスによって処理されたときのタイムスタンプ。

ハートビート表とハートビート履歴表の情報を使用して、各レプリケーションの現在と過去の遅延を計算できます。

Replicatは、自動ハートビート表(LOGBSN)を使用してExtractの現在の再開位置を追跡できます。これにより、必要に応じてソース・データベースから証跡ファイルを再生成し、ソース・データベースのREDOログ保存期間を最小化できます。また、最新のExtractの再開位置を追跡することにより、自動競合検出および解決(ACDR)表のツームストン表をより頻繁にパージできます。

双方向の構成では、データベースに含まれる近隣へのレプリケーション・パスと同数のエントリがハートビート表にあり、片方向設定ではソース側の表は空です。送信列には、タイムスタンプと送信パス、ローカルExtractおよびダウンストリームのプロセスが含まれます。受信列には、タイムスタンプ、アップストリームのプロセスのパスおよびローカルReplicatが含まれます。

片方向構成では、ターゲット・データベースはハートビート表の受信列のみに移入します。

ノート:

自動ハートビート機能はMySQLバージョン5.5ではサポートされていません。

トピック:

Extractリカバリの監視

長時間実行トランザクションがオープンしているときにExtractが異常終了すると、Extractの再起動時のリカバリに時間がかかることがあります。処理状態をリカバリするため、Extractは、必要に応じて以前のオンライン・ログとアーカイブ・ログを検索し、その長時間実行トランザクションの最初のログ・レコードを検出する必要があります。トランザクションの開始時点が古いほど、一般的にリカバリにかかる時間も長くなり、Extractは停止したように見えることがあります。

Extractのリカバリ状況が適切であることを確認するには、SEND EXTRACTコマンドをSTATUSオプション付きで使用します。次のステータス記録のいずれかが表示されるため、リカバリの実行中にExtractがそのログ読取り位置を変更するのに応じて、作業の進行状況を追跡できます。
In recovery[1]

Extractは、トランザクション・ログのチェックポイントにリカバリ中です。これは、BRチェックポイント・ファイル、アーカイブ/オンライン・ログ、またはアーカイブ/オンライン・ログのリカバリ・チェックポイントからの読取りを意味します。

In recovery[2]

Extractは、チェックポイントから証跡の末尾にリカバリ中です。これは、最後のトランザクションが完全には書き込まれず、トランザクションを再書込みしているときにリカバリ・マーカーが出力証跡に付加されることを意味します。

Recovery complete

リカバリが終了し、通常の処理が再開されます。

ハートビート表のエンドツーエンド・レプリケーション・フロー

ハートビート表のエンドツーエンドのレプリケーション処理は、Oracle GoldenGateの証跡形式の使用に依存しています。この処理について、次に説明します。

ADD HEARTBEATTABLEコマンドを使用して、各データベースにハートビート表を追加します。ハートビート表をすべてのソース・インスタンスおよびターゲット・インスタンスに追加し、既存のOracle GoldenGateプロセスを再起動して、ハートビート機能を有効にします。データベース・システムによっては、ハートビート表データを移入するためにジョブの作成または有効化が必要になることがあります。

次の例を参照してください。
DBLOGIN USERIDALIAS alias  [DOMAIN domain]|[SYSDBA | SQLID sqlid][SESSIONCHARSET character_set]}
ADD HEARTBEATTABLE

(オプション) Oracle Databaseの場合、ハートビート更新はOracle DBMS_SCHEDULERに依存しているので、これが適切に動作していることを確認する必要があります。DBMS_SCHEDULERを問い合せるには、次を発行します。

SELECT START_DATE, LAST_START_DATE, NEXT_RUN_DATE 
FROM DBA_SCHEDULER_JOBS 

Where job_name ='GG_UPDATE_HEARTBEATS';

次に、NEXT_RUN_DATE (スケジューラを次回実行する日時)の有効な値を探します。これが過去のタイムスタンプである場合、ジョブは実行されないので修正する必要があります。

スケジューラが機能しない一般的な理由は、パラメータjob_queue_processesの設定値が低すぎる(通常はゼロ)場合です。ALTER SYSTEM SET JOB_QUEUE_PROCESSES = ##; (##はジョブ・キュー・プロセス数)コマンドを使用して、データベースに構成されたjob_queue_processesの数を増やします。

Extractを実行します。これにより、論理変更レコード(LCR)を受信時に、OUTGOING_EXTRACT列の値がチェックされます。

  • Extract名がこの値に一致すると、OUTGOING_EXTRACT_TS列が更新され、レコードが証跡に入力されます。

  • Extract名が一致しない場合、LCRは破棄されます。

  • OUTGOING_EXTRACT値がNULLの場合、OUTGOING_EXTRACT_TSとともに移入され、レコードが証跡に入力されます。

レコードの読取り時にDistribution Serviceによって、OUTGOING_ROUTING_PATH列の値がチェックされます。この列には分散パスのリストが含まれています。

値がNULLの場合、列は現在のグループ名(およびパス、ただしこれがDistribution Serviceの場合) "*"で更新され、OUTGOING_ROUTING_TS列を更新して、レコードがそのターゲット証跡ファイルに書き込まれます。

値のリストに"*"が含まれている場合は、それをgroup name[:pathname],"*"'で置換して、OUTGOING_ROUTING_TS列を更新し、レコードがそのターゲット証跡ファイルに書き込まれます。リストの値にアスタリスク(*)が含まれていない場合、分散パス名がリストにあると、リスト内の関連するgroup name[:pathname],"*"'ペアに指定されたパスにレコードが送信されます。分散パス名がリストにない場合、レコードは破棄されます。

Replicatを実行します。これによりレコードの受信時に、OUTGOING_REPLICA列の値がチェックされます。

  • Replicat名が値に一致すると、ハートビート表の行が更新され、レコードが履歴表に挿入されます。

  • Replicat名が一致しない場合は、レコードが破棄されます。

  • 値がNULLの場合、Replicatの列マッピングを暗黙的に起動して、ハートビート表とハートビート履歴表の行が更新されます。

    Replicatの自動列マッピング

    REMOTE_DATABASE 		= LOCAL_DATABASE
    INCOMING_EXTRACT	 	= OUTGOING_EXTRACT
    INCOMING_ROUTING_PATH      = OUTGOING_ROUTING_PATH with "*"    removed
    INCOMING_REPLICAT		= @GETENV ("GGENVIRONMENT", "GROUPNAME")
    INCOMING_HEARTBEAT_TS	= HEARTBEAT_TIMESTAMP
    INCOMING_EXTRACT_TS	= OUTGOING_EXTRACT_TS
    INCOMING_ROUTING_TS	= OUTGOING_ROUTING_TS
    INCOMING_REPLICAT_TS          = @DATE ('UYYYY-MM-DD HH:MI:SS.FFFFFF','JTSLCT',@GETENV ('JULIANTIMESTAMP'))
    LOCAL_DATABASE	= REMOTE_DATABASE
    OUTGOING_EXTRACT	= INCOMING_EXTRACT
    OUTGOING_ROUTING_PATH	= INCOMING_ROUTING_PATH
    OUTGOING_HEARTBEAT_TS     = INCOMING_HEARTBEAT_TS
    OUTGOING_REPLICAT	= INCOMING_REPLICAT
    OUTGOING_HEARTBEAT_TS	= INCOMING_HEARTBEAT_TS
    

その他の考慮事項:

ハートビートがシステムを流れる際の遅延の計算は、ソース・システムとターゲット・システムのクロックが正確に設定されているかどうかに依存します。ターゲット・システムがソース・システムよりも進んでいると、遅延が負の値になる可能性があります。クロックの差異に気付いて修正する措置を取れるよう、遅延は負の数値として表示されます。

システムを流れるタイムスタンプはUTCで設定されています。タイムスタンプにはタイムゾーンが関連付けられていないので、各コンポーネントが異なるタイムゾーンに設定されている場合でも、ハートビート表を表示するときは、すぐに遅延を表示できます。基礎となる表を基に必要なビューを書き込むことができます。UTCが推奨されます。

すべてのハートビート・エントリはUTF-8で証跡に書き込まれます。

送信パスと受信パスを組み合せて一意に行が特定されます。つまり、送信パスが同じで受信パスが異なる2つの行がある場合、2つの一意のエントリとみなされます。

ハートビート表の詳細

GG_HEARTBEAT表には、エンドツーエンド・レプリケーション時間のタイムスタンプ情報と、異なるコンポーネントのプライマリとセカンダリのExtractおよびReplicatのタイミング情報が表示されます。

片方向環境では、ターゲット・データベースのみにレプリケーション・ラグに関する情報が含まれます。この場合は、レコードがソース・データベースで生成され、ターゲット・データベースでクライアントに見えるようになります。

ノート:

ソース・データベースとリモート・データベースの両方が同じ名前の場合、自動ハートビート表はOUTGOING_%列にデータを移入しません。データベース名を変更するには、ユーティリティDBNEWIDを使用します。詳細は、DBNEWIDユーティリティを参照してください。
データ型 説明

LOCAL_DATABASE

VARCHAR2

リモート・データベースからのレプリケーション時間が計測されるローカル・データベース。

HEARTBEAT_TIMESTAMP

TIMESTAMP(6)

タイムスタンプがリモート・データベースで生成された時点。

REMOTE_DATABASE

VARCHAR2

タイムスタンプが生成されるリモート・データベース

INCOMING_EXTRACT

VARCHAR2

リモート・データベースでのプライマリExtract (取得)の名前

INCOMING_ROUTING_PATH

VARCHAR2

リモート・データベースでのセカンダリExtract (ポンプ)の名前

INCOMING_REPLICAT

VARCHAR2

ローカル・データベースでのReplicatの名前。

INCOMING_HEARTBEAT_TS

TIMESTAMP(6)

情報がローカル・データベースのGG_HEARTBEAT表に挿入されるときの最終タイムスタンプ。

INCOMING_EXTRACT_TS

TIMESTAMP(6)

生成されたタイムスタンプがリモート・データベースのプライマリExtractで処理されるときのタイムスタンプ。

INCOMING_ROUTING_TS

TIMESTAMP(6)

生成されたタイムスタンプがリモート・データベースのセカンダリExtractで処理されるときのタイムスタンプ。

INCOMING_REPLICAT_TS

TIMESTAMP(6)

生成されたタイムスタンプがローカル・データベースのReplicatで処理されるときのタイムスタンプ。

OUTGOING_EXTRACT

VARCHAR2

双方向/N方向レプリケーション: ローカル・データベースのプライマリExtractの名前。

OUTGOING_ROUTING_PATH

VARCHAR2

双方向/N方向レプリケーション: ローカル・データベースのセカンダリExtractの名前。

OUTGOING_REPLICAT

VARCHAR2

双方向/N方向レプリケーション: リモート・データベースのReplicatの名前。

OUTGOING_HEARTBEAT_TS

TIMESTAMP(6)

双方向/N方向レプリケーション: 情報がリモート・データベースの表に挿入されるときの最終タイムスタンプ。

OUTGOING_EXTRACT_TS

TIMESTAMP(6)

双方向/N方向レプリケーション: 生成されたタイムスタンプがローカル・データベースのプライマリExtractで処理されるときのタイムスタンプ。

OUTGOING_ROUTING_TS

TIMESTAMP(6)

双方向/N方向レプリケーション: 生成されたタイムスタンプがローカル・データベースのセカンダリExtractで処理されるときのタイムスタンプ。

OUTGOING_REPLICAT_TS

TIMESTAMP(6)

双方向/N方向レプリケーション: 生成されたタイムスタンプがリモート・データベースのReplicatで処理されるときのタイムスタンプ。

INCOMING_REPLICAT_LW_CSN

VARCHAR2

 

INCOMING_EXTRACT_HEARTBEAT_CSN

VARCHAR2

 

INCOMING_EXTRACT_RESTART_CSN

VARCHAR2

 

INCOMING_EXTRACT_RESTART_TS

TIMESTAMP(6)

 

GG_HEARTBEAT_HISTORY表には、エンドツーエンド・レプリケーション時間のタイムスタンプ履歴情報と、異なるコンポーネントのプライマリとセカンダリのExtractおよびReplicatのタイミング情報が表示されます。

片方向環境では、宛先データベースのみにレプリケーション・ラグに関する情報が含まれます。

タイムスタンプはUTCタイムゾーンで管理されます。この場合は、レコードがソース・データベースで生成され、ターゲット・データベースでクライアントに見えるようになります。

データ型 説明

LOCAL_DATABASE

VARCHAR2

エンドツーエンド・ラグが計測されるローカル・データベース。

HEARTBEAT_RECEIVED_TS

TIMESTAMP(6)

リモート・データベースのタイムスタンプがローカル・データベースで受け取られた時点。

REMOTE_DATABASE

VARCHAR2

タイムスタンプが生成されるリモート・データベース。

INCOMING_EXTRACT

VARCHAR2

リモート・データベースのプライマリExtractの名前。

INCOMING_ROUTING_PATH

VARCHAR2

リモート・データベースのセカンダリExtractの名前。

INCOMING_REPLICAT

VARCHAR2

ローカル・データベースでのReplicatの名前。

INCOMING_HEARTBEAT_TS

TIMESTAMP(6)

情報がローカル・データベースのGG_HEARTBEAT_HISTORY表に挿入されるときの最終タイムスタンプ。

INCOMING_EXTRACT_TS

TIMESTAMP(6)

生成されたタイムスタンプがリモート・データベースのプライマリExtractで処理されるときのタイムスタンプ。

INCOMING_ROUTING_TS

TIMESTAMP(6)

生成されたタイムスタンプがリモート・データベースのセカンダリExtractで処理されるときのタイムスタンプ。

INCOMING_REPLICAT_TS

TIMESTAMP(6)

生成されたタイムスタンプがローカル・データベースのReplicatで処理されるときのタイムスタンプ。

OUTGOING_EXTRACT

VARCHAR2

双方向/N方向レプリケーション: ローカル・データベースのプライマリExtractの名前。

OUTGOING_ROUTING_PATH

VARCHAR2

双方向/N方向レプリケーション: ローカル・データベースのセカンダリExtractの名前。

OUTGOING_REPLICAT

VARCHAR2

双方向/N方向レプリケーション: リモート・データベースのReplicatの名前。

OUTGOING_HEARTBEAT_TS

TIMESTAMP(6)

双方向/N方向レプリケーション: 情報がリモート・データベースの表に永続的に挿入されたときの最終タイムスタンプ。

OUTGOING_EXTRACT_TS

TIMESTAMP(6)

双方向/N方向レプリケーション: 生成されたタイムスタンプがローカル・データベースのプライマリExtractで処理されるときのタイムスタンプ。

OUTGOING_ROUTING_TS

TIMESTAMP(6)

双方向/N方向レプリケーション: 生成されたタイムスタンプがローカル・データベースのセカンダリExtractで処理されるときのタイムスタンプ。

OUTGOING_REPLICAT_TS

TIMESTAMP(6)

双方向/N方向レプリケーション: 生成されたタイムスタンプがリモート・データベースのReplicatで処理されるときのタイムスタンプ。

REPLICAT_LOW_WATERMARK_CSN

String

この列は、このハートビート・レコードを処理するときにReplicatによって移入されます。このレコードを処理する際に、現在の低水位標(LWM)がこの列に移入されます。これにより、ReplicatのLWM以降のハートビート・レコードからLOGBSNを選択できます。

SOURCE_EXTRACT_HEARTBEAT_CSN

String

この列は、Extractによって移入され、ソース・データベースのハートビート・トランザクションのソース・コミットSCNが含まれています。ソース・データベースのハートビート・ジョブは、コミットSCNを先験的に知らないため、この値を移入できません。

SOURCE_EXTRACT_RESTART_CSN

String

この列は、Extractによって移入され、Extractがこの特定のハートビート・レコードを処理するときの現在のLOGBSNが含まれています。ソース・データベースのハートビート・ジョブはこの値を移入しません。

SOURCE_EXTRACT_RESTART_CSN_TS

TIMESTAMP

この列は、Extractによって移入され、Extractがこの特定のハートビート・レコードを処理するときの現在のLOGBSNに対応するUTCのREDOタイムスタンプが含まれています。ソース・データベースのハートビート・ジョブはこの値を移入しません。

GG_LAGビューには、ローカル・データベースとリモート・データベースのレプリケーション・ラグに関する情報が表示されます。

片方向環境では、宛先データベースのみにレプリケーション・ラグに関する情報が含まれます。ラグは秒単位で計測されます。

データ型 説明

LOCAL_DATABASE

VARCHAR2

リモート・データベースからのエンドツーエンド・レプリケーション・ラグが計測されるローカル・データベース。

CURRENT_LOCAL_TS

TIMESTAMP(6)

ローカル・データベースの現在のタイムスタンプ。

REMOTE_DATABASE

VARCHAR2

タイムスタンプが生成されるリモート・データベース。

INCOMING_HEARTBEAT_AGE

NUMBER

リモート・データベースから受信した最新のハートビートの経過時間。

INCOMING_PATH

VARCHAR2

リモート・データベースからExtractおよびReplicatコンポーネントを含むローカル・データベースへのレプリケーション・パス。

INCOMING_LAG

NUMBER

リモート・データベースからローカル・データベースへのレプリケーション・ラグ。この時間は、リモート・データベースでハートビートが生成された時刻から、ローカル・データベースの表に情報が永続的に挿入された時刻を引いたものです。

OUTGOING_HEARTBEAT_AGE

NUMBER

ローカル・データベースからリモート・データベースへの最新のハートビートの経過時間。

OUTGOING_PATH

VARCHAR2

ローカル・データベースからExtractおよびReplicatコンポーネントを含むリモート・データベースへのレプリケーション・パス。

OUTGOING_LAG

NUMBER

ローカル・データベースからリモート・データベースへのレプリケーション・ラグ。この時間は、ローカル・データベースでハートビートが生成された時刻から、リモート・データベースの表に情報が永続的に挿入された時刻を引いたものです。

REMOTE_EXTRACT_RESTART_CSN

String

ソースExtractの再開位置。

REMOTE_DATABASE DB_UNIQUE_NAME

String

リモート・データベースの一意の名前が表示されます。一意の名前が存在しない場合は、DB_NAME値が表示されます。

REMOTE_EXTRACT_RESTART_CSN_TIME

Timestamp

ソースExtractのREDOの位置に関連付けられたタイムスタンプ。

REMOTE_DB_OLDEST_OPEN_TXN_AGE

Timestamp

Extractが現在処理しているソース・データベースで最も古いオープン・トランザクションの経過時間。この列は、SYSTIMESTAMP - REMOTE_EXTRACT_RESTART_TIMEとして計算できます。

LOCAL_REPLICAT_LWM_CSN

String

ハートビートを処理したときのローカルReplicatの低水位標CSN。

GG_LAG_HISTORYビューには、ローカル・データベースとリモート・データベースのレプリケーション・ラグ履歴に関する履歴情報が表示されます。

片方向環境では、宛先データベースのみにレプリケーション・ラグに関する情報が含まれます。

ラグは秒単位です。

データ型 説明

LOCAL_DATABASE

VARCHAR2

リモート・データベースからのエンドツーエンド・レプリケーション・ラグが計測されるローカル・データベース。

HEARTBEAT_RECEIVED_TS

TIMESTAMP(6)

リモート・データベースのタイムスタンプがローカル・データベースで受け取られた時点。

REMOTE_DATABASE

VARCHAR2

タイムスタンプが生成されるリモート・データベース。

DB_NAME

文字列 リモート・データベース名。
DB_UNIQUE_NAME 文字列 リモート・データベースの一意の名前。データベースの一意の名前が存在しない場合、DB_NAMEDB_UNIQUE_NAMEは同じになります。

スタンバイへのスイッチオーバーのシナリオでは、db_unique_nameは変更されますが、db_nameとレプリケーション・パスは同じままです。

INCOMING_HEARTBEAT_AGE

NUMBER

ハートビート表の経過期間。

INCOMING_PATH

VARCHAR2

リモート・データベースからExtractおよびReplicatコンポーネントを含むローカル・データベースへのレプリケーション・パス。

INCOMING_LAG

NUMBER

リモート・データベースからローカル・データベースへのレプリケーション・ラグ。この時間は、リモート・データベースでハートビートが生成された時刻から、ローカル・データベースの表に情報が永続的に挿入された時刻を引いたものです。

OUTGOING_HEARTBEAT_AGE

NUMBER

OUTGOING_PATH

VARCHAR2

ローカル・データベースからExtractおよびReplicatコンポーネントを含むリモート・データベースへのレプリケーション・パス。

OUTGOING_LAG

NUMBER

ローカル・データベースからリモート・データベースへのレプリケーション・ラグ。この時間は、ローカル・データベースでハートビートが生成された時刻から、リモート・データベースの表に情報が永続的に挿入された時刻を引いたものです。

REMOTE_EXTRACT_RESTART_CSN

String

ソースExtractの再開位置。

REMOTE_EXTRACT_RESTART_CSN_TIME

TIMESTAMP

ソースExtractのREDOの位置に関連付けられたタイムスタンプ。

REMOTE_DB_OLDEST_OPEN_TXN_AGE

TIMESTAMP

Extractが現在処理しているソース・データベースで最も古いオープン・トランザクションの経過時間。この列は、SYSTIMESTAMP - REMOTE_EXTRACT_RESTART_TIMEとして計算できます。

LOCAL_REPLICAT_LWM_CSN

String

ハートビートを処理したときのローカルReplicatの低水位標CSN。

INCOMING_EXTRACT_LAG

 

INCOMING_ROUTINE_LAG

   

INCOMING_REPLICAT_READ_LAG

   

INCOMING_REPICAT_LAG

   

OUTGOING_EXTRACT_LAG

   

OUTGOING_ROUTINE_LAG

   

OUTGOING_REPLICAT_READ_LAG

   

OUTGOING_REPLICAT_LAG

   
ハートビート表の更新

ハートビート・シード表のHEARTBEAT_TIMESTAMP列は、データベース・ジョブで定期的に更新する必要があります。デフォルトのハートビート間隔は1分で、この間隔はコマンドラインまたは管理サービスWebインタフェースから指定または上書きできます。

Oracle Databaseの場合、データベース・ジョブは自動的に作成されます。

サポートされているその他のすべてのデータベースの場合、データベース固有のスケジューラ機能を使用してハートビート・タイムスタンプを更新するバックグラウンド・ジョブを作成する必要があります。

ハートビート表の更新の詳細は、ADD HEARTBEATTABLEALTER HEARTBEATTABLEを参照してください。

ハートビート履歴表のパージ

ハートビート履歴表はジョブを使用して定期的にパージされます。デフォルトの間隔は30日で、この間隔は管理クライアントまたはAdministration Service Webインタフェースなどのコマンドライン・インタフェースを使用して指定または上書きできます。

Oracle Databaseの場合、データベース・ジョブは自動的に作成されます。

サポートされているその他のすべてのデータベースの場合、データベース固有のスケジューラ機能を使用してハートビート・履歴表をパージするバックグラウンド・ジョブを作成する必要があります。

ベスト・プラクティス

次のことをお薦めします。

  • すべてのデータベースで同じハートビート頻度を使用して診断を容易にします。

  • 容量に問題がある場合は保存時間を調整します。

  • デフォルトのハートビート表の頻度を保持します。頻度を30から60秒に設定すると、ほとんどのワークロードで最適な結果をもたらします。

  • 遅延履歴統計を使用して遅延および期間の情報を収集します。

自動ハートビート・コマンドの使用方法

ハートビート表コマンドを使用して、次のようにOracle GoldenGateの自動ハートビート機能を制御できます。

コマンド 説明

ADD HEARTBEATTABLE

自動ハートビート機能に必要なハートビート表(LOGBSN列を含む)を作成します。

ALTER HEARTBEATTABLE

既存のハートビート・オブジェクトを変更します。

ALTER HEARTBEATTABLE UPGRADE

ハートビート表を変更して、ハートビート表にLOGBSN列を追加します。これはオプションです。

DELETE HEARTBEATTABLE

既存のハートビート・オブジェクトを削除します。

DELETE HEARTBEATENTRY

ハートビート表内のエントリを削除します。

INFO HEARTBEATTABLE

ハートビート表情報を表示します。

Db2 z/OS: 更新操作の統計の解釈

Db2データベースで実行されたDML操作の実際の数は、Oracle GoldenGateによってレポートされる、抽出されたDML操作の数と一致しない場合があります。更新文で行が物理的に変更されない場合、DB2はその更新文を記録しません。そのため、Oracle GoldenGateがそれを検出したり、統計に含めることはできません。

処理量のモニタリング

STATSコマンドを使用すると、Oracle GoldenGateプロセスによって処理されているデータ量と、そのデータ量がOracle GoldenGateシステムを通じて移動されている速度を表示できます。この情報によって、潜在的な問題を診断し、Oracle GoldenGateプロセスのパフォーマンスをチューニングできます。それらのコマンドには、出力の選択やフィルタリングに使用できる様々なオプションがあります。

STATSコマンドには、STATS EXTRACTSTATS REPLICATSTATS ERの各コマンドがあります。

SEND EXTRACTまたはSEND REPLICATコマンドにREPORTオプションを指定することで、いつでもレポート・ファイルに仮統計を送信できます。

エラー・ログの使用

Oracle GoldenGateのエラー・ログを使用して、次の情報を表示できます。

  • コマンドの履歴

  • 起動および停止したOracle GoldenGateプロセス

  • 実行された処理

  • 発生したエラー

  • 情報メッセージおよび警告メッセージ

エラー・ログにはイベントが発生順に記録されているため、エラーの(1つ以上の)原因を検出する場合に役立ちます。たとえば、次の情報を検索できます。

  • ユーザーがプロセスを停止したこと

  • プロセスがTCP/IPまたはデータベース接続の確立に失敗したこと

  • プロセスがファイルを開くことに失敗したこと

エラー・ログを表示するには、次のいずれかの方法を使用します。

  • 標準のシェル・コマンドによるOracle GoldenGateのルート・ディレクトリに含まれるggserr.logファイルの表示

  • Oracle GoldenGate DirectorまたはOracle GoldenGate Monitor

  • VIEW GGSEVTコマンド。

ggserr.logファイルの動作を次のように制御できます。

  • ファイルが最大サイズに達するとロールオーバーします。これはディスク領域の問題を回避するためのデフォルトです。

  • ディスク領域を考慮せず、すべてのプロセスによってすべてのメッセージがファイルに付加されます。

  • ファイルを無効にします。

  • メッセージをシステム・ログなど別の宛先にルーティングします。

このような動作は、次のいずれかの場所にあるogg-ggserr.xmlファイルに指定されて制御されます。 

Microservices Architecture
$OGG_HOME/etc/conf/logging/

プロセス・レポートの使用

プロセス・レポートを使用して、(プロセスに応じて)次の情報を表示できます。

  • 使用中のパラメータ

  • 表および列マッピング

  • データベース情報

  • 実行時メッセージおよびエラー

  • 処理された操作の数に関する実行時統計

Extract、Replicatのすべてのプロセスで、レポート・ファイルが生成されます。このレポートは、実行中に発生した問題(無効なマッピング構文、SQLエラー、接続エラーなど)を診断する場合に役立ちます。

プロセス・レポートを表示するには、次のいずれかの方法を使用します。

  • 標準のシェル・コマンドによるテキスト・ファイルの表示

  • Performance Metrics Service

  • VIEW REPORTコマンド。

  • プロセスがレポートを生成せずに異常終了した場合に情報を表示するには、次のコマンドを使用して、(Oracle GoldenGateコマンドラインでなく)オペレーティング・システムのコマンド・シェルからプロセスを実行し、端末に情報を送信します。

    process paramfile path.prm

    説明:

    • processの値は、extractまたはreplicatです。

    • path.prmの値は、パラメータ・ファイルの完全修飾名です。たとえば:

      REPLICA PARAMFILE /ogg/dirdat/repora.prm

デフォルトでは、レポートのファイル拡張子は.rptです(EXTORA.rptなど)。デフォルトの場所は、Oracle GoldenGateディレクトリのdirrptサブディレクトリです。ただし、これらのプロパティは、グループを作成するときに変更できます。レポート・ファイルは、一度作成したら、処理の開始後にOracle GoldenGateを適切に動作させるため、元の場所から移動しないでください。

プロセス・レポートの名前と場所を確認するには、INFO EXTRACTまたはINFO REPLICATコマンドを使用します。

トピック:

プロセス・レポートの実行時統計のスケジュール

デフォルトでは、実行時統計は、各実行の終了時に1回のみレポートに書き込まれます。長時間の実行や継続的な実行では、オプション・パラメータを使用することで、各実行の終了を待機せずにこれらの統計を定期的に表示できます。

実行時統計をレポートするスケジュールを設定するには、ExtractまたはReplicatのパラメータ・ファイルでREPORTパラメータを使用して、レポートで実行時統計を生成する日時を指定します。「REPORT」を参照してください。

レポートにオン・デマンドで実行時統計を送信するには、必要に応じてその時点の実行時統計を表示するREPORTオプションを付けてSEND EXTRACTまたはSEND REPLICATコマンドを実行します。

プロセス・レポートのレコード数の表示

REPORTCOUNTパラメータを使用して、ExtractまたはReplicatが起動後に処理したトランザクション・レコードの数をレポートします。各トランザクション・レコードは、Oracle GoldenGateによって取得されたトランザクション内で実行された論理データベース操作を表します。レコード数は、レポート・ファイルおよび画面に出力されます。

ReplicatレポートがSQLエラーで一杯になることを防止する方法

WARNRATEパラメータでは、プロセス・レポートおよびエラー・ログにレポートされるまでの、ターゲット表で許容されるSQLエラー数のしきい値を設定します。エラーは警告としてレポートされます。お使いの環境で、多数のエラーを許容できるときは、WARNRATEの値を増やすことによってこれらのファイルのサイズを最小限に抑えられます。

破棄ファイルの使用

デフォルトでは、STARTコマンドによってプロセスが開始されるたびに破棄ファイルが生成されます。破棄ファイルは、失敗したOracle GoldenGate操作に関する情報を取得します。この情報は、データ・エラー(無効な列マッピングに関連するエラーなど)を解決する場合に役立ちます。

破棄ファイルでは、次のような情報がレポートされます。

  • データベースのエラー・メッセージ

  • データソースまたは証跡ファイルの順序番号

  • データソースまたは証跡ファイルのレコードの相対バイト・アドレス

  • 破棄された操作の詳細(DML文の列値やDDL文のテキストなど)

破棄ファイルを表示するには、テキスト・エディタを使用するか、管理クライアントでVIEW REPORTコマンドを使用します。

デフォルトの破棄ファイルには、次のプロパティがあります。

  • ファイル名は、ファイルを作成したプロセスの名前に、デフォルトの拡張子.dscを付けたものです。例: finance.dsc

  • ファイルは、Oracle GoldenGateインストール・ディレクトリのdirrptサブディレクトリに作成されます。

  • ファイルの最大サイズは50MBです。

  • 起動時に破棄ファイルが存在する場合、消去してから新しいデータが書き込まれます。

これらのプロパティを変更するには、DISCARDFILEパラメータを使用します。NODISCARDFILEパラメータを使用すると、破棄ファイルの使用を無効にできます。

オペレーティング・システムのコマンドラインを使用してプロセスを開始した場合、デフォルトでは破棄ファイルは生成されません。DISCARDFILEパラメータを使用して、破棄ファイルを使用するかどうかと、そのプロパティを指定できます。

破棄ファイルは、一度作成したら、処理の開始後にOracle GoldenGateを適切に動作させるため、元の場所から移動しないでください。

破棄ファイルとレポート・ファイルの維持

デフォルトでは、破棄ファイルとレポート・ファイルは同じ方法でエージングされます。新しい破棄ファイルまたはレポート・ファイルは、新しいプロセス実行の開始時に作成されます。古いファイルは、名前に0(最新)から9(最も古い)までの順序番号を付加してエージングされます。

アクティブなレポートまたは破棄ファイルが、ある実行の終了前に(または、連続実行の最中に)最大ファイル・サイズに到達した場合、有効なエージング・スケジュールがなければ、そのプロセスは異常終了します。破棄ファイルやレポート・ファイルのエージング・スケジュールを設定するには、それぞれ、DISCARDROLLOVERパラメータおよびREPORTROLLOVERパラメータを使用します。これらのパラメータにより、プロセスの開始時に加え、定期的にファイルをロールオーバーするように指定されます。これは、ファイルのサイズを制御し、プロセスの停止を防止するだけでなく、アーカイブ・ルーチンに含めることができるアーカイブのセットが予測可能になります。詳細は、次のドキュメントを参照してください。

プロセスは、最大10個のエージングされたレポートまたは破棄ファイルと1個のアクティブなレポートまたは破棄ファイルを保持できます。10個目のファイルがエージングされると、新規レポートの作成時に最も古いレポートが削除されます。サービス・リクエストの解決に必要とされる場合に備えて、エージングされたレポート・ファイルおよび破棄ファイルのアーカイブ・スケジュールを設定することをお薦めします。

表12-1 Extractの現行レポートとエージングされたレポート

権限 X 日付 レポート
-rw-rw-rw-
1 ggs ggs
4384 Oct 5  14:02
TCUST.rpt
-rw-rw-rw-
1 ggs ggs
1011 Sep 27 14:10
TCUST0.rpt
-rw-rw-rw-
1 ggs ggs
3184 Sep 27 14:10
TCUST1.rpt
-rw-rw-rw-
1 ggs ggs
2655 Sep 27 14:06
TCUST2.rpt
-rw-rw-rw-
1 ggs ggs
2655 Sep 27 14:04
TCUST3.rpt
-rw-rw-rw-
1 ggs ggs
2744 Sep 27 13:56
TCUST4.rpt
-rw-rw-rw-
1 ggs ggs
3571 Aug 29 14:27
TCUST5.rpt

時間の差異の調整

ソース・システムとターゲット・システム間の時間の差異に対応するには、Extractパラメータ・ファイルでTCPSOURCETIMER | NOTCPSOURCETIMERパラメータを使用します。このパラメータにより、レプリケートされたレコードのタイムスタンプがレポート目的で調整されるため、同期ラグの解析が容易になります。