ADD HEARTBEATTABLE
Gültig für alle unterstützten Datenbanken. Weitere Informationen zu unterstützten Datenbanken finden Sie in der Zertifizierungsmatrix.
Dieser Befehl erfordert eine Datenbankanmeldung über DBLOGIN.
Mit ADD HEARTBEATTABLE können Sie die erforderlichen Objekte für die Verwendung der automatischen Heartbeat-Funktion erstellen. Dieser Befehl führt folgende Aufgaben aus:
-
Erstellt eine Heartbeat-Seed-Tabelle, Heartbeat-Tabelle und Heartbeat-Historientabelle.
-
Erstellt die Views
GG_LAGundGG_LAG_HISTORY. -
Erstellt die Prozeduren
GG_UPDATE_HB_TABundGG_PURGE_HB_TAB, die von den Scheduler-Jobs aufgerufen werden. -
Erstellt die Scheduler-Jobs, die die Heartbeat- und Seed-Tabelle regelmäßig aktualisieren und die Historientabelle löschen. Erstellt diese Jobs aber nicht für Azure SQL Database, PostgreSQL, Teradata und TimesTen.
-
Füllt die Seed-Tabelle auf.
-
Für mehrmandantenfähige Oracle-Datenbanken:
-
Die Heartbeat-Objekte und -Jobs werden im Benutzerschema erstellt, das über den Befehl
DBLOGINmit der Datenbank verbunden ist. Oracle GoldenGate Extract und Replicat suchen nach den Heartbeat-Objekten im SchemaUSERIDoderUSERIDALIAS. Wenn Sie die Verbindung mitDBLOGINherstellen, stellen Sie sicher, dass das entsprechendeUSERID- oderUSERIDALIAS-Schema, das von den Extract- und Replicat-Prozessen verwendet wird, festgelegt ist. -
Extract: Verwenden Sie den Schemanamen in jeder PDB. Jede PDB, bei der der Extract registriert ist, muss eine eigene Heartbeat-Tabelle aufweisen.
-
Replicat: Jedes Replicat muss seine eigene Heartbeat-Tabelle für seine PDB aufweisen.
-
Für bidirektionale Active/Active-Replikation muss sich die Heartbeat-Tabelle in demselben Schema für die ausgehenden Extracts und eingehenden Replicats bei jeder Site befinden. Beispiele für möglichen Anwendungsfall:
Site A Site B
EAB————> ` RAB`RBA—————> ` EBA`In diesem Beispiel müssen die Heartbeatt-Tabellen
EABundRBAdasselbe Schema verwenden.EABundRABkönnen jedoch unterschiedliche Schemas verwenden.
-
-
Die Verwaltung der Heartbeat-Tabelle von Oracle GoldenGate für Oracle wurde vereinfacht. Jetzt ist der Parameter
GGSCHEMA(oder der ParameterHEARTBEATTABLE) nur in kleinen Fällen erforderlich. Vorgänge zur Heartbeat-Tabellenadministration werden nur im Schema desDBLOGIN-Benutzers ausgeführt. Außer bei Oracle-CDB-Root-Extract suchen die Extract- und Replicat-Prozesse im Schema des mit ER verbundenen Benutzers nach Heartbeat-Tabellen. Die folgende Tabelle zeigt das Extract- und Replicat-Verhalten für Oracle AI Database:Extract-/Replicat-Prozesse Verhalten Nicht-Root-Extract (Nicht-CDB und PDB) Wenn es sich um den ersten Extract-Benutzer handelt, wird
GGSCHEMAverwendet. Bei Autonomous AI Database muss der Benutzerggadminlauten.Wenn ein Heartbeat nach dem Extract-Start erstellt wird, wird die Suche nur im Extract-Benutzerschema durchgeführt.
CDB-Root-Extract GGSCHEMAwird verwendet.Replicat Wenn es sich um den ersten Replicat-Benutzer handelt, wird
GGSCHEMAverwendet. Für ADB muss der Benutzerggadminlauten.Wenn ein Heartbeat nach dem Replicat-Start erstellt wird, wird die Suche nur im Replicat-Benutzerschema durchgeführt.
DELETE EXTRACT/REPLICATWenn es sich um den ersten Extract- oder Replicat-Benutzer handelt, wird GGSCHEMAverwendet. Für ADB muss der Benutzerggadminlauten.Dieses Feature ermöglicht die Verwendung von Heartbeat-Tabellen in Oracle GoldenGate-Hub-Deployments, bei denen mehrere Datenbanken mit unterschiedlichen Oracle GoldenGate-Administratorschemas verwaltet werden.
Hinweis: Die Heartbeat-Tabellenobjekte dürfen niemals in der Root-CDB einer Oracle Multitenant-Datenbank erstellt werden.
- Bei heterogenen oder Nicht-Oracle-Datenbanken werden die Taktbeat-Objekte und Jobs im Wert von
GGSCHEMAaus der GLOBALS-Datei erstellt.
Die Standardnamen für Seed-, Heartbeat- und Historientabelle lauten GG_HEARTBEAT_SEED, GG_HEARTBEAT bzw. GG_HEARTBEAT_HISTORY.
In Microservices-Architektur wird das Schema mit Replikationseinstellungen konfiguriert.
-
Die Standardnamen können durch Angabe von
HEARTBEATTABLEhbschemaname.hbtablenamein der DateiGLOBALSaußer Kraft gesetzt werden. -
Die Tabellen, Prozeduren und Jobs werden im Schema
hbschemanameerstellt. -
Die Seed- und Historientabelle werden durch Anhängen von
_SEEDund_HISTORYan die Tabellehbtablenameerstellt.
Bei Db2 LUW müssen Sie die Eigenschaft DB2_ATS_ENABLE mit dem Befehl db2set DB2_ATS_ENABLE=yes festlegen.
Für Db2 for i können Sie den Befehl ADD HEARTBEATTABLE erneut ausführen, um das Upgrade oder die falsche Konfiguration der Heartbeat-Tabellenfunktionalitäten zu verarbeiten. Dadurch wird die Funktionalität eines vorhandenen Heartbeat -Tabellensetups repariert, ohne die vorhandenen Heartbeatdaten zu löschen.
Für Db2 for i muss das lizensierte Programm 5770SS1 Option 39 International Components for Unicode installiert sein.
Für Db2 for i muss die Heartbeat-Tabelle in demselben Journal wie die Objekte erstellt werden, die im Extract mit der angegebenen Heartbeat-Tabelle repliziert werden. Andernfalls beendet Extract den Vorgang mit der Anzeige, dass mehrere Journale verfügbar sind. Darüber hinaus kann die Heartbeat-Tabelle für keinen anderen Extract in der spezifischen Oracle GoldenGate-Installation aktiviert werden, der nicht dasselbe Journal liest.
Bei Amazon Aurora MySQL muss die globale Variable event_scheduler in der Parametergruppen aktiviert werden, da Amazon RDS nicht das Festlegen globaler Variablen zulässt. Bei einem Neustart der Datenbank wird event_scheduler wieder deaktiviert. Um das zu vermeiden, müssen Sie event_scheduler in der Datei my.cnf/ini aktivieren.
Für PostgreSQL muss ein Systemjob manuell erstellt werden, um regelmäßig die Heartbeat-Datensatzaktualisierung und die Löschfunktion des Historiendatensatzes gg_hb_job_run aufzurufen. Beispiel: Sie könnten einen Cron-Job erstellen, der jede Minute ausgeführt wird. Die Funktion prüft die tatsächlichen Einstellungen der Heartbeat-Konfiguration für die Aktualisierungs- und Löschhäufigkeit von Heartbeat-Datensätzen und verarbeitet nur Vorgänge innerhalb dieser Grenzwerte:
PGPASSWORD="$passwd" psql -U gguser -d dbname -h dbhostname -p dbport# -c "select <ggschema.gg_hb_job_run();" >/dev/null 2>&1
Für Azure SQL Database wird nur ADD HEARTBEATTABLE TARGETONLY unterstützt. Da kein SQL Server Agent mit Azure SQL Database vorhanden ist, kann die Löschroutine nicht erstellt werden. Benutzer müssen also regelmäßig die gespeicherte Prozedur GG_PURGE_HB_TAB ausführen, um alte Heartbeatdatensätze zu entfernen.
Syntax
ADD HEARTBEATTABLE
[, FREQUENCY number_in_seconds]
[, RETENTION_TIME number_in_days] |
[, PURGE_FREQUENCY number_in_days]
[, PARTITIONED]
[, TARGETONLY]
FREQUENCY number_in_seconds
Gibt an, wie häufig die Heartbeat-Datensätze generiert werden. Der Standardwert ist 60 Sekunden.
Beachten Sie die folgenden Grenzwerte:
-
Für Oracle AI Database ist der Mindestwert 0 und der Höchstwert 7999.
-
Für Db2 for i Series ist der Mindestwert 0 und der Höchstwert 7999.
-
Für Db2 LUW und Db2 z/OS ist der Mindestwert 60 und der Höchstwert 7999.
-
Die Häufigkeit für Db2 /zOS und Db2 LUW muss bei Werten unter 3600 ein Vielfaches von 60 und bei Werten größer oder gleich 3600 ein Vielfaches von 3600 sein.
-
Für MySQL ist der Mindestwert 0 und der Höchstwert 7999.
-
Für SQL Server ist der Mindestwert 0 und der Höchstwert 7999.
-
Für PostgreSQL ist der Mindestwert 60 und der Höchstwert 7999.
-
Bei Sybase beträgt der Mindestwert 1 Minute (60 Sekunden) und der Höchstwert 133 Minuten (7999 Sekunden).
-
Datenbanken, bei denen
FREQUENCYauf 0 gesetzt wird, unterbrechen den Heartbeat-Datensatz-Scheduler.
RETENTION_TIME number_in_days
Gibt an, dass Heartbeat-Einträge in der Heartbeat-Historientabelle, die älter als die Aufbewahrungszeit sind, gelöscht werden. Der Standardwert ist 30 Tage.
Der Mindestwert für alle Datenbanken ist 1 und der Höchstwert 2147483646.
PURGE_FREQUENCY number_in_days
Gibt an, wie häufig der Lösch-Scheduler ausgeführt wird, um Tabelleneinträge, die älter als die Aufbewahrungszeit sind, aus der Heartbeat-Historientabelle zu löschen. Die Standardzeit beträgt 1 Tag.
Für Db2 LUW und Db2 z/OS ist der Mindestwert 1 und der Höchstwert 31.
Für alle anderen unterstützten Datenbanken ist der Mindestwert 1 und der Höchstwert 199.
PARTITIONED
Gültig für Oracle.
Aktiviert die Partitionierung für die Heartbeat-Historientabelle. Die Spalte für den empfangenen Heartbeat-Zeitstempel wird zum Partitionieren der Tabelle mit einem Intervall von einem Tag verwendet. Standardmäßig wird die Heartbeat-Historientabelle nicht partitioniert.
TARGETONLY
Gültig für Oracle AI Database, Serie Db2 i, Serie Db2 LUW, Db2 z/OS, MySQL, PostgreSQL und SQL Server.
Aktiviert kein zusätzliches Logging für die Heartbeat-Seed- und die Heartbeat-Tabelle und erstellt keinen Scheduler-Job zum Aktualisieren der Heartbeat-Tabelle.
Beispiele
Mit dem folgenden Befehl werden Standard-Heartbeat-Tabellen, -prozeduren und -jobs erstellt.
ADD HEARTBEATTABLE
Mit dem folgenden Befehl werden die Heartbeat-Tabellen, Prozeduren und Jobs mit benutzerdefinierten Angaben für Häufigkeit, Aufbewahrungszeit und Löschhäufigkeit erstellt.
ADD HEARTBEATTABLE, FREQUENCY 120, RETENTION_TIME 10, PURGE_FREQUENCY 2
Mit dem folgenden Befehl werden die Heartbeat-Tabellen, Prozeduren und Jobs mit aktivierter Partitionierung in der Heartbeat-Historientabelle erstellt. Dabei wird das zusätzliche Logging in der Heartbeat- und der Heartbeat-Seed-Tabelle nicht aktiviert.
ADD HEARTBEATTABLE, partitioned, TARGETONLY