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

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

4.1 概要

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

RDBMS用のOracle GoldenGateでは、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_HISTORYは、dirtmp/<replicat-name>-hb-<date>.jsonに格納されます。ここで、履歴レコードがhb-<date>.jsonファイルに再度書き込まれます。

モード2はパススルーです。最初にBig Dataによって解釈されることなく、KafkaなどのOracle以外のシステムに文を直接を送信できます。

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_HEARTBEATGG_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名>

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