ラグのモニター
ラグ統計は、Oracle GoldenGateプロセスが、ビジネス・アプリケーションによって生成されたデータの量に後れを取らず適切に処理を進めているかどうかを示します。この情報によって、潜在的な問題を診断し、Oracle GoldenGateプロセスのパフォーマンスをチューニングしてソース・データベースとターゲット・データベース間のレイテンシを最小化できます。
ラグについて
Extractでは、ラグは、Extractによってレコードが処理された時間(システム・クロックに基づく)と、データ・ソースにおけるそのレコードのタイムスタンプ間の差異(秒)です。
Replicatでは、ラグは、Replicatによって最終レコードが処理された時間(システム・クロックに基づく)と、トレイルにおけるそのレコードのタイムスタンプ間の差異(秒)です。
ラグ統計を表示するには、[LAG](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-52D1B2C3-6ACF-4461-9ED2-FD3AE9121022)コマンドまたは[SEND ER](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-DD62102E-A84D-4866-9A3A-9C2281CFEED7)コマンド、[SEND EXTRACT](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-2A83CA04-DAB8-494B-BF36-F8D15E645749)コマンド、[SEND REPLICAT](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-DBA8F45C-6016-4AB4-BF9A-00C117029E7F)コマンドを使用します。
ノート: INFOコマンドでもラグ統計は戻されますが、この統計は、処理中の現在のレコードではなく、チェックポイントが与えられた最後のレコードから取得されたものです。LAGやINFOと比較して正確性の点で劣ります。
自動ハートビート表を使用したラグのモニター
デフォルトの自動ハートビート表機能を使用してエンドツーエンドのレプリケーション遅延を監視できます。自動ハートビートは、ハートビート・シード表およびハートビート表のレコードを更新し、heartbeat history tableを構築することにより、各ソース・データベースからレプリケーション・ストリームに送信されます。レプリケーション・パスの各レプリケーション・プロセスがこれらのハートビート・レコードを処理して、その情報を更新します。これらのハートビート・レコードは、ターゲット・データベースでハートビート表に挿入されるか、更新されます。
ハートビート表には次の情報が含まれます。
-
ソース・データベース
-
宛先データベース
-
送信レプリケーション・ストリームに関する情報:
-
パス内のExtract、Distribution ServiceまたはReplicatプロセスの名前
-
ハートビート・レコードがレプリケーション・プロセスによって処理されたときのタイムスタンプ。
-
-
受信レプリケーション・ストリームに関する情報:
-
パス内のExtract、Distribution ServiceまたはReplicatプロセスの名前
-
ハートビート・レコードがレプリケーション・プロセスによって処理されたときのタイムスタンプ。
-
ハートビート表とハートビート履歴表の情報を使用して、各レプリケーションの現在と過去の遅延を計算できます。
Replicatは、自動ハートビート表(LOGBSN)を使用してExtractの現在の再開位置を追跡できます。これにより、必要に応じてソース・データベースから証跡ファイルを再生成し、ソース・データベースのREDOログ保存期間を最小化できます。また、最新のExtractの再開位置を追跡することにより、自動競合検出および解決(ACDR)表のツームストン表をより頻繁にパージできます。
双方向の構成では、データベースに含まれる近隣へのレプリケーション・パスと同数のエントリがハートビート表にあり、片方向設定ではソース側の表は空です。送信列には、タイムスタンプと送信パス、ローカルExtractおよびダウンストリームのプロセスが含まれます。受信列には、タイムスタンプ、アップストリームのプロセスのパスおよびローカルReplicatが含まれます。
片方向構成では、ターゲット・データベースはハートビート表の受信列のみに移入します。
ノート:自動ハートビート機能はMySQLバージョン5.5ではサポートされていません。
ハートビート表のエンドツーエン・レプリケーション・フロー
ハートビート表のエンドツーエンドのレプリケーション処理は、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
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_NAMEとDB_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 AI Databaseの場合、データベース・ジョブは自動的に作成されます。
PostgreSQLでは、ハートビート表を更新する自動タスクを設定できます。Configure Automation Task to Update Heartbeat Table for PostgreSQLを参照してください。
サポートされているその他のすべてのデータベースの場合、データベース固有のスケジューラ機能を使用してハートビート・タイムスタンプを更新するバックグラウンド・ジョブを作成する必要があります。
ハートビート表の更新の詳細は、[ADD HEARTBEATTABLE](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-126E30A2-DC7A-4C93-93EC-0EB8BA7C13CB)、[ALTER HEARTBEATTABLE](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-08BC29F9-8A5D-4AD9-B355-528A270EECC8)を参照してください。
PostgreSQLのハートビート表を更新するための自動化タスクの構成
Oracle GoldenGate for PostgreSQL Webインタフェースは、ハートビート表を定期的に更新するためのcronジョブを作成する機能を提供します。
Webインタフェースからこのタスクを作成するステップは、次のとおりです。
-
左側のナビゲーション・ペインで、「タスク」を展開し、「ハートビート・タスクの更新」オプションを選択します。
\

\
-
「Update Heartbeat Tasks」ページでプラス記号をクリックします。「Create a New Heartbeat Task」ダイアログ・ボックスが表示されます。\

-
ダイアログ・ボックスで次の値を指定し、「送信」をクリックします。
-
名前: タスクの名前を指定します。
-
Credential Domain: ドロップダウン・リストからドメインを選択します。
-
資格証明別名: 更新ハートビート・タスクを作成するPostgreSQLデータベース・インスタンスの資格証明別名を選択します。
-
Frequency Interval(頻度間隔): 更新タスクを実行する頻度間隔を指定します。最小値は60 (デフォルト)で、最大値は7999に設定できます。
-
「ハートビートの更新」タスクを変更または削除するには、次のステップ1を使用できます。管理サービス・インタフェースの左側のナビゲーション・ペインで、「タスク」を選択します。
-
「ハートビート・タスクの更新」をクリックします。既存の「Update Heartbeat Tasks」のリストが表示されます。
-
「アクション」列から、鉛筆アイコンをクリックします。「ハートビート・タスクの更新の編集」ダイアログ・ボックスが表示されます。
-
資格証明ドメイン、別名または頻度間隔を変更または変更し、「発行」をクリックします。変更されたハートビートの更新タスクは、「ハートビートの更新タスク」ページにリストされます。
-
タスクを削除するには、タスクの「アクション」列から「削除」アイコンをクリックします。「OK」をクリックして削除を確認します。
ハートビート履歴表のパージ
ハートビート履歴表はジョブを使用して定期的にパージされます。デフォルトの間隔は30日で、この間隔は管理クライアントまたはAdministration Service Webインタフェースなどのコマンドライン・インタフェースを使用して指定または上書きできます。
Oracle AI Databaseの場合、データベース・ジョブは自動的に作成されます。
他のすべてのサポート対象データベースでは、データベース固有のスケジューラ機能を使用してハートビート履歴表をパージするバックグラウンド・ジョブを作成する必要があります。
ベスト・プラクティス
次を推奨します:
-
すべてのデータベースで同じハートビート頻度を使用して診断を容易にします。
-
容量に問題がある場合は保存時間を調整します。
-
デフォルトのハートビート表の頻度を保持します。頻度を30から60秒に設定すると、ほとんどのワークロードで最適な結果をもたらします。
-
遅延履歴統計を使用して遅延および期間の情報を収集します。
自動ハートビート・コマンドの使用方法
ハートビート表コマンドを使用して、次のようにOracle GoldenGateの自動ハートビート機能を制御できます。
| コマンド | 摘要 |
|---|---|
ADD HEARTBEATTABLE |
自動ハートビート機能に必要なハートビート表(LOGBSN列を含む)を作成します。 |
ALTER HEARTBEATTABLE |
既存のハートビート・オブジェクトを変更します。 |
ALTER HEARTBEATTABLE UPGRADE |
ハートビート表を変更して、ハートビート表にLOGBSN列を追加します。これはオプションです。 |
DELETE HEARTBEATTABLE |
既存のハートビート・オブジェクトを削除します。 |
DELETE HEARTBEATENTRY |
ハートビート表のエントリを削除します。 |
INFO HEARTBEATTABLE |
ハートビート表の情報を表示します。 |
レポート・ラグ
ラグ・レポートには、管理サービスからアクセスできます。ラグ・レポート・タスクを設定して、特定の期間のラグ・レポートを自動的に生成し、ラグ値が指定されたしきい値を超えた場合に警告を発行できます。次のステップに従って、ラグ・レポートを生成するための自動タスクを設定します。1. 管理サービスの左側のナビゲーション・ペインで、「タスク」をクリックし、「ラグ・レポート」を選択します。
-
「アクション」列には、ラグ・レポート・タスクの詳細を削除、変更、リフレッシュおよび表示するためのすべてのオプションが含まれています。
-
必要なオプションを選択します。
-
「Alter Task」オプションを選択すると、ラグ・レポートを編集するためのオプションが表示されます。オプションは:
-
Enabled: ラグ・レポート・タスクの処理を維持します。
-
Check Every (in minutes): ラグ・レポートをチェックする時間間隔を設定します。
-
レポート: 指定したしきい値を超えた場合にラグ・レポートを自動的に生成します。「超過した場合」ボックスでしきい値を指定できます。
-
If Exceeds: しきい値を指定します。この値を超越すると警告が発行されます。値は、秒、分または時間になります。
-
警告: ラグのしきい値が指定したしきい値を超えた場合に警告が生成されるようにします。
-
When Exceeds: 警告がトリガーされるまでのラグしきい値。
-
-
「発行」をクリックします。
Replicatでのラグの識別
Replicatプロセスのラグを識別し、表の列を変更するには、次の手順を実行します。
-
Oracle GoldenGateにリンクされているすべての表のソース・データベースでアクティビティを一時停止します。
-
管理クライアントを起動します。
-
Replicatグループに対して次のコマンドを実行します。
INFO REPLICAT *group*
-
Checkpoint Lag行で、Replicatの遅れがあるかどうかを確認します。必要に応じて、遅れがゼロになるまでINFO REPLICATを発行し続けますが、ゼロは証跡のすべてのデータが処理されていることを示します。 -
Replicatグループを停止します。
STOP REPLICAT *group*
-
ターゲット・データベースで表変更を実行します。
-
Replicatプロセスを起動します。
START REPLICAT *group*
- Oracle GoldenGateにリンクされているすべてのソース表で再開するユーザー・アクティビティを許可します。