@GETENV
Utilizzare la funzione @GETENV per restituire informazioni sull'ambiente Oracle GoldenGate. È possibile utilizzare le informazioni come input in quanto riportato di seguito.
-
Procedure memorizzate o query (con
SQLEXEC) -
Mappe di colonne (con l'opzione
COLMAPdiTABLEoMAP) -
Token utente (definiti con l'opzione
TOKENSdiTABLEe mappati alle colonne di destinazione mediante la funzione@TOKEN) -
La funzione user exit
GET_ENV_VALUE(vedere "GET_ENV_VALUE")Nota: Tutte le opzioni di sintassi devono essere racchiuse tra virgolette come mostrato nelle descrizioni della sintassi.
-
Recupera il valore del parametro
DB_UNIQUE_NAMEdei database di origine o di destinazione, a seconda dei processi (Extract o Replicat) che eseguono la funzione.
Sintassi
@GETENV (
'LAG' , '<unit>' |
'LASTERR' , '<error_info>' |
'JULIANTIMESTAMP' |
'JULIANTIMESTAMP_PRECISE' |
'RECSOUTPUT' |
{'STATS'|'DELTASTATS'}, ['TABLE', '<table>'], '<statistic>' |
'GGENVIRONMENT', '<environment_info>' |
'GGFILEHEADER', '<header_info>'|
'GGHEADER', '<header_info>' |
'RECORD', '<location_info>' |
'DBENVIRONMENT', '*<database_info>,*',
'TRANSACTION', '<transaction_info>' |
'OSVARIABLE', '<variable>' |
'TLFKEY', SYSKEY, <unique_key>
'USERNAME',
'OSUSERNAME',
'MACHINENAME',
'PROGRAMNAME',
'CLIENTIDENTIFIER',
'SOURCEDATABASEINFO'
)
'LAG' , '<unit>'
Valido per Extract e Replicat.
Utilizzare l'opzione LAG di @GETENV per restituire le informazioni sullo sfasamento. Il ritardo è la differenza, tra l'ora di elaborazione di un record da parte dell'estrazione o del processo Replicat e l'indicatore orario di quel record nell'origine dati.
Sintassi
SEC
‘SEC’
Restituisce il ritardo in secondi. Questa è l'impostazione predefinita quando un'unità non viene fornita esplicitamente per LAG.
‘MSEC’
Restituisce il ritardo in millisecondi.
‘MIN’
Restituisce il ritardo in minuti.
'LASTERR' , '<error_info>'
Valido per Replicat.
Utilizzare l'opzione LASTERR di @GETENV per restituire informazioni sull'ultima operazione non riuscita elaborata da Replicat.
Sintassi
@GETENV ('LASTERR', {'DBERRNUM'|'DBERRMSG'|'OPTYPE'|'ERRTYPE'})
‘DBERRNUM’
Restituisce il numero di errore del database associato all'operazione non riuscita.
‘DBERRMSG’
Restituisce il messaggio di errore del database associato all'operazione non riuscita.
‘OPTYPE’
Restituisce il tipo di operazione tentata.
‘ERRTYPE’
Restituisce il tipo di errore. I risultati possibili sono:
-
DB(per errori di database) -
MAP(per errori nel mapping)
'INDICATORE LUGLIO'|'JULIANTIMESTAMP_PRECISE'
Valido per Extract e Replicat.
Utilizzare l'opzione JULIANTIMESTAMP di @GETENV per restituire l'ora corrente in formato giuliano. L'unità è di microsecondi (un milionesimo di secondo). Su un computer Windows, il valore viene riempito con zeri (0) perché la granularità dell'indicatore orario di Windows è in millisecondi (un millesimo di secondo). Ad esempio, la seguente espressione è un tipico mapping di colonne:
MAP dbo.tab8451, Target targ.tabjts, COLMAP (USEDEFAULTS, &
JTSS = @GETENV ('JULIANTIMESTAMP')
JTSFFFFFF = @date ('yyyy-mm-dd hh:mi:ss.ffffff', 'JTS', &
@getenv ('JULIANTIMESTAMP') ) )
;
I valori possibili per le colonne JTSS e JTSFFFFFF sono:
212096320960773000 2010-12-17:16:42:
40.773000
212096321536540000 2010-12-17:16:52:16.540000
212096322856385000 2010-12-17:17:14:16.385000
212096323062919000 2010-12-17:17:17:42.919000
212096380852787000 2010-12-18:09:20:52.787000
Le ultime tre cifre (i microsecondi) del numero contengono tutte il riempimento di 0s .
Facoltativamente, è possibile utilizzare l'opzione 'JULIANTIMESTAMP_PRECISE' per ottenere un indicatore orario con alta precisione, sebbene ciò possa influire sulle prestazioni. Nota: non utilizzare questi valori per le operazioni di ordinamento. In alternativa, utilizzare questo valore: @COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO")*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))"
Sintassi
@GETENV ('JULIANTIMESTAMP')
@GETENV ('JULIANTIMESTAMP_PRECISE')
'RECUPERA'
Valido per Extract.
Utilizzare l'opzione RECSOUTPUT di @GETENV per recuperare un conteggio corrente del numero di record scritti da Extract nel file trail dall'avvio del processo. Il valore restituito non è univoco per una tabella o transazione, ma per la sessione Extract stessa. Il conteggio viene reimpostato su 1 ogni volta che Extract si arresta e quindi viene riavviato.
Sintassi
@GETENV ('RECSOUTPUT')
{'STATS'|'DELTASTATS'}, ['TABLE', '<table>'], '<statistic>'
Valido per Extract e Replicat.
Utilizzare le opzioni STATS e DELTASTATS di @GETENV per restituire il numero di operazioni elaborate per tabella per uno o tutti i seguenti elementi:
-
operazioni
INSERT -
operazioni
UPDATE -
Operazioni
DELETE -
operazioni
TRUNCATE -
Totale operazioni
DML -
Totale operazioni
DDL -
Numero di conflitti verificatisi, se viene utilizzata la funzione CDR (Conflict Detection and Resolution).
-
Numero di risoluzioni CDR riuscite
-
Numero di risoluzioni CDR non riuscite
Qualsiasi errore nell'elaborazione di questa funzione, ad esempio una voce di tabella non risolta o una sintassi errata, restituisce zero (0) per il valore delle statistiche richiesto.
Informazioni sul modo in cui le specifiche delle tabelle ricorrenti influiscono sui conteggi delle operazioni
Un'estrazione che sta elaborando la stessa tabella di origine in più trail di output restituisce le statistiche in base a ogni trail di output localizzato in cui viene scritta la tabella collegata a @GETENV. Ad esempio, se Extract acquisisce 100 inserimenti per la tabella ABC e scrive la tabella ABC in tre trail, il risultato per @GETENV è 300
EXTRACT ABC
...
EXTTRAIL c:\north\aa;
TABLE TEST.ABC;
EXTTRAIL c:\north\bb;
TABLE TEST.ABC;
TABLE EMI, TOKENS (TOKEN-CNT = @GETENV ('STATS', 'TABLE', 'ABC', 'DML'));
EXTTRAIL c:\north\cc;
TABLE TEST.ABC;
Nel caso di un Extract che scrive una tabella di origine più volte in un singolo trail di output o nel caso di un Replicat con più istruzioni MAP per la stessa tabella TARGET, i risultati delle statistiche si basano su tutte le voci TARGET corrispondenti. Ad esempio, se Replicat filtra 20 righe per REGION 'WEST,' 10 righe per REGION 'EAST,' 5 righe per REGION 'NORTH,' e 2 righe per REGION 'SOUTH' (tutte per la tabella ABC), il risultato di @GETENV è 37.
REPLICAT ABC
...
MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'WEST'));
MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'EAST'));
MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'NORTH'));
MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'SOUTH'));
MAP TEST.EMI, TARGET TEST.EMI, &
COLMAP (CNT = @GETENV ('STATS', 'TABLE', 'ABC', 'DML'));
Cattura di più statistiche
È possibile eseguire più istanze di @GETENV per ottenere i conteggi per tipi di operazione diversi.
Questo esempio restituisce le statistiche solo per le operazioni INSERT e UPDATE:
REPLICAT TEST
..
..
MAP TEST.ABC, TARGET TEST.ABC, COLMAP (USEDEFAULTS, IU = @COMPUTE (@GETENV &
('STATS', 'TABLE', 'ABC', 'DML') - (@GETENV ('STATS', 'TABLE', &
'ABC', 'DELETE'));
Questo esempio restituisce le statistiche per le operazioni DDL e TRUNCATE:
REPLICAT TEST2
..
..
MAP TEST.ABC, TARGET TEST.ABC, COLMAP (USEDEFAULTS, DDL = @COMPUTE &
(@GETENV ('STATS', 'DDL') + (@GETENV ('STATS', 'TRUNCATE'));
Esempio di caso d'uso
Nel caso d'uso seguente, se tutti i file DML dell'origine vengono applicati correttamente alla destinazione, Replicat sospende mediante EVENTACTIONS con SUSPEND, fino a quando non riprende da GGSCI con SEND REPLICAT con RESUME.
GETENV utilizzato nel file dei parametri Extract:
TABLE HR1.HR*;
TABLE HR1.STAT, TOKENS ('env_stats' = @GETENV ('STATS', 'TABLE', &
'HR1.HR*', 'DML'));
GETENV utilizzato nel file dei parametri Replicat:
MAP HR1.HR*, TARGET HR2.*;
MAP HR1.STAT, TARGET HR2.STAT, filter (
@if (
@token ('stats') =
@getenv ('STATS', 'TABLE', 'TSSCAT.TCUSTORD', 'DML'), 1, 0 )
),
eventactions (suspend);
Utilizzo delle statistiche nelle clausole FILTER
Le statistiche restituite da STATS e DELTASTATS sono valori dinamici e vengono incrementate dopo l'esecuzione del mapping. Pertanto, quando si utilizzano le statistiche CDR in una clausola FILTER in ciascuna di più istruzioni MAP, è necessario ordinare le istruzioni MAP in ordine decrescente rispetto ai valori delle statistiche. Se l'ordine non è corretto, Oracle GoldenGate restituisce l'errore OGG-01921. Per informazioni dettagliate su questo requisito, consultare il documento 1556241.1 nella Knowledge base di My Oracle Support all'indirizzo https://support.oracle.com.
Esempio di istruzioni MAP 4-1 contenenti statistiche nelle clausole FILTER
Nell'esempio seguente, le istruzioni MAP contenenti il filtro per la statistica CDR_CONFLICTS vengono ordinate in ordine decrescente per la statistica: >3, =3, quindi <3.
MAP TEST.GG_HEARTBEAT_TABLE, TARGET TEST.GG_HEARTBEAT_TABLE COMPARECOLS (ON UPDATE ALL),RESOLVECONFLICT(UPDATEROWEXISTS,(DEFAULT, OVERWRITE)),FILTER (@GETENV ("STATS", "CDR_CONFLICTS") > 3),EVENTACTIONS (LOG INFO);MAP TEST.GG_HEARTBEAT_TABLE, TARGET TEST.GG_HEARTBEAT_TABLE COMPARECOLS (ON UPDATE ALL),RESOLVECONFLICT(UPDATEROWEXISTS,(DEFAULT, OVERWRITE)),FILTER (@GETENV ("STATS", "CDR_CONFLICTS") = 3),EVENTACTIONS (LOG WARNING);MAP TEST.GG_HEARTBEAT_TABLE, TARGET TEST.GG_HEARTBEAT_TABLE COMPARECOLS (ON UPDATE ALL),RESOLVECONFLICT(UPDATEROWEXISTS,(DEFAULT, OVERWRITE)),FILTER (@GETENV ("STATS", "CDR_CONFLICTS") < 3),EVENTACTIONS (LOG WARNING);
Sintassi
@GETENV ({'STATS' | 'DELTASTATS'}, ['TABLE', '<table>'], '<statistic>')
{‘STATS’ |
‘DELTASTATS’} |
STATS restituisce i conteggi dall'avvio del processo, mentre DELTASTATS restituisce i conteggi dall'ultima esecuzione di un DELTASTATS.
La logica di esecuzione è la seguente:
-
Quando Extract elabora un record di transazione che soddisfa
@GETENVconSTATSoDELTASTATS, il nome della tabella viene confrontato con le tabelle di origine risolte nell'istruzioneTABLE. -
Quando Replicat elabora un record trail che soddisfa
@GETENVconSTATSoDELTASTATS, il nome della tabella viene confrontato con le tabelle di destinazione risolte nella clausolaTARGETdell'istruzioneMAP.
‘TABLE’, ‘<table>’
Esegue il comando STATS o DELTASTATS solo per la tabella o le tabelle specificate. Senza questa opzione, vengono restituiti i conteggi per tutte le tabelle specificate nei parametri TABLE (Extract) o MAP (Replicat) nel file dei parametri.
I valori validi per <table_name> sono:
-
'
<schema.table>' specifica una tabella. -
<'table'>specifica una tabella dello schema predefinito. -
'*schema.' specifica tutte le tabelle di uno schema.
-
'*' specifica tutte le tabelle dello schema predefinito.
Ad esempio, le operazioni DML vengono conteggiate solo per le tabelle nello schema hr:
MAP fin.*, TARGET fin.*;
MAP hr.*, TARGET hr.*;
MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = @GETENV ('STATS', 'TABLE', 'hr.*', 'DML'));
Analogamente, le operazioni DML vengono conteggiate solo per la tabella emp nello schema hr:
MAP fin.*, TARGET fin.*;
MAP hr.*, TARGET hr.*;
MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = @GETENV ('STATS', 'TABLE', 'hr.emp', 'DML'));
Al contrario, poiché non sono state specificate tabelle specifiche per STATS nell'esempio seguente, la funzione conta tutte le operazioni INSERT, UPDATE e DELETE per tutte le tabelle in tutti gli schemi rappresentati nelle clausole TARGET delle istruzioni MAP:
MAP fin.*, TARGET fin.*;
MAP hr.*, TARGET hr.*;
MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = &
@GETENV ('STATS', 'DML'));
<'statistic>’
Tipo di statistica da restituire. See Using Statistics in FILTER Clauses for important information when using statistics in FILTER clauses in multiple TABLE or MAP statements.
‘INSERT’
Restituisce il numero di operazioni INSERT elaborate.
‘UPDATE’
Restituisce il numero di operazioni UPDATE elaborate.
‘DELETE’
Restituisce il numero di operazioni DELETE elaborate.
‘DML’
Restituisce il totale delle operazioni INSERT, UPDATE, e DELETE elaborate.
‘TRUNCATE’
Restituisce il numero di operazioni TRUNCATE elaborate. Questa variabile restituisce un conteggio solo se non viene utilizzata la replica DDL di Oracle GoldenGate. Se si utilizza la replica DDL, questa variabile restituisce uno zero.
‘DDL’
Restituisce il numero di operazioni DDL elaborate, inclusi TRUNCATE e DDL specificati nelle clausole INCLUDE e EXCLUDE del parametro DDL, tutti gli ambiti (MAPPED, UNMAPPED, OTHER). Questa variabile restituisce un conteggio solo se viene utilizzata la replica DDL di Oracle GoldenGate. Questa variabile non è valida per 'DELTASTATS'.
‘CDR_CONFLICTS’
Restituisce il numero di conflitti rilevati da Replicat durante l'esecuzione della funzione CDR (Confllict Detection and Resolution).
Esempio per un <table> specifico:
@GETENV ('STATS','TABLE','HR.EMP','CDR_CONFLICTS')
Esempio per tutte le tabelle elaborate da Replicat:
@GETENV ('STATS','CDR_CONFLICTS')
‘CDR_RESOLUTIONS_SUCCEEDED’
Restituisce il numero di conflitti risolti da Replicat durante l'esecuzione della funzione CDR (Confllict Detection and Resolution).
Esempio per un <table> specifico:
@GETENV ('STATS','TABLE','HR.EMP', 'CDR_RESOLUTIONS_SUCCEEDED')
Esempio per tutte le tabelle elaborate da Replicat:
@GETENV ('STATS','CDR_RESOLUTIONS_SUCCEEDED')
‘CDR_RESOLUTIONS_FAILED’
Restituisce il numero di conflitti che Replicat non è riuscito a risolvere durante l'esecuzione della funzione CDR (Confllict Detection and Resolution).
Esempio per un <table> specifico:
@GETENV ('STATS','TABLE','HR.EMP', 'CDR_RESOLUTIONS_FAILED')
Esempio per tutte le tabelle elaborate da Replicat:
@GETENV ('STATS','CDR_RESOLUTIONS_FAILED')
'GGENVIRONMENT' , '<environment_info>'
Valido per Extract e Replicat.
Utilizzare l'opzione GGENVIRONMENT di @GETENV per restituire informazioni sull'ambiente Oracle GoldenGate.
Sintassi
@GETENV ('GGENVIRONMENT', {'DOMAINNAME'|'GROUPDESCRIPTION'|'GROUPNAME'|
'GROUPTYPE'|'HOSTNAME'|'OSUSERNAME'|'PROCESSID')
‘DOMAINNAME’
(Solo Windows) Restituisce il nome di dominio associato all'utente che ha avviato il processo.
‘GROUPDESCRIPTION’
Restituisce la descrizione del gruppo, ricavata dal file di checkpoint. Richiede che venga fornita una descrizione con il parametro DESCRIPTION quando il gruppo è stato creato con il comando ADD.
‘GROUPNAME’
Restituisce il nome del gruppo di processi.
‘GROUPTYPE’
Restituisce il tipo di processo, EXTRACT o REPLICAT.
‘HOSTNAME’
Restituisce il nome del sistema che esegue il processo Extract o Replicat.
‘OSUSERNAME’
Restituisce il nome utente del sistema operativo che ha avviato il processo.
‘PROCESSID’
Restituisce il processo ID assegnato al processo dal sistema operativo.
'GGHEADER' , '<header_info>'
Valido per Extract e Replicat.
Utilizzare l'opzione GGHEADER di @GETENV per restituire le informazioni dalla parte di intestazione di un record trail di Oracle GoldenGate. L'intestazione descrive l'ambiente di transazione del record. Per ulteriori informazioni sulle intestazioni dei record e sui tipi di record, vedere Formato record trail.
Sintassi
@GETENV ('GGHEADER', {'BEFOREAFTERINDICATOR'|'COMMITTIMESTAMP'|'LOGPOSITION'|
'LOGRBA'|'OBJECTNAME'|'TABLENAME'|'OPTYPE'|'RECORDLENGTH'|
'TRANSACTIONINDICATOR'})
Nota: non utilizzare TIMESTAMP_PRECISE per le operazioni di ordinazione. Utilizzare invece questo valore: @COMPUTE`(`@COMPUTE`(`@NUMSTR`(`@GETENV` ("RECORD``",
"`FILESEQNO`"))*100000000000)+`@NUMSTR`(`@GETENV` ("`RECORD`",
"`FILERBA`")))`
{: .infoboxnote}
‘BEFOREAFTERINDICATOR’
Restituisce l'indicatore prima o dopo che mostra se il record è un'immagine precedente o successiva. I risultati possibili sono:
-
BEFORE(prima dell'immagine) -
AFTER(dopo immagine)
‘COMMITTIMESTAMP’
Restituisce l'indicatore orario della transazione (l'ora in cui è stato eseguito il commit della transazione) espresso nel formato YYYY-MM-DD HH:MI:SS.FFFFFF, ad esempio:
2011-01-24 17:08:
59.000000
‘LOGPOSITION’
Restituisce la posizione del processo di estrazione nell'origine dati. (Vedere l'opzione LOGRBA).
‘LOGRBA’
LOGRBA e LOGPOSITION memorizzano i dettagli della posizione nell'origine dati del record. Per i prodotti basati su log transazionali, LOGRBA è il numero di sequenza e LOGPOSITION è l'indirizzo byte relativo. Tuttavia, questi valori variano a seconda del metodo di acquisizione e del tipo di database.
‘OBJECTNAME’ |
‘TABLENAME’ |
Restituisce il nome della tabella o il nome dell'oggetto (se non è un oggetto tabella).
‘OPTYPE’
Restituisce il tipo di operazione. I risultati possibili sono:
INSERT
UPDATE
DELETE
SQL COMPUPDATE
PK UPDATE
TRUNCATE
Se l'operazione non è uno dei tipi precedenti, la funzione restituisce la parola TYPE con il numero assegnato al tipo.
‘RECORDLENGTH’
Restituisce la lunghezza del record in byte.
‘TRANSACTIONINDICATOR’
Restituisce l'indicatore della transazione. Il valore corrisponde al campo TransInd dell'intestazione del record, che può essere visualizzato con l'utility Logdump.
I risultati possibili sono:
-
BEGIN(rappresentaTransInDdi 0, il primo record di una transazione). -
MIDDLE(rappresentaTransInDdi 1, un record al centro di una transazione). -
END(rappresentaTransInDdi 2, l'ultimo record di una transazione). -
WHOLE(rappresentaTransInDdi 3, l'unico record di una transazione).
'INTESTAZIONE FILE GG', 'header_info'
Valido solo per Replicat.
Utilizzare l'opzione GGFILEHEADER di @GETENV per recuperare gli attributi di un file Extract o di un file trail di Oracle GoldenGate. Questi attributi vengono memorizzati come token nell'intestazione del file. Nota: se un determinato database, sistema operativo o versione di Oracle GoldenGate non fornisce informazioni relative a un determinato token, verrà restituito un valore NULL.
Sintassi
@GETENV ('GGFILEHEADER', {'COMPATIBILITY'|'CHARSET'|'CREATETIMESTAMP'|
'FILENAME'|'FILETYPE'|'FILESEQNO'|'FILESIZE'|'FIRSTRECCSN'|
'LASTRECCSN'|'FIRSTRECIOTIME'|'LASTRECIOTIME'|'URI'|'URIHISTORY'|
'GROUPNAME'|'DATASOURCE'|'GGMAJORVERSION'|'GGMINORVERSION'|
'GGVERSIONSTRING'|'GGMAINTENANCELEVEL'|'GGBUGFIXLEVEL'|'GGBUILDNUMBER'|
'HOSTNAME'|'OSVERSION'|'OSRELEASE'|'OSTYPE'|'HARDWARETYPE'|
'DBNAME'| 'DBUNIQUENAME'|'DBINSTANCE'|'DBTYPE'|'DBCHARSET'|'DBMAJORVERSION'|
'DBMINORVERSION'|'DBVERSIONSTRING'|'DBCLIENTCHARSET'|'DBCLIENTVERSIONSTRING'|
'LASTCOMPLETECSN'|'LASTCOMPLETEXIDS'|'LASTCSN'|'LASTXID'|
'LASTCSNTS'|'RECOVERYMODE'})
‘COMPATIBILITY’
Restituisce il livello di compatibilità del file trail. Il livello di compatibilità della versione corrente di Oracle GoldenGate deve essere maggiore o uguale al livello di compatibilità del file trail per poter leggere i record di dati in tale file. I valori correnti validi sono compresi tra 0 e 6.
-
1 indica che il file trail è Oracle GoldenGate versione 10.0 o successiva, che supporta le intestazioni di file che contengono informazioni sul controllo delle versioni dei file.
-
0 indica che il file trail è di una versione di Oracle GoldenGate precedente alla 10.0. Le intestazioni dei file non sono supportate in queste release. Il valore 0 viene utilizzato per la compatibilità con le versioni precedenti di Oracle GoldenGate.
-
5 indica che il file trail è Oracle GoldenGate versione 12.2 o successiva.
-
6 indica che il file trail è Oracle GoldenGate versione 12.3.0.1.
Questo valore continua ad aumentare in base alla versione di Oracle GoldenGate a seconda della versione del file trail.
‘CHARSET’
Restituisce il set di caratteri globale del file trail. Ad esempio:
WCP1252-1
‘CREATETIMESTAMP’
Restituisce l'ora di creazione del trail, nell'ora giuliana GMT locale in INT64.
‘FILENAME’
Restituisce il nome del file trail. Può essere un percorso assoluto o relativo, con una barra in avanti o all'indietro a seconda del file system.
‘FILETYPE’
Restituisce un valore numerico che indica se il file trail è un singolo file (ad esempio un file creato per un'esecuzione batch) o un file con numerazione sequenziale che fa parte di un trail per l'elaborazione in linea e continua. I valori validi sono:
-
0 - EXTFILE -
1 - EXTTRAIL -
2 - UNIFIED and EXTFILE -
3 - UNIFIED and EXTTRAIL
‘FILESEQNO’
Restituisce il numero di sequenza del file trail, senza zeri iniziali. Ad esempio, se il numero di sequenza del file è aa000026, FILESEQNO restituisce 26.
‘FILESIZE’
Restituisce la dimensione del file trail. Restituisce NULL in un file attivo e restituisce un valore di dimensione quando il file è pieno e il trail viene spostato.
‘FIRSTRECCSN’
Restituisce il numero di sequenza di commit (CSN) del primo record nel file trail. Il valore è NULL fino al completamento del file trail.
‘LASTRECCSN’
Restituisce il numero di sequenza di commit (CSN) dell'ultimo record nel file trail. Il valore è NULL fino al completamento del file trail.
‘FIRSTRECIOTIME’
Restituisce l'ora in cui il primo record è stato scritto nel file trail. Il valore è NULL fino al completamento del file trail.
‘LASTRECIOTIME’
Restituisce l'ora in cui l'ultimo record è stato scritto nel file trail. Il valore è NULL fino al completamento del file trail.
‘RECOVERYMODE’
Restituisce le informazioni di recupero per l'uso interno di Oracle GoldenGate. Di solito è impostato su APPENDMODE.
‘URI’
Restituisce l'identificativo di risorsa universale del processo che ha creato il file trail nel seguente formato:
<host_name>:<dir>:[:<dir>][:<dir_n>]<group_name>
Dove:
-
host_nameè il nome del server che funge da host per il processo -
dirè una sottodirectory del percorso di installazione di Oracle GoldenGate. -
group_nameè il nome del gruppo di processi collegato al processo.
L'esempio seguente mostra dove è stato elaborato il trail e da quale processo. Ciò include una cronologia delle esecuzioni precedenti.
sys1:home:oracle:v9.5:extora
‘URIHISTORY’
Restituisce una lista degli URI dei processi scritti nel file trail prima del processo corrente.
-
Per un'estrazione principale, questo campo è vuoto.
-
Per una pompa dati, questo campo è
URIHistory+URIdel file trail di input.
‘GROUPNAME’
Restituisce il nome del gruppo associato al processo Extract che ha creato il trail. Il nome del gruppo è quello fornito al momento dell'esecuzione del comando ADD EXTRACT.
‘DATASOURCE’
Restituisce l'origine dati letta dal processo come numero. Il valore restituito può essere uno dei valori seguenti:
-
DS_EXTRACT_TRAILS: l'origine era un file di estrazione di Oracle GoldenGate, popolato con dati di modifica. Il valore restituito è0. -
DS_DATABASE:L'origine era una selezione diretta dalla tabella di database scritta in un trail, utilizzata per il caricamento iniziale basato suSOURCEISTABLE. Il valore restituito è2. -
DS_TRAN_LOGS: l'origine era il log delle transazioni del database. Il valore restituito è3. -
DS_INITIAL_DATA_LOAD: l'origine era una selezione diretta dalle tabelle di database per un caricamento iniziale. Il valore restituito è4. -
DS_VAM_EXTRACT:L'origine era un modulo di accesso del fornitore (VAM). Il valore restituito è5. -
DS_VAM_TWO_PHASE_COMMIT:L'origine era un trail VAM. Il valore restituito è6.
‘GGMAJORVERSION’
Restituisce la versione principale del processo Extract che ha creato il trail, espressa come numero intero. Ad esempio, se una versione è 1.2.3, restituisce 1.
‘GGMINORVERSION’
Restituisce la versione secondaria del processo Extract che ha creato il trail, espressa come numero intero. Ad esempio, se una versione è 1.2.3, restituisce 2.
‘GGVERSIONSTRING’
Restituisce il livello di manutenzione (o patch) del processo Extract che ha creato il trail, espresso come numero intero. Ad esempio, se una versione è 1.2.3, restituisce 3.
‘GGMAINTENANCELEVEL’
Restituisce la versione di manutenzione del processo (xx.xx.xx)).
‘GGBUGFIXLEVEL’
Restituisce la versione della patch del processo (xx.xx.xx.xx)).
‘GGBUILDNUMBER’
Restituisce il numero di build del processo.
‘HOSTNAME’
Restituisce il nome DNS del computer in cui è in esecuzione l'estrazione che ha scritto il trail. Ad esempio:
-
sysa -
sysb -
paris -
hq25
‘OSVERSION’
Restituisce la versione principale del sistema operativo della macchina in cui è in esecuzione l'Estratto che ha scritto il trail. Ad esempio:
-
Version s10_69 -
#1 SMP Fri Feb 24 16:56:28 EST 2006 -
5.00.2195 Service Pack 4
‘OSRELEASE’
Restituisce la versione di rilascio del sistema operativo della macchina in cui è in esecuzione l'Estratto che ha scritto il trail. Ad esempio, le versioni delle release degli esempi forniti per OSVERSION possono essere:
-
5.10 -
2.6.9-34.ELsmp
‘OSTYPE’
Restituisce il tipo di sistema operativo della macchina in cui è in esecuzione l'estratto che ha scritto il trail. Ad esempio:
-
SunOS -
Linux -
Microsoft Windows
‘HARDWARETYPE’
Restituisce il tipo di hardware della macchina in cui è in esecuzione l'Estratto che ha scritto il trail. Ad esempio:
-
sun4u -
x86_64 -
x86
‘DBNAME’
Restituisce il nome del database, ad esempio findb.
‘DBUNIQUENAME’
Restituisce il valore del token DB_UNIQUE_NAME come letto dall'intestazione del file trail di origine. Il valore corrisponde al parametro DB_UNIQUE_NAME del database di origine.
‘DBINSTANCE’
Restituisce il nome dell'istanza di database, se applicabile al tipo di database, ad esempio ORA1022A.
‘DBTYPE’
Restituisce il tipo di database che ha prodotto i dati nel file trail. Può essere uno dei seguenti:
DB2 UDB
DB2 ZOS
MSSQL
MYSQL
ORACLE
TERADATA
ODBC
‘DBCHARSET’
Restituisce il set di caratteri utilizzato dal database che ha prodotto i dati nel file trail. Per alcuni database, questo sarà vuoto.
‘DBMAJORVERSION’
Restituisce la versione principale del database che ha prodotto i dati nel file trail.
‘DBMINORVERSION’
Restituisce la versione secondaria del database che ha prodotto i dati nel file trail.
‘DBVERSIONSTRING’
Restituisce il livello di manutenzione (patch) del database che ha prodotto i dati nel file trail.
‘DBCLIENTCHARSET’
Restituisce il set di caratteri utilizzato dal client del database.
‘DBCLIENTVERSIONSTRING’
Restituisce il livello di manutenzione (patch) del client di database. Per alcuni database, questo sarà vuoto.
‘LASTCOMPLETECSN’
Restituisce le informazioni di recupero per l'uso interno di Oracle GoldenGate.
‘LASTCOMPLETEXIDS’
Restituisce le informazioni di recupero per l'uso interno di Oracle GoldenGate.
‘LASTCSN’
Restituisce le informazioni di recupero per l'uso interno di Oracle GoldenGate.
‘LASTXID’
Restituisce le informazioni di recupero per l'uso interno di Oracle GoldenGate.
‘LASTCSNTS’
Restituisce le informazioni di recupero per l'uso interno di Oracle GoldenGate.
'RECORD' , '<location_info>'
Valido per un Extract Data Pump o Replicat.
Utilizzare l'opzione RECORD di @GETENV per restituire la posizione o l'ID riga Oracle di un record in un file trail di Oracle GoldenGate.
Sintassi
@GETENV ('RECORD', {'TIMESTAMP_PRECISE'|'FILESEQNO'|'FILERBA'|'ROWID'|'RSN'|'TIMESTAMP'})
‘TIMESTAMP_PRECISE’
Valido per Extract o Replicat.
L'opzione TIMESTAMP_PRECISE restituisce l'indicatore orario da anno a microsecondi. Tuttavia, a seconda del database, il valore può essere in millisecondi con 0 microsecondi.
‘FILESEQNO’
Restituisce il numero di sequenza del file trail senza zeri iniziali.
‘FILERBA’
Restituisce l'indirizzo di byte relativo del record nel file FILESEQNO.
‘ROWID’
(Valido per Oracle) Restituisce l'ID riga del record.
‘RSN’
Restituisce il numero di sequenza dei record all'interno della transazione. Questo valore non sempre genera valori in aumento in modo univoco e non deve essere utilizzato per ordinare le operazioni. Per ordinare le transazioni o le operazioni DML all'interno di una transazione, utilizza le informazioni descritte in MOS 2036276.1.
‘TIMESTAMP’
Restituisce l'indicatore orario del record.
Esempio:
REC-TIMESTAMP: 2017-10-31 06:21:07 REC-TIMESTAMP-PRECISE: 2017-10-31 06:21:07.478064
'DBENVIRONMENT' , '<database_info>'
Valido per Extract e Replicat.
Utilizzare l'opzione DBENVIRONMENT di @GETENV per restituire le informazioni sull'ambiente globale per un database.
Sintassi
@GETENV ('DBENVIRONMENT', {'DBNAME'|'DBUNIQUENAME'|'DBVERSION'|'DBUSER'|'SERVERNAME'})
‘DBNAME’
Restituisce il nome del database.
‘DBUNIQUENAME’
Restituisce il valore del parametro DB_UNIQUE_NAME del database al quale è connesso il processo. Il database di origine nel caso di Extract e il database di destinazione per Replicat. Questo valore verrà impostato solo per i database Oracle.
‘DBVERSION’
Restituisce la versione del database.
‘DBUSER’
Restituisce l'utente di login al database. Si noti che SQL Server non registra l'utente ID.
‘SERVERNAME’
Restituisce il nome del server.
'TRANSACTION' , '<transaction_info>'
Valido per Extract.
Utilizzare l'opzione TRANSACTION di @GETENV per restituire informazioni su una transazione di origine. Questa opzione è valida per il processo Extract, ma non per Pump Extract e Replicat.
Sintassi
@GETENV ('TRANSACTION', {'TIMESTAMP_PRECISE'|'TRANSACTIONID'|'XID'|'CSN'|'TIMESTAMP'|'NAME'|
'USERNAME'|'PLANNAME' | 'LOGBSN' | 'REDOTHREAD' | 'PROGRAMNAME' | 'CLIENTIDENTIFIER' | 'MACHINENAME' | 'USERNAME')
Nota: non utilizzare TIMETSAMP_PRECISE o TIMESTAMP per le operazioni di ordinazione. In alternativa, utilizzare questo valore: @COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO"))*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))
‘TIMESTAMP_PRECISE’
Questa opzione è valida per Extract. Utilizzare TIMESTAMP_PRECISE per restituire l'indicatore orario dall'anno ai microsecondi. Tuttavia, a seconda del database, il valore può essere in millisecondi con 0 microsecondi
‘TRANSACTIONID’ |
‘XID’ |
Restituisce il numero ID della transazione. È possibile utilizzare TRANSACTIONID o XID. La transazione ID e CSN sono associate al primo record di ogni transazione e vengono memorizzate come token nel record trail. Per ogni transazione ID, è associato un CSN. I token di transazione ID non hanno riempimento zero su alcuna piattaforma, perché non vengono mai valutati come valori relativi. Vengono valutati solo se corrispondono o non corrispondono. Si noti che nel trail il token ID della transazione viene visualizzato come TRANID.
‘CSN’
Restituisce il numero di sequenza di commit (CSN). CSN non viene riempito a zero quando viene restituito per questi database: Oracle, Db2 LUW e Db2 z/OS. Per tutti gli altri database supportati, CSN è a riempimento zero.
Si noti che nel trail il token CSN viene visualizzato come LOGCSN. Per ulteriori informazioni sul token CSN, vedere il valore dell'ambiente TRANSACTIONID | XID.
Per ulteriori informazioni su CSN, vedere Numero di sequenza di commit (CSN).
‘TIMESTAMP’
Restituisce l'indicatore orario di commit della transazione.
‘NAME’
Restituisce il nome della transazione, se disponibile.
‘USERNAME’
(Oracle) Restituisce il nome utente Oracle dell'utente del database che ha eseguito il commit dell'ultima transazione. Non valido per Extract pompa e/o Replicat.
‘PLANNAME’
(Db2 z/OS) Restituisce il nome del piano in base al quale la transazione corrente è stata originariamente eseguita. Il nome del piano è incluso nell'unità iniziale del record di log di recupero.
‘LOGBSN’
Restituisce il numero di sequenza iniziale (BSN) nel log delle transazioni. Il numero BSN è il numero di sequenza nativo che identifica l'inizio della transazione meno recente di cui non è stato eseguito il commit conservata nella memoria Extract. Ad esempio, se si utilizza un database Oracle, il BSN viene espresso come numero di modifica del sistema (SCN). Il numero BSN corrisponde al valore corrente del checkpoint di I/O di Extract. Questo valore può essere ottenuto dal trail da Replicat quando si utilizza @GETENV ('TRANSACTION', 'LOGBSN'). Questo valore può essere ottenuto anche utilizzando il comando INFO REPLICAT con l'opzione DETAIL. Lo scopo di ottenere il BSN da Replicat è quello di ottenere un punto di recupero per Extract nel caso in cui un errore di sistema o un danneggiamento del file system renda inutilizzabile il file di checkpoint Extract.
‘REDOTHREAD’
Restituisce il numero di thread di un'estrazione del nodo RAC; su un nodo non RAC estrae il valore è sempre 1. Per Data Pump e Replicat, viene restituito l'ID thread utilizzato dall'acquisizione Extract di un nodo RAC. Se non è RAC, @GETENV() restituisce un errore. Logdump mostra il token, ORATHREADID, nella sezione token se la transazione viene acquisita da Extract su un nodo RAC.
‘PROGRAMNAME’
Nome del programma o dell'applicazione che ha avviato la transazione o la sessione.
‘CLIENTIDENTIFIER’
Insieme di valori utilizzando DBMS_SESSION_.set_identifier().
‘MACHINENAME’
Nome dell'host, del computer o del server in cui è in esecuzione il database
‘USERNAME’
Nome utente di login al database.
Esempio:
DB2 zOS:
TRANS-TIMESTAMP: 2017-10-31 06:21:07
TRANS-TIMESTAMP-PRECISE: 2017-10-31 06:21:07.485792
'OSVARIABLE' , '<variable>'
Valido per Extract e Replicat.
Utilizzare l'opzione OSVARIABLE di @GETENV per restituire il valore stringa di una variabile di ambiente del sistema operativo specificata.
Sintassi
@GETENV ('OSVARIABLE', '<variable>')
<'variable'>
Il nome della variabile. La ricerca corrisponde esattamente al nome della variabile fornito. Ad esempio, il comando UNIX grep restituisce tutte le seguenti variabili, ma @GETENV ('OSVARIABLE', 'HOME') restituisce solo il valore per HOME:
ANT_HOME=/usr/local/ant
JAVA_HOME=/usr/java/j2sdk1.4.2_10
HOME=/home/judyd
ORACLE_HOME=/rdbms/oracle/ora1022i/64
La ricerca fa distinzione tra maiuscole e minuscole se il sistema operativo supporta la distinzione tra maiuscole e minuscole.
'TLFKEY' , SYSKEY, '<unique_key>'
Valido per Extract e Replicat.
Utilizzare l'opzione TLFKEY di @GETENV per associare una chiave univoca ai record TLF/PTLF nell'applicazione Base24 di ACI. La chiave a 64 bit è composta dai seguenti elementi concatenati:
-
Il numero di secondi dal 2000.
-
Numero di blocco del record nel blocco TLF/PTLF moltiplicato per dieci.
-
Il nodo specificato dall'utente (deve essere compreso tra 0 e 255).
Sintassi
@GETENV ('TLFKEY', SYSKEY, <unique_key>)
SYSKEY, <unique_key>
Numero di nodo NonStop del file TLF/PTLF di origine. Non racchiudere questo elemento di sintassi tra virgolette.
Esempio:
GETENV ('TLFKEY', SYSKEY, 27)
'SOURCEDATABASEINFO'
Questa opzione dispone dei campi DBUNIQUENAME e DBNAME. I campi di SOURCEDATABASEINFO sono diversi dai campi GGFILEHEADER. In primo luogo, le loro prestazioni sono migliori rispetto ai campi di GGFILEHEADER, quindi l'utilizzo di SOURCEDATABASEINFO è un'alternativa migliore per gli scenari in cui le prestazioni sono critiche. In secondo luogo, quando il token DBUNIQUENAME non è disponibile nell'intestazione trail, perché il file trail è stato generato da una versione precedente di Oracle GoldenGate o perché il database non è Oracle, @GETENV considererà DBUNIQUENAME come sinonimo di DBNAME. In questo caso, verrà scritto un messaggio di avvertenza nel file del report, la prima volta che viene letta un'intestazione senza il token.