2.6 ADD HEARTBEATTABLE

ADD HEARTBEATTABLEでは、自動ハートビート機能を使用する場合に必要なオブジェクトを作成します。このコマンドは、次のタスクを実行します。

  • ハートビート・シード表、ハートビート表およびハートビート履歴表の作成。

  • GG_LAGビューおよびGG_LAG_HISTORYビューの作成。

  • スケジューラ・ジョブによってコールされるGG_UPDATE_HB_TABおよび GG_PURGE_HB_TABプロシージャの作成。

  • ハートビートとシード表の更新および履歴表のパージを定期的に実行するスケジューラ・ジョブの作成。ただし、TeradataおよびTimesTenの場合、これらのジョブは作成されません。

  • シード表を移入します。

  • (PostgreSQL)ラグ情報を取得するために、ジョブ表、ジョブ・プロシージャをハートビート表またはビューとともに作成します。TARGETONLYを指定すると、ジョブ表もジョブ・プロシージャも作成されません。NOTARGETONLYはサポートされていません。

ノート:

Teradataの場合、NOTARGETONLYオプションはサポートされていません。TeradataおよびPostgreSQLでは、オプションFREQUENCYPURGE_FREQUENCYおよびRETENTION_TIMEはサポートされていません。

シード表、ハートビート表および履歴表のデフォルト名は、それぞれGG_HEARTBEAT_SEEDGG_HEARTBEATおよびGG_HEARTBEAT_HISTORYです。表、プロシージャおよびスケジューラ・ジョブは、GLOBALSファイルに記述されているGGSCHEMAで作成されます。

Classic Architectureの場合:
  • デフォルト名をオーバーライドするには、GLOBALSファイルでHEARTBEATTABLE hbschemaname.hbtablenameを指定します。

  • 表、プロシージャおよびジョブは、スキーマhbschemanameで作成されます。

  • シードと履歴表を作成するには、表hbtablename_SEEDおよび_HISTORYを追加します。

Microservices Architectureでは、スキーマは、Oracle GoldenGate Microservicesを使用してのステップ・バイ・ステップ・データ・レプリケーション・ガイドのデプロイメントの作成方法に関する項に記載されているステップ12を使用して構成されます。

Oracleの場合、CDBモードでハートビートを生成する各PDBでADD HEARTBEATTABLEを実行する必要があります。データベースでは、各PDB内にハートビート表が作成されます。ハートビート表の作成が必要なPDBには、DBLOGINコマンドを使用してログインします。

DB2 LUWの場合、db2set DB2_ATS_ENABLE=yesコマンドでDB2_ATS_ENABLEプロパティを設定する必要があります。

Amazon RDSではグローバル変数の設定が許可されていないため、Amazon Aurora MySQLの場合はグローバル変数event_schedulerをパラメータ・グループで有効にする必要があります。データベースが再起動されると、event_schedulerは無効に戻ります。これを回避するには、my.cnf/iniファイルでevent_schedulerを有効にする必要があります。

Admin Client構文

ADD HEARTBEATTABLE
[, FREQUENCY number_in_seconds]
[, RETENTION_TIME number_in_days] |
[, PURGE_FREQUENCY number_in_days]
[, PARTITIONED]
[, TARGETONLY]

GGSCI構文

ADD HEARTBEATTABLE
[, FREQUENCY number_in_seconds]
[, RETENTION_TIME number_in_days] |
[, PURGE_FREQUENCY number_in_days]
[, PARTITIONED]
[, TARGETONLY]
FREQUENCY number_in_seconds

ハートビート・シード表とハートビート表の更新頻度を指定します。たとえば、ハートビート・レコードが生成される頻度です。デフォルトは60秒です。

DB/400、DB2 z/OSおよびDB2 LUWを使用する場合は、次の制限を考慮してください。

  • number_in_secondsは、0から7999の間になる必要があります。ハートビートを一時停止するための特殊な値、ゼロが有効になります。

  • DB2 /zOSおよびDB2 LUWの頻度は、値が3600未満の場合は60の倍数、3600以上の場合は3600の倍数にする必要があります。

  • 最小頻度は、DB2400の場合は1、DB2 /zOSおよびDB2 LUWの場合は60です。

MySQLの場合、最大頻度の値は7999です。最小値は0、デフォルト値は60秒です。

SQL Serverの場合、最大頻度の値は3600です。最小値は0秒、デフォルト値は60秒です。

PostgreSQLの場合、最大頻度の値は7999です。最小値は60秒、デフォルト値は60秒です。ハートビート頻度を移入するcronジョブを作成する必要があります。cronジョブを60秒以内に実行する例を次に示します。
PGPASSWORD="$passwd" psql -U postgres -d postgres -h localhost -p 5433 -c "select public.gg_hb_job_run();" >/dev/null 2>&1

または、次の例に示すように、データベース名、ユーザー、パスワード、ポートおよびサーバー名を指定して、Oracle GoldenGateインストール・ディレクトリで使用可能なバッチ・スクリプト(ogg_hb_run.sh)を実行できます。

./ ogg_hb_run.sh start user1 pword1 dbname1 serverName1 port1 oggschema

この例では、次の値を使用します。

start: ジョブを開始するコマンド

user1: データベースに接続するユーザーID

pword1: ユーザーのパスワード

dbname1: ジョブが実行されるデータベース名

serverName1: PostgreSQLサーバー名

port1: データベースがリスニングしているポート

oggschema: ハートビート・オブジェクトの作成用にグローバル・ファイルで使用されるスキーマ

RETENTION_TIME number_in_days

履歴表で保存時間を過ぎたハートビート・エントリをパージするタイミングを指定します。デフォルトは30日です。DB2/400、DB2 z/OSおよびDB2 LUWの場合、最大保存時間は31日です。値は1から2147483646の間である必要があります。

MySQL、SQL Server、PostgreSQLの場合、最大保存時間の値は2147483646日です。最小値は1日、デフォルト値は30日です。

PURGE_FREQUENCY number_in_days

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

GGSCIの場合、このパラメータはDB2 LUWおよびDB2 for z/OSのnumber_in_daysを1から31の間隔で指定する必要があります。

MySQL、SQL ServerおよびPostgreSQLの場合、最大パージ頻度の値は199日です。最小値およびデフォルト値は1日です。

PARTITIONED

Oracleに有効です。

ハートビート履歴表のパーティション化を有効にします。受信したハートビートのタイム・スタンプの列を使用して、表を1日間隔でパーティション化します。デフォルトでは、ハートビート履歴表はパーティション化されていません。

TARGETONLY
Oracle Database、PostgreSQLおよびSQL Serverに有効です。サプリメンタル・ロギングはハートビート・シード表とハートビート表の両方で有効にしないでください。ハートビート表を更新するためのスケジューラ・ジョブは作成されません。

次のコマンドでは、デフォルトのハートビート表、プロシージャおよびジョブを作成します。

ADD HEARTBEATTABLE

次のコマンドでは、カスタム頻度、保存時間およびパージ頻度を指定してハートビート表、プロシージャおよびジョブを作成します。

ADD HEARTBEATTABLE, frequency 120, retention_time 10, purge_frequency 2

次のコマンドでは、ハートビート履歴表でパーティション化が有効になっているハートビート表、プロシージャおよびジョブを作成します。ハートビート表およびハートビート・シード表のサプリメンタル・ロギングは有効化されません。

ADD HEARTBEATTABLE, partitioned, TARGETONLY
次の例は、PostgreSQLでのハートビート表の追加を示しています。
GGSCI> ADD HEARTBEATTABLE, FREQUENCY 10, PURGE_FREQUENCY 10, RETENTION_TIME 10