2.5 ADD HEARTBEATTABLE

Oracle、DB2 z/OS、DB2 LUW、DB2 for iシリーズ、MySQL、PostgreSQL、SQL Server、TeradataおよびTimesTenに有効です。

このコマンドにはDBLOGINを使用したデータベース・ログインが必要です。

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

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

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

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

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

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

  • Oracleマルチテナント・データベースの場合:

    • ハートビート・オブジェクトとジョブは、DBLOGINコマンドを使用してデータベースに接続されているユーザーのスキーマに作成されます。Oracle GoldenGate ExtractおよびReplicatは、USERIDまたはUSERIDALIASスキーマでハートビート・オブジェクトを検索します。DBLOGINを使用して接続する場合は、ExtractおよびReplicatプロセスが使用する適切なUSERIDまたはUSERIDALIASスキーマであることを確認します。

    • Extract: 各PDBでスキーマ名を使用します。Extractが登録されている各PDBには、独自のハートビート表が必要です。ハートビート表を検索するスキーマをExtractに指示するには、GLOBALSファイル内でGGSCHEMA pdb.schemanameを使用します。

    • Replicat: 各Replicatには、そのPDB用の独自のハートビート表が必要です。

    • 双方向のアクティブ/アクティブ・レプリケーションの場合、ハートビート表はExtractとReplicatの両方で同じスキーマ内にある必要があります。

  • Oracle GoldenGateハートビート表の管理は、限定された状況を除き、GGSCHEMA (またはHEARTBEATTABLEパラメータ)が必要なくなることで簡略化されました。ハートビート表の管理操作は、DBLOGINユーザーのスキーマでのみ実行されます。Oracle CDBルートExtractの場合を除き、ExtractおよびReplicatプロセスは、ER接続ユーザーのスキーマでハートビート表を検索します。次の表に、OracleデータベースでのExtractおよびReplicatの動作を示します。

    Extract/Replicatプロセス 動作

    非ルートExtract (非CDB、およびPDB)

    最初のExtractユーザーの場合はGGSCHEMAが使用され、Autonomous Database (ADB)の場合はユーザーがGGADMINである必要があります。

    Extractの起動後にハートビートが作成された場合は、Extractユーザーでのみ検索します。

    CDBルートExtract

    GGSCHEMAが使用されます。

    Replicat

    最初のReplicatユーザーの場合、GGSCHEMAが使用されます。ADBの場合、ユーザーはGGADMINである必要があります。

    Replicatの起動後にハートビートが作成された場合は、Replicatユーザーでのみ検索します。

    DELETE EXTRACT/REPLICAT

    最初のExtractまたはReplicatユーザーの場合は、GGSCHEMAが使用されます。ADBの場合、ユーザーはGGADMINである必要があります。

    この機能を使用すると、異なるOracle GoldenGate管理者スキーマで複数のデータベースを管理するOracle GoldenGate Hubデプロイメントでハートビート表を使用できます。

    ノート:

    ハートビート表オブジェクトはOracle Multitenant DatabaseのルートCDBに作成しないでください。
  • 異種またはOracle以外のデータベースの場合、ハートビート・オブジェクトおよびジョブはGLOBALSファイルにリストされているGGSCHEMA値で作成されます。

  • TARGETONLYを指定すると、ジョブ表もジョブ・プロシージャも作成されません。NOTARGETONLYはサポートされていません。

シード表、ハートビート表および履歴表のデフォルト名は、それぞれGG_HEARTBEAT_SEEDGG_HEARTBEATおよびGG_HEARTBEAT_HISTORYです。

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

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

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

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

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秒です。

次の制限を考慮します。

  • Oracle Databaseの場合、最小値は0、最大値は7999です。

  • DB2 for iシリーズの場合、最小値は0、最大値は7999です。

  • DB2 LUWおよびDB2 z/OSの場合、最小値は60、最大値は7999です。

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

  • MySQLの場合、最小値は0、最大値は7999です。

  • SQL Serverの場合、最小値は10、最大値は3600です。

  • PostgreSQLの場合、最小値は60、最大値は7999です。

  • FREQUENCYを0に設定できるデータベースでは、ハートビート・レコード・スケジューラが一時停止されます。

RETENTION_TIME number_in_days

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

すべてのデータベースで、最小値は1、最大値は2147483646です。

PURGE_FREQUENCY number_in_days

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

DB2 LUWおよびDB2 z/OSの場合、最小値は1、最大値は31です。

サポートされている他のすべてのデータベースでは、最小値は1、最大値は199です。

ノート:

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

Oracleに有効です。

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

TARGETONLY
Oracle Database、DB2 iシリーズ、DB2 LUW、DB2 z/OS、MySQL、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