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
プロシージャの作成。 -
ハートビートとシード表の更新および履歴表のパージを定期的に実行するスケジューラ・ジョブの作成。ただし、PostgreSQL、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で同じスキーマ内にある必要があります。たとえば、次のユースケースを参照してください。
サイトA サイトB
EAB
–------------->RAB
RBA
–------------->EBA
この例では、
EAB
およびRBA
ハートビート表が同じスキーマを使用する必要があります。ただし、EAB
およびRAB
では異なるスキーマを使用できます。
-
-
Oracle GoldenGate for Oracleハートビート表の管理は、限定された状況を除き、
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
値で作成されます。
シード表、ハートビート表および履歴表のデフォルト名は、それぞれGG_HEARTBEAT_SEED
、GG_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
プロパティを設定する必要があります。
Db2 for iの場合、ハートビート表機能のアップグレードまたは構成の誤りを処理するために、ADD HEARTBEATTABLE
コマンドを再度実行できます。これにより、既存のハートビート・データを削除せずに、ハートビート表設定の機能が修復されます。
Amazon RDSではグローバル変数の設定が許可されていないため、Amazon Aurora MySQLの場合はグローバル変数event_scheduler
をパラメータ・グループで有効にする必要があります。データベースが再起動されると、event_scheduler
は無効に戻ります。これを回避するには、my.cnf/ini
ファイルでevent_scheduler
を有効にする必要があります。
gg_hb_job_run
を定期的にコールするシステム・ジョブを手動で作成する必要があります。たとえば、1分ごとに実行されるcronジョブを作成できます。この機能は、ハートビート構成の実際のハートビート・レコード更新およびパージ頻度設定をチェックし、これらの境界内の操作のみを処理します。PGPASSWORD="$passwd" psql -U gguser -d dbname -h dbhostname -p dbport# -c "select <ggschema.gg_hb_job_run();" >/dev/null 2>&1
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、最大値は7999です。
-
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です。
-
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