4 ビッグ・データ用の自動ハートビート

この章では、Oracle GoldenGate for Big Dataに対してハートビートを有効にする方法と、レプリケーション環境全体でハートビートを管理および変更する方法について説明します。

4.1 概要

Oracle GoldenGate for BigDataに対してHEARTBEATTABLEを有効にするには、次を実行する必要があります。
  • 任意の値を使用して、GLOBALSGGSCHEMAを指定します(例: GGSCHEMA GGADMIN)。
  • GGSCIからADD HEARTBEATTABLEを実行します。

Oracle GoldenGate for RDBMSでは、HEARTBEATTABLEレコードが次のターゲットHEARTBEATTABLE表に適用されます: GGADMIN.GG_HEARTBEATおよびGGADMIN.GG_HEARBEAT_HISTORY

Oracle GoldenGate for Big DataのHEARTBEATTABLEの2つのモード

モード1の場合、Oracle GoldenGate for Big Dataによって処理されるレコードはHEARTBEATTABLEファイルに書き込まれます。たとえば、次のようになります。

GGADMIN.GG_HEARTBEATがファイルdirtmp/<replicat name>-hb.jsonに格納されています。この場合、レコードはReplicatファイルhb.jsonに書き込まれます。

GGADMIN.GG_HEARTBEAT_HISTORYdirtmp/<replicat-name>-hb-<date>.jsonに格納されています。この場合、履歴レコードはhb-<date>.jsonファイルに書き込まれます。

モード2はパススルーです。KafkaなどのOracle以外のシステムに文を直接送信できるため、最初にBig Dataによって解釈される必要がありません。

ユーザー・データとしてHEARTBEATTABLEを適用するには、次のようにします。
  • Replicatパラメータ・ファイルでDISABLEHEARTBEATTABLEを指定して、HEARTBEATTABLEを無効にします。
  • Replicat MAP文でHEARTBEATTABLE表を指定します。
    MAP GGADMIN.GG_HEARTBEAT, TARGET
    GGADMIN.GG_HEARTBEAT;
    MAP GGADMIN.GG_HEARTBEAT_HISTORY, TARGET
    GGADMIN.GG_HEARTBEAT_HISTORY;

    ユーザー・データとして適用すると、HEARTBEATレコードGG_HEARTBEATおよびGG_HEARTBEAT_HISTORYがユーザー表であるかのようにハンドラに書き込まれます。HEARTBEATレコードはRDBMSなどの表に格納されず、.jsonファイルに格納されます。

4.2 自動ハートビート表

4.2.1 ADD HEARTBEATTABLE

ADD HEARTBEATTABLE
[, RETENTION_TIME number in days] |
[, PURGE_FREQUENCY number in days]
RETENTION_TIME

履歴表で保存時間を過ぎたハートビート・エントリをパージするタイミングを指定します。デフォルトは30日です。

PURGE FREQUENCY

保存時間を過ぎた表エントリを履歴表から削除するパージ・スケジューラの実行頻度を指定します。デフォルトは1日です。

例:
GGSCI > ADD HEARTBEATTABLE
HEARTBEAT is now enabled:
HEARTBEAT configuration file in dirprm\heartbeat.properties
heartbeat.enabled=true
heartbeat.frequency=60
heartbeat.retention_time=30
heartbeat.purge.frequency=1
heartbeat.db.name=BigData

4.2.2 ALTER HEARTBEAT TABLE

ALTER HEARTBEATTABLE

[, RETENTION_TIME number in days] |

[, PURGE_FREQUENCY number in days]
RETENTION_TIME
dirprm/heartbeat.propertiesheartbeat.retention_timeを更新します。次回の再起動時に有効になります。
PURGE_FREQUENCY
保存時間より古いエントリをGG_HEARTBEAT_HISTORYからパージする頻度を指定します。デフォルトは1日です。

4.2.3 INFO HEARTBEATTABLE

HEARTBEAT configuration file dirprm\heartbeat.properties
heartbeat.enabled=true
heartbeat.frequency=60
heartbeat.retention_time=30
heartbeat.purge.frequency=1
heartbeat.db.name=BigData

4.2.4 LAG

LAG <replicat name>

GGSCI> LAG rtpc
Lag Information From Heartbeat Table
LAG                 AGE                 FROM       TO         PATH
5.77s               10m 22.87s          ORCL       BIGDATA    ETPC ==> PTPC ==> RTPC

LAG <replicat名> HISTORY

GGSCI> LAG rtpc HISTORY


Lag Information From Heartbeat Table 
LAG      AGE          FROM       TO      PATH 
5.77s   10m 22.87s    ORCL       ORCL    ETPC ==> PTPC ==> RTPC 
Lag History 
DATE         MIN        AVG        MAX
2018-07-01   5.77s      5.90s      6.20s 
2018-07-02   6.77s      6.90s      7.20s 
2018-07-03   7.77s      7.90s      8.20s 
2018-07-04   8.77s      9.90s      9.20s

4.2.5 DELETE HEARTBEATTABLE

DELETE HEARTBEATTABLE

GGSCI> DELETE HEARTBEATTABLE