ADD HEARTBEATTABLE
Valido per tutti i database supportati. Per informazioni dettagliate sui database supportati, vedere la Matrice di certificazione.
Questo comando richiede il login a un database mediante DBLOGIN.
Utilizzare ADD HEARTBEATTABLE per creare gli oggetti necessari per l'uso della funzione di heartbeat automatico. Questo comando esegue i task riportati di seguito.
-
Crea una tabella iniziale di heartbeat, una tabella di heartbeat e una tabella della cronologia di heartbeat.
-
Crea le viste
GG_LAGeGG_LAG_HISTORY. -
Crea le procedure
GG_UPDATE_HB_TABeGG_PURGE_HB_TABrichiamate dai job dello scheduler. -
Crea i job dello scheduler che aggiornano periodicamente la tabella di heartbeat e la tabella iniziale e rimuovono la tabella della cronologia. Tuttavia, non crea questi job per il database SQL di Azure, PostgreSQL, Teradata e TimesTen.
-
Popola la tabella iniziale.
-
Per i database multi-tenant Oracle:
-
Gli oggetti di heartbeat e i job vengono creati nello schema dell'utente connesso al database mediante il comando
DBLOGIN. Oracle GoldenGate Extract e Replicat cercano gli oggetti di heartbeat nello schemaUSERIDoUSERIDALIAS. Quando si imposta la connessione tramite il comandoDBLOGIN, accertarsi che sia impostato lo schemaUSERIDoUSERIDALIASappropriato che verrà utilizzato dai processi Extract e Replicat. -
Extract: utilizzare il nome dello schema in ciascun database PDB. Ciascun database PDB con cui è registrato il processo Extract deve includere una tabella di heartbeat specifica.
-
Replicat: ciascun processo Replicat deve essere associato a una tabella di heartbeat specifica per il proprio database PDB.
-
Per la replica attiva/attiva bidirezionale, la tabella di heartbeat deve trovarsi nello stesso schema per i processi Extract in uscita e Replicat in entrata in ciascun sito. Si consideri, ad esempio, il seguente caso d'uso.
Sito A Sito B
EAB—————> ` RAB`RBA—————> ` EBA`In questo esempio le tabelle heartbeat
EABeRBAdevono utilizzare lo stesso schema. Tuttavia,EABeRABpossono utilizzare schemi diversi.
-
-
Oracle GoldenGate per l'amministrazione delle tabella di heartbeat Oracle è stato semplificato e non sono più necessari utilizzare
GGSCHEMA(o il parametroHEARTBEATTABLE) tranne in poche circostanze. Le operazioni d'amministrazione delle tabelle Heartbeat vengono eseguite solo nello schema dell'utenteDBLOGIN. Ad eccezione del processo Extract radice di Oracle CDB, i processi Extract e Replicat cercano le tabelle di heartbeat nello schema dell'utente connesso ai processi ER. Nella tabella seguente viene illustrato il funzionamento dei processi Extract e Replicat per Oracle AI Database:Processi Extract/Replicat Funzionamento Extract non radice (non CDB e PDB) Se si tratta del primo utente di Extract, viene utilizzato
GGSCHEMAoppure, nel caso di Autonomous AI Database, l'utente deve essereggadmin.Se la tabella di heartbeat viene creata dopo l'avvio del processo Extract, la ricerca viene effettuata solo nell'utente di Extract.
Extrat radice CDB Viene utilizzato GGSCHEMA.Replicat Se si tratta del primo utente di Replicat, viene utilizzato il parametro
GGSCHEMA. Per ADB, l'utente deve essereggadmin.Se la tabella di heartbeat viene creata dopo l'avvio del processo Replicat, la ricerca viene effettuata solo nell'utente di Replicat.
DELETE EXTRACT/REPLICATSe si tratta del primo utente Extract o Replicat, viene utilizzato il parametro GGSCHEMA. Per ADB, l'utente deve essereggadmin.Questa funzione consente di utilizzare le tabelle di heartbeat nelle distribuzioni dell'hub Oracle GoldenGate, in cui più database sono gestiti con schemi diversi per l'amministratore di Oracle GoldenGate.
Nota: gli oggetti tabella heartbeat non devono mai essere creati nel CDB radice di un database Oracle Multitenant.
- Per database eterogenei o non Oracle, gli oggetti di heartbeat e i job vengono creati nel valore
GGSCHEMAriportato nel file GLOBALS.
I nomi predefiniti delle tabelle iniziale, heartbeat e cronologia sono rispettivamente GG_HEARTBEAT_SEED, GG_HEARTBEAT e GG_HEARTBEAT_HISTORY.
Nell'architettura dei microservizi lo schema viene configurato utilizzando Impostazioni di replica.
-
i nomi predefiniti possono essere sostituiti specificando
HEARTBEATTABLEhbschemaname.hbtablenamenel fileGLOBALS; -
Le tabelle, le procedure e i job vengono creati nello schema
hbschemaname. -
la tabella iniziale e quella della cronologia vengono create mediante l'aggiunta di
_SEEDe_HISTORYalla tabella,hbtablename.
Per LUW Db2 è necessario impostare la proprietà DB2_ATS_ENABLE con il comando db2set DB2_ATS_ENABLE=yes.
Per i Db2 per i, ai fini dell'aggiornamento o della configurazione errata delle funzionalità delle tabelle di heartbeat, è possibile eseguire nuovamente il comando ADD HEARTBEATTABLE, che ripara la funzionalità di una configurazione heartbeat già esistente senza eliminare i dati heartbeat esistenti.
Per Db2 per i, è necessario installare il programma con licenza 5770SS1 Option 39 International Components for Unicode.
Per Db2 per i, la tabella di heartbeat deve essere inserita nello stesso diario degli oggetti replicati nel processo Extract utilizzando la suddetta tabella di heartbeat. In caso contrario, il processo Extract si interromperà per indicare che sono disponibili più diari. Inoltre, qualsiasi altro processo Extract presente nell'installazione specifica di Oracle GoldenGate che non legge lo stesso diario non può avere la tabella di heartbeat abilitata per tale diario.
Per Amazon Aurora MySQL è necessario abilitare la variabile globale event_scheduler nel gruppo di parametro perché Amazon RDS non consente l'impostazione di variabili globali. Al riavvio del database viene visualizzato un messaggio che significa che event_scheduler viene disabilitato. Per evitare il problema, è necessario abilitare event_scheduler nel file my.cnf/ini.
Per PostgreSQL, è necessario Che sia stato creato manualmente un processo di sistema per richiamare periodicamente la funzione gg_hb_job_run di aggiornamento e rimozione del record dell'heartbeat. Ad esempio, potrebbe essere stato creato un job cron che viene eseguito ogni minuto. La funzione controllerà le impostazioni effettive della frequenza di aggiornamento e di rimozione dei record di heartbeat della configurazione heartbeat ed elaborerà solo le operazioni che rientrano nei seguenti limiti:
PGPASSWORD="$passwd" psql -U gguser -d dbname -h dbhostname -p dbport# -c "select <ggschema.gg_hb_job_run();" >/dev/null 2>&1
Per un database SQL di Azure, è supportato solo ADD HEARTBEATTABLE TARGETONLY e non è possibile creare l'agente SQL Server con il database SQL di Azure poiché non esiste alcun agente SQL Server con il database SQL di Azure. Pertanto, gli utenti devono eseguire periodicamente la stored procedure GG_PURGE_HB_TAB per rimuovere le vecchie registrazioni di heartbeat.
Sintassi
ADD HEARTBEATTABLE
[, FREQUENCY number_in_seconds]
[, RETENTION_TIME number_in_days] |
[, PURGE_FREQUENCY number_in_days]
[, PARTITIONED]
[, TARGETONLY]
FREQUENCY number_in_seconds
Specifica la frequenza con la quale vengono generati i record di heartbeat. L'impostazione predefinita è 60 secondi.
Considerare i limiti elencati di seguito.
-
Per Oracle AI Database , il valore minimo è 0 e il massimo è 7999.
-
Per la serie Db2 per i, il valore minimo è 0 è il massimo è 7999.
-
Per Db2 LUW e Db2 z/OS, il valore minimo è 60 e il massimo è 7999.
-
La frequenza per Db2 /zOS e Db2 LUW deve essere un multiplo di 60 per i valori minori di 3600 e un multiplo di 3600 per i valori maggiori o uguali a 3600.
-
Per MySQL, il valore minimo è 0 e il massimo è 7999.
-
Per SQL Server, il valore minimo è 10 e il massimo è 7999.
-
Per PostgreSQL, il valore minimo è 60 e il massimo è 7999.
-
Per Sybase, il valore minimo è 1 minuto (60 secondi) e il massimo è 133 minuti (7999 secondi).
-
I database che supportano l'impostazione di
FREQUENCYsu 0 sospenderanno lo scheduler del log di heartbeat.
RETENTION_TIME number_in_days
Specifica la rimozione delle voci di heartbeat presenti nella tabella della cronologia di heartbeat per un periodo di tempo superiore al tempo di conservazione impostato. Il valore predefinito è 30 giorni.
Il valore minimo per tutti i database è 1 e il massimo è 2147483646.
PURGE_FREQUENCY number_in_days
Specifica la frequenza con cui viene eseguito lo scheduler di rimozione per eliminare le voci di tabella precedenti al tempo di conservazione dalla tabella di cronologia di heartbeat. Il valore predefinito è 1 giorno.
Per Db2 LUW e Db2 z/OS, il valore minimo è 1 e il massimo è 31.
Per tutti gli altri database supportati, il valore minimo è 1 e il massimo è 199.
PARTITIONED
Valido per Oracle.
Abilita il partizionamento nella tabella della cronologia di heartbeat. La colonna per l'indicatore orario di heartbeat ricevuto viene utilizzata per partizionare la tabella con un intervallo di un giorno. Per impostazione predefinita la tabella della cronologia di heartbeat non è partizionata.
TARGETONLY
Valido per Oracle AI Database, Db2 serie i, Db2 LUW, Db2 z/OS, MySQL, PostgreSQL e SQL Server.
Non abilita il log supplementare nella tabella iniziale di heartbeat né nelle tabelle di heartbeat e non crea un job dello scheduler per l'aggiornamento della tabella di heartbeat.
Esempi
Il comando seguente crea le tabelle di heartbeat, le procedure e i job predefiniti.
ADD HEARTBEATTABLE
Il comando seguente crea le tabelle di heartbeat, le procedure e i job con frequenza, tempo di conservazione e frequenza di rimozione personalizzati.
ADD HEARTBEATTABLE, FREQUENCY 120, RETENTION_TIME 10, PURGE_FREQUENCY 2
Il comando seguente crea le tabelle di heartbeat, le procedure e i job con il partizionamento abilitato nella tabella della cronologia di heartbeat e il log supplementare non è abilitato nella tabella di heartbeat e nella tabella iniziale di heartbeat.
ADD HEARTBEATTABLE, partitioned, TARGETONLY