@GETENV
Use a função @GETENV para retornar informações sobre o ambiente do Oracle GoldenGate. Você pode usar as informações como entrada no seguinte:
-
Procedimentos ou consultas armazenados (com
SQLEXEC) -
Mapas de coluna (com a opção
COLMAPdeTABLEouMAP) -
Tokens do usuário (definidos com a opção
TOKENSdeTABLEe mapeados para colunas de destino por meio da função@TOKEN) -
A função de saída do usuário
GET_ENV_VALUE(consulte "GET_ENV_VALUE")Observação: Todas as opções de sintaxe devem estar entre aspas, conforme mostrado nas descrições de sintaxe.
-
Recupera o valor do parâmetro
DB_UNIQUE_NAMEdos bancos de dados de origem ou de destino, dependendo de quais processos (Extrair ou Replicat) executam a função.
Sintaxe
@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>'
Válido para Extrair e Replicar.
Use a opção LAG do @GETENV para retornar informações de atraso. O intervalo corresponde à diferença entre o tempo que um registro foi processado pelo processo Extract ou Replicat e o timestamp desse registro na origem.
Sintaxe
SEC
‘SEC’
Retorna a defasagem em segundos. Esse é o padrão quando uma unidade não é explicitamente fornecida para LAG.
‘MSEC’
Retorna o atraso em milissegundos.
‘MIN’
Retorna o atraso em minutos.
'LASTERR' , '<error_info>'
Válido para Replicat.
Usar a opção LASTERR de @GETENV para retornar informações sobre a última operação com falha processada pelo Replicat.
Sintaxe
@GETENV ('LASTERR', {'DBERRNUM'|'DBERRMSG'|'OPTYPE'|'ERRTYPE'})
‘DBERRNUM’
Retorna o número de erro do banco de dados associado à operação com falha.
‘DBERRMSG’
Retorna a mensagem de erro do banco de dados associada à operação com falha.
‘OPTYPE’
Retorna o tipo de operação que foi tentado.
‘ERRTYPE’
Retorna o tipo de erro. Os resultados possíveis são:
-
DB(para erros de banco de dados) -
MAP(para erros no mapeamento)
'JULIANTIMESTAMP'|'JULIANTIMESTAMP_PRECISE'
Válido para Extrair e Replicar.
Use a opção JULIANTIMESTAMP de @GETENV para retornar o horário atual no formato juliano. A unidade é microssegundos (um milionésimo de segundo). Em uma máquina Windows, o valor é preenchido com zeros (0) porque a granularidade do timestamp do Windows é milissegundos (um milésimo de segundo). Por exemplo, o seguinte é um mapeamento de coluna típico:
MAP dbo.tab8451, Target targ.tabjts, COLMAP (USEDEFAULTS, &
JTSS = @GETENV ('JULIANTIMESTAMP')
JTSFFFFFF = @date ('yyyy-mm-dd hh:mi:ss.ffffff', 'JTS', &
@getenv ('JULIANTIMESTAMP') ) )
;
Os valores possíveis das colunas JTSS e JTSFFFFFF podem ter:
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
Os três últimos dígitos (os microssegundos) do número contêm o preenchimento de 0s.
Opcionalmente, você pode usar a opção 'JULIANTIMESTAMP_PRECISE' para obter um timestamp com alta precisão, embora isso possa afetar o desempenho. Observação: Não use esses valores para operações de ordenação. Em vez dele, use este valor: @COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO")*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))"
Sintaxe
@GETENV ('JULIANTIMESTAMP')
@GETENV ('JULIANTIMESTAMP_PRECISE')
'RECSOUTPUT'
Válido para o Extract.
Use a opção RECSOUTPUT de @GETENV para recuperar uma contagem atual do número de registros que o Extract gravou no arquivo de trilha desde o início do processo. O valor retornado não é exclusivo de uma tabela ou transação, mas da própria sessão Extract. A contagem é redefinida como 1 sempre que o Extract é interrompido e, em seguida, é iniciado novamente.
Sintaxe
@GETENV ('RECSOUTPUT')
{'STATS'|'DELTASTATS'}, ['TABLE', '<table>'], '<statistic>'
Válido para Extrair e Replicar.
Use as opções STATS e DELTASTATS de @GETENV para retornar o número de operações que foram processadas por tabela para qualquer ou todas as seguintes opções:
-
operações
INSERT -
Operações
UPDATE -
Operações
DELETE -
Operações
TRUNCATE -
Total de operações
DML -
Total de operações
DDL -
Número de conflitos que ocorreram se o recurso CDR (Conflict Detection and Resolution) for usado.
-
Número de resoluções CDR bem-sucedidas
-
Número de resoluções CDR que falharam
Qualquer erro no processamento desta função, como uma entrada de tabela não resolvida ou sintaxe incorreta, retorna um zero (0) para o valor de estatísticas solicitado.
Compreendendo como as Especificações da Tabela Recorrente Afetam as Contagens de Operação
Um Extract que está processando a mesma tabela de origem para várias trilhas de saída retorna estatísticas com base em cada trilha de saída localizada na qual a tabela vinculada ao @GETENV é gravada. Por exemplo, se o Extract capturar 100 inserções para a tabela ABC e gravar a tabela ABC em três trilhas, o resultado para @GETENV será 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;
No caso de um Extract que grava uma tabela de origem várias vezes em uma única trilha de saída ou no caso de um Replicat que tem várias instruções MAP para a mesma tabela TARGET, os resultados de estatísticas se baseiam em todas as entradas TARGET correspondentes. Por exemplo, se o Replicat filtrar 20 linhas para REGION 'WEST,' 10 linhas para REGION 'EAST,' 5 linhas para REGION 'NORTH,' e 2 linhas para REGION 'SOUTH' (todas para a tabela ABC), o resultado do @GETENV será 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'));
Capturando Várias Estatísticas
Você pode executar várias instâncias do @GETENV para obter contagens para diferentes tipos de operação.
Este exemplo retorna estatísticas somente para as operações 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'));
Este exemplo retorna estatísticas para as operações DDL e TRUNCATE:
REPLICAT TEST2
..
..
MAP TEST.ABC, TARGET TEST.ABC, COLMAP (USEDEFAULTS, DDL = @COMPUTE &
(@GETENV ('STATS', 'DDL') + (@GETENV ('STATS', 'TRUNCATE'));
Exemplo de Caso de Uso
No caso de uso a seguir, se todos os DML da origem forem aplicados com sucesso ao destino, o Replicat suspenderá por meio de EVENTACTIONS com SUSPEND, até ser retomado do GGSCI com SEND REPLICAT com RESUME.
GETENV usado no arquivo de parâmetros Extract:
TABLE HR1.HR*;
TABLE HR1.STAT, TOKENS ('env_stats' = @GETENV ('STATS', 'TABLE', &
'HR1.HR*', 'DML'));
GETENV usado no arquivo de parâmetros 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);
Usando Estatísticas em Cláusulas FILTER
As estatísticas retornadas por STATS e DELTASTATS são valores dinâmicos e são incrementadas após a execução do mapeamento. Portanto, ao usar estatísticas CDR em uma cláusula FILTER em cada uma das várias instruções MAP, você precisa ordenar as instruções MAP em ordem decrescente dos valores de estatísticas. Se a ordem não estiver correta, o Oracle GoldenGate retornará o erro OGG-01921. Para obter informações detalhadas sobre esse requisito, consulte o Documento 1556241.1 na Base de Conhecimento do My Oracle Support em https://support.oracle.com.
Exemplo 4-1 Instruções MAP contendo estatísticas em cláusulas FILTER
No exemplo a seguir, as instruções MAP que contêm o filtro para a estatística CDR_CONFLICTS são ordenadas em ordem decrescente da estatística: >3, =3, <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);
Sintaxe
@GETENV ({'STATS' | 'DELTASTATS'}, ['TABLE', '<table>'], '<statistic>')
{‘STATS’ |
‘DELTASTATS’} |
STATS retorna contagens desde a inicialização do processo, enquanto DELTASTATS retorna contagens desde a última execução de um DELTASTATS.
A lógica de execução é a seguinte:
-
Quando o Extract processa um registro de transação que satisfaz a
@GETENVcomSTATSouDELTASTATS, o nome da tabela é comparado com as tabelas de origem resolvidas na instruçãoTABLE. -
Quando o Replicat processa um registro de trilha que satisfaz a
@GETENVcomSTATSouDELTASTATS, o nome da tabela é comparado com as tabelas de destino resolvidas na cláusulaTARGETda instruçãoMAP.
‘TABLE’, ‘<table>’
Executa o STATS ou o DELTASTATS somente para a(s) tabela(s) especificada(s). Sem essa opção, as contagens são retornadas para todas as tabelas especificadas nos parâmetros TABLE (Extrair) ou MAP (Replicar) no arquivo de parâmetros.
Os valores <table_name> válidos são:
-
'
<schema.table>' especifica uma tabela. -
<'table'>especifica uma tabela do esquema padrão. -
'*schema.' especifica todas as tabelas de um esquema.
-
'*' especifica todas as tabelas do esquema padrão.
Por exemplo, as seguintes operações contam DML somente para tabelas no esquema hr:
MAP fin.*, TARGET fin.*;
MAP hr.*, TARGET hr.*;
MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = @GETENV ('STATS', 'TABLE', 'hr.*', 'DML'));
Da mesma forma, as seguintes operações contam DML somente para a tabela emp no esquema hr:
MAP fin.*, TARGET fin.*;
MAP hr.*, TARGET hr.*;
MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = @GETENV ('STATS', 'TABLE', 'hr.emp', 'DML'));
Por outro lado, como não há tabelas específicas especificadas para STATS no exemplo a seguir, a função conta todas as operações INSERT, UPDATE e DELETE para todas as tabelas em todos os esquemas que são representados nas cláusulas TARGET das instruções MAP:
MAP fin.*, TARGET fin.*;
MAP hr.*, TARGET hr.*;
MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = &
@GETENV ('STATS', 'DML'));
<'statistic>’
O tipo de estatística a ser retornada. Consulte Usando Estatísticas em Cláusulas FILTER para obter informações importantes ao usar estatísticas em cláusulas FILTER em várias instruções TABLE ou MAP.
‘INSERT’
Retorna o número de operações INSERT que foram processadas.
‘UPDATE’
Retorna o número de operações UPDATE que foram processadas.
‘DELETE’
Retorna o número de operações DELETE que foram processadas.
‘DML’
Retorna o total de operações INSERT, UPDATE, e DELETE que foram processadas.
‘TRUNCATE’
Retorna o número de operações TRUNCATE que foram processadas. Essa variável só retornará uma contagem se a replicação DDL do Oracle GoldenGate não estiver sendo usada. Se a replicação DDL estiver sendo usada, essa variável retornará um zero.
‘DDL’
Retorna o número de operações DDL que foram processadas, incluindo TRUNCATEs e DDL especificados nas cláusulas INCLUDE e EXCLUDE do parâmetro DDL, todos os escopos (MAPPED, UNMAPPED, OTHER). Essa variável só retornará uma contagem se a replicação DDL do Oracle GoldenGate estiver sendo usada. Esta variável não é válida para 'DELTASTATS'.
‘CDR_CONFLICTS’
Retorna o número de conflitos que o Replicat detectou ao executar o recurso CDR (Conflict Detection and Resolution).
Exemplo para um <table> específico:
@GETENV ('STATS','TABLE','HR.EMP','CDR_CONFLICTS')
Exemplo de todas as tabelas processadas pelo Replicat:
@GETENV ('STATS','CDR_CONFLICTS')
‘CDR_RESOLUTIONS_SUCCEEDED’
Retorna o número de conflitos que o Replicat resolveu ao executar o recurso CDR (Conflict Detection and Resolution).
Exemplo de um <table> específico:
@GETENV ('STATS','TABLE','HR.EMP', 'CDR_RESOLUTIONS_SUCCEEDED')
Exemplo de todas as tabelas processadas pelo Replicat:
@GETENV ('STATS','CDR_RESOLUTIONS_SUCCEEDED')
‘CDR_RESOLUTIONS_FAILED’
Retorna o número de conflitos que o Replicat não pôde resolver ao executar o recurso CDR (Conflict Detection and Resolution).
Exemplo de um <table> específico:
@GETENV ('STATS','TABLE','HR.EMP', 'CDR_RESOLUTIONS_FAILED')
Exemplo de todas as tabelas processadas pelo Replicat:
@GETENV ('STATS','CDR_RESOLUTIONS_FAILED')
'GGENVIRONMENT' , '<environment_info>'
Válido para Extrair e Replicar.
Use a opção GGENVIRONMENT do @GETENV para retornar informações sobre o ambiente do Oracle GoldenGate.
Sintaxe
@GETENV ('GGENVIRONMENT', {'DOMAINNAME'|'GROUPDESCRIPTION'|'GROUPNAME'|
'GROUPTYPE'|'HOSTNAME'|'OSUSERNAME'|'PROCESSID')
‘DOMAINNAME’
(Somente Windows) Retorna o nome de domínio associado ao usuário que iniciou o processo.
‘GROUPDESCRIPTION’
Retorna a descrição do grupo, obtida do arquivo de checkpoint. Requer que uma descrição tenha sido fornecida com o parâmetro DESCRIPTION quando o grupo foi criado com o comando ADD.
‘GROUPNAME’
Retorna o nome do grupo de processos.
‘GROUPTYPE’
Retorna o tipo de processo, EXTRACT ou REPLICAT.
‘HOSTNAME’
Retorna o nome do sistema que está executando o processo Extract ou Replicat.
‘OSUSERNAME’
Retorna o nome de usuário do sistema operacional que iniciou o processo.
‘PROCESSID’
Retorna o processo ID que é atribuído ao processo pelo sistema operacional.
'GGHEADER' , '<header_info>'
Válido para Extrair e Replicar.
Use a opção GGHEADER do @GETENV para retornar informações da parte do cabeçalho de um registro de trilha do Oracle GoldenGate. O cabeçalho descreve o ambiente de transação do registro. Para obter mais informações sobre cabeçalhos e tipos de registro, consulte Formato de Registro de Trilha.
Sintaxe
@GETENV ('GGHEADER', {'BEFOREAFTERINDICATOR'|'COMMITTIMESTAMP'|'LOGPOSITION'|
'LOGRBA'|'OBJECTNAME'|'TABLENAME'|'OPTYPE'|'RECORDLENGTH'|
'TRANSACTIONINDICATOR'})
Observação: Não use TIMESTAMP_PRECISE para ordenar operações. Em vez disso, use este valor: @COMPUTE`(`@COMPUTE`(`@NUMSTR`(`@GETENV` ("RECORD```",
"`FILESEQNO`"))*100000000000)+`@NUMSTR`(`@GETENV` ("`RECORD`",
"`FILERBA`")))`
{: .infoboxnote}
‘BEFOREAFTERINDICATOR’
Retorna o indicador antes ou depois mostrando se o registro é uma imagem antes ou uma imagem depois. Os resultados possíveis são:
-
BEFORE(antes da imagem) -
AFTER(após a imagem)
‘COMMITTIMESTAMP’
Retorna o timestamp da transação (o horário em que a transação foi confirmada) expresso no formato YYYY-MM-DD HH:MI:SS.FFFFFF, por exemplo:
2011-01-24 17:08:
59.000000
‘LOGPOSITION’
Retorna a posição do processo de Extract na origem de dados. (Consulte a opção LOGRBA.)
‘LOGRBA’
LOGRBA e LOGPOSITION armazenam detalhes da posição na origem de dados do registro. Para produtos transacionais baseados em log, LOGRBA é o número de sequência e LOGPOSITION é o endereço de byte relativo. No entanto, esses valores variarão dependendo do método de captura e do tipo de banco de dados.
‘OBJECTNAME’ |
‘TABLENAME’ |
Retorna o nome da tabela ou o nome do objeto (se um objeto que não seja de tabela).
‘OPTYPE’
Retorna o tipo de operação. Os resultados possíveis são:
INSERT
UPDATE
DELETE
SQL COMPUPDATE
PK UPDATE
TRUNCATE
Se a operação não for um dos tipos acima, a função retornará a palavra TYPE com o número atribuído ao tipo.
‘RECORDLENGTH’
Retorna o tamanho do registro em bytes.
‘TRANSACTIONINDICATOR’
Retorna o indicador de transação. O valor corresponde ao campo TransInd do cabeçalho do registro, que pode ser exibido com o utilitário Logdump.
Os resultados possíveis são:
-
BEGIN(representa aTransInDde 0, o primeiro registro de uma transação.) -
MIDDLE(representa oTransInDde 1, um registro no meio de uma transação.) -
END(representaTransInDde 2, o último registro de uma transação.) -
WHOLE(representaTransInDde 3, o único registro em uma transação.)
'GGFILEHEADER', 'header_info'
Válido apenas para Replicat.
Use a opção GGFILEHEADER de @GETENV para recuperar atributos de um arquivo de trilha ou de extração do Oracle GoldenGate. Esses atributos são armazenados como tokens no cabeçalho do arquivo. Observação: Se uma determinada versão do banco de dados, do sistema operacional ou do Oracle GoldenGate não fornecer informações relacionadas a um determinado token, um valor NULL será retornado.
Sintaxe
@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’
Retorna o nível de compatibilidade do arquivo de trilha. O nível de compatibilidade da versão atual do Oracle GoldenGate deve ser maior ou igual ao nível de compatibilidade do arquivo de trilha para poder ler os registros de dados nesse arquivo. Os valores atuais válidos são de 0 ou 6.
-
1 significa que o arquivo de trilha é do Oracle GoldenGate versão 10.0 ou posterior, que suporta cabeçalhos de arquivo que contêm informações de controle de versão do arquivo.
-
0 significa que o arquivo de trilha é de uma versão do Oracle GoldenGate anterior à 10.0. Os cabeçalhos de arquivo não são suportados nessas versões. O valor 0 é usado para compatibilidade retroativa com essas versões do Oracle GoldenGate.
-
5 significa que o arquivo de trilha é do Oracle GoldenGate versão 12.2 ou posterior.
-
6 significa que o arquivo de trilha é do Oracle GoldenGate versão 12.3.0.1.
Esse valor continua aumentando de acordo com a versão do Oracle GoldenGate, dependendo da versão do arquivo de trilha.
‘CHARSET’
Retorna o conjunto de caracteres globais do arquivo de trilha. Por exemplo:
WCP1252-1
‘CREATETIMESTAMP’
Retorna o horário em que a trilha foi criada, no horário local de GMT Julian em INT64.
‘FILENAME’
Retorna o nome do arquivo de trilha. Pode ser um caminho absoluto ou relativo, com uma barra ou barra invertida, dependendo do sistema de arquivos.
‘FILETYPE’
Retorna um valor numérico que indica se o arquivo de trilha é um único arquivo (como um criado para uma execução em batch) ou um arquivo numerado sequencialmente que faz parte de uma trilha para processamento contínuo on-line. Os valores válidos são:
-
0 - EXTFILE -
1 - EXTTRAIL -
2 - UNIFIED and EXTFILE -
3 - UNIFIED and EXTTRAIL
‘FILESEQNO’
Retorna o número de sequência do arquivo de trilha, sem zeros à esquerda. Por exemplo, se um número de sequência de arquivo for aa000026, FILESEQNO retornará 26.
‘FILESIZE’
Retorna o tamanho do arquivo da trilha. Ele retorna NULL em um arquivo ativo e retorna um valor de tamanho quando o arquivo está cheio e a trilha é rolada.
‘FIRSTRECCSN’
Retorna o número de sequência de commit (CSN) do primeiro registro no arquivo de trilha. O valor é NULL até que o arquivo de trilha seja concluído.
‘LASTRECCSN’
Retorna o número de sequência de commit (CSN) do último registro no arquivo de trilha. O valor é NULL até que o arquivo de trilha seja concluído.
‘FIRSTRECIOTIME’
Retorna a hora em que o primeiro registro foi gravado no arquivo de trilha. O valor é NULL até que o arquivo de trilha seja concluído.
‘LASTRECIOTIME’
Retorna a hora em que o último registro foi gravado no arquivo de trilha. O valor é NULL até que o arquivo de trilha seja concluído.
‘RECOVERYMODE’
Retorna informações de recuperação para uso interno do Oracle GoldenGate. Geralmente, é definido como APPENDMODE.
‘URI’
Retorna o identificador de recurso universal do processo que criou o arquivo de trilha, no seguinte formato:
<host_name>:<dir>:[:<dir>][:<dir_n>]<group_name>
Onde:
-
host_nameé o nome do servidor que hospeda o processo. -
diré um subdiretório do caminho de instalação do Oracle GoldenGate. -
group_nameé o nome do grupo de processos que está vinculado ao processo.
O exemplo a seguir mostra onde a trilha foi processada e por qual processo. Isso inclui um histórico de execuções anteriores.
sys1:home:oracle:v9.5:extora
‘URIHISTORY’
Retorna uma lista dos URIs de processos que gravaram no arquivo de trilha antes do processo atual.
-
Para um Extract principal, este campo está vazio.
-
Para um data pump, este campo é
URIHistory+URIdo arquivo de trilha de entrada.
‘GROUPNAME’
Retorna o nome do grupo associado ao processo Extract que criou a trilha. O nome do grupo é aquele que foi fornecido quando o comando ADD EXTRACT foi emitido.
‘DATASOURCE’
Retorna a origem de dados que foi lida pelo processo como um número. O valor de retorno pode ser uma das seguintes:
-
DS_EXTRACT_TRAILS: A origem era um arquivo de extração do Oracle GoldenGate, preenchido com dados de alteração. O valor de retorno é0. -
DS_DATABASE:A origem era uma seleção direta da tabela de banco de dados gravada em uma trilha, usada para carga inicial orientada porSOURCEISTABLE. O valor de retorno é2. -
DS_TRAN_LOGS: A origem era o log de transações do banco de dados. O valor de retorno é3. -
DS_INITIAL_DATA_LOAD: A origem era uma seleção direta das tabelas de banco de dados para uma carga inicial. O valor de retorno é4. -
DS_VAM_EXTRACT:A origem era um VAM (Supplier Access Module, Módulo de acesso ao fornecedor). O valor de retorno é5. -
DS_VAM_TWO_PHASE_COMMIT:A origem era uma trilha de VAM. O valor de retorno é6.
‘GGMAJORVERSION’
Retorna a versão principal do processo Extract que criou a trilha, expressa como um número inteiro. Por exemplo, se uma versão for 1.2.3, ela retornará 1.
‘GGMINORVERSION’
Retorna a versão secundária do processo Extract que criou a trilha, expressa como um número inteiro. Por exemplo, se uma versão for 1.2.3, ela retornará 2.
‘GGVERSIONSTRING’
Retorna o nível de manutenção (ou patch) do processo Extract que criou a trilha, expresso como um inteiro. Por exemplo, se uma versão for 1.2.3, ela retornará 3.
‘GGMAINTENANCELEVEL’
Retorna a versão de manutenção do processo (xx.xx.xx).
‘GGBUGFIXLEVEL’
Retorna a versão do patch do processo (xx.xx.xx.xx).
‘GGBUILDNUMBER’
Retorna o número de criação do processo.
‘HOSTNAME’
Retorna o nome DNS da máquina em que o Extract que gravou a trilha está em execução. Por exemplo:
-
sysa -
sysb -
paris -
hq25
‘OSVERSION’
Retorna a versão principal do sistema operacional da máquina em que o Extract que gravou a trilha está em execução. Por exemplo:
-
Version s10_69 -
#1 SMP Fri Feb 24 16:56:28 EST 2006 -
5.00.2195 Service Pack 4
‘OSRELEASE’
Retorna a versão de release do sistema operacional da máquina em que o Extract que gravou a trilha está em execução. Por exemplo, as versões de release dos exemplos fornecidos para OSVERSION podem ser:
-
5.10 -
2.6.9-34.ELsmp
‘OSTYPE’
Retorna o tipo de sistema operacional da máquina em que o processo Extract que gravou a trilha está em execução. Por exemplo:
-
SunOS -
Linux -
Microsoft Windows
‘HARDWARETYPE’
Retorna o tipo de hardware da máquina em que o processo Extract que gravou a trilha está em execução. Por exemplo:
-
sun4u -
x86_64 -
x86
‘DBNAME’
Retorna o nome da base de dados, por exemplo findb.
‘DBUNIQUENAME’
Retorna o valor do token DB_UNIQUE_NAME como lido no cabeçalho do arquivo de trilha de origem. Seu valor corresponde ao parâmetro DB_UNIQUE_NAME do banco de dados de origem.
‘DBINSTANCE’
Retorna o nome da instância do banco de dados, se aplicável ao tipo de banco de dados, por exemplo, ORA1022A.
‘DBTYPE’
Retorna o tipo de banco de dados que produziu os dados no arquivo de trilha. Pode ser um dos seguintes:
DB2 UDB
DB2 ZOS
MSSQL
MYSQL
ORACLE
TERADATA
ODBC
‘DBCHARSET’
Retorna o conjunto de caracteres usado pelo banco de dados que produziu os dados no arquivo de trilha. (Para alguns bancos de dados, isso ficará vazio.)
‘DBMAJORVERSION’
Retorna a versão principal do banco de dados que produziu os dados no arquivo de trilha.
‘DBMINORVERSION’
Retorna a versão secundária do banco de dados que produziu os dados no arquivo de trilha.
‘DBVERSIONSTRING’
Retorna o nível de manutenção (patch) do banco de dados que produziu os dados no arquivo de trilha.
‘DBCLIENTCHARSET’
Retorna o conjunto de caracteres usado pelo cliente do banco de dados.
‘DBCLIENTVERSIONSTRING’
Retorna o nível de manutenção (patch) do cliente do banco de dados. (Para alguns bancos de dados, isso ficará vazio.)
‘LASTCOMPLETECSN’
Retorna informações de recuperação para uso interno do Oracle GoldenGate.
‘LASTCOMPLETEXIDS’
Retorna informações de recuperação para uso interno do Oracle GoldenGate.
‘LASTCSN’
Retorna informações de recuperação para uso interno do Oracle GoldenGate.
‘LASTXID’
Retorna informações de recuperação para uso interno do Oracle GoldenGate.
‘LASTCSNTS’
Retorna informações de recuperação para uso interno do Oracle GoldenGate.
'RECORD' , '<location_info>'
Válido para uma Extração ou Replicação do data pump.
Use a opção RECORD de @GETENV para retornar o local ou o id de linha Oracle de um registro em um arquivo de trilha do Oracle GoldenGate.
Sintaxe
@GETENV ('RECORD', {'TIMESTAMP_PRECISE'|'FILESEQNO'|'FILERBA'|'ROWID'|'RSN'|'TIMESTAMP'})
‘TIMESTAMP_PRECISE’
Válido para Extrair ou Replicar.
A opção TIMESTAMP_PRECISE retorna o timestamp do ano para microssegundos. No entanto, dependendo do banco de dados, o valor pode ser em milissegundos com 0 microssegundos.
‘FILESEQNO’
Retorna o número de sequência do arquivo de trilha sem zeros à esquerda.
‘FILERBA’
Retorna o endereço de byte relativo do registro no arquivo FILESEQNO.
‘ROWID’
(Válido para Oracle) Retorna o id da linha do registro.
‘RSN’
Retorna o número de sequência do registro na transação. Este valor nem sempre gera valores que aumentam exclusivamente e não deve ser usado para ordenar operações. Para solicitar transações ou operações do DML em uma transação, use as informações descritas no MOS 2036276.1.
‘TIMESTAMP’
Retorna o timestamp do registro.
Exemplo:
REC-TIMESTAMP: 2017-10-31 06:21:07 REC-TIMESTAMP-PRECISE: 2017-10-31 06:21:07.478064
'DBENVIRONMENT' , '<database_info>'
Válido para Extrair e Replicar.
Use a opção DBENVIRONMENT de @GETENV para retornar informações de ambiente global para um banco de dados.
Sintaxe
@GETENV ('DBENVIRONMENT', {'DBNAME'|'DBUNIQUENAME'|'DBVERSION'|'DBUSER'|'SERVERNAME'})
‘DBNAME’
Retorna o nome do banco de dados.
‘DBUNIQUENAME’
Retorna o valor do parâmetro DB_UNIQUE_NAME do banco de dados ao qual o processo está conectado. O banco de dados de origem no caso do Extract e o banco de dados de destino do Replicat. Esse valor será definido somente para bancos de dados Oracle.
‘DBVERSION’
Retorna a versão do banco de dados.
‘DBUSER’
Retorna o usuário de log-in do banco de dados. Observe que o SQL Server não registra o usuário ID.
‘SERVERNAME’
Retorna o nome do servidor.
'TRANSACTION' , '<transaction_info>'
Válido para o Extract.
Use a opção TRANSACTION do @GETENV para retornar informações sobre uma transação de origem. Esta opção é válida para o processo Extract, mas não para bombear Extract e Replicat.
Sintaxe
@GETENV ('TRANSACTION', {'TIMESTAMP_PRECISE'|'TRANSACTIONID'|'XID'|'CSN'|'TIMESTAMP'|'NAME'|
'USERNAME'|'PLANNAME' | 'LOGBSN' | 'REDOTHREAD' | 'PROGRAMNAME' | 'CLIENTIDENTIFIER' | 'MACHINENAME' | 'USERNAME')
Observação: Não use TIMETSAMP_PRECISE ou TIMESTAMP para ordenar operações. Em vez dele, use este valor: @COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO"))*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))
‘TIMESTAMP_PRECISE’
Esta opção é válida para a Extração. Use o TIMESTAMP_PRECISE retorna o timestamp do ano para microssegundos. No entanto, dependendo do banco de dados, o valor pode ser em milissegundos com 0 microssegundos
‘TRANSACTIONID’ |
‘XID’ |
Retorna o número da transação ID. É possível usar TRANSACTIONID ou XID. As transações ID e CSN estão associadas ao primeiro registro de cada transação e são armazenadas como tokens no registro de trilha. Para cada transação ID, há uma CSN associada. Os tokens de transação ID não têm preenchimento zero em nenhuma plataforma, porque nunca são avaliados como valores relativos. Eles só são avaliados quanto à correspondência ou não correspondência. Observe que na trilha, o token de transação ID é mostrado como TRANID.
‘CSN’
Retorna o número de sequência de commit (CSN). O CSN não é preenchido com zero quando retornado para esses bancos de dados: Oracle, Db2 LUW e Db2 z/OS. Para todos os outros bancos de dados suportados, o CSN é preenchido com zero.
Observe que na trilha, o token CSN é mostrado como LOGCSN. Consulte o valor do ambiente TRANSACTIONID | XID para obter informações adicionais sobre o token CSN.
Para obter mais informações sobre o CSN, consulte Número de Sequência de Commit (CSN).
‘TIMESTAMP’
Retorna o timestamp de commit da transação.
‘NAME’
Retorna o nome da transação, se disponível.
‘USERNAME’
(Oracle) Retorna o nome de usuário Oracle do usuário do banco de dados que fez commit da última transação. Isso não é válido para bombear Extract e/ou Replicat.
‘PLANNAME’
(Db2 z/OS) Retorna o nome do plano sob o qual a transação atual foi executada originalmente. O nome do plano é incluído na unidade inicial do registro de log de recuperação.
‘LOGBSN’
Retorna o número de sequência inicial (BSN) no log de transações. O BSN é o número de sequência nativo que identifica o início da transação não confirmada mais antiga que é mantida na memória Extract. Por exemplo, em um banco de dados Oracle, o BSN seria expresso como um SCN (System Change Number). O BSN corresponde ao valor atual do ponto de verificação de E/S do Extract. Esse valor pode ser obtido da trilha pelo Replicat quando @GETENV ('TRANSACTION', 'LOGBSN') for usado. Esse valor também pode ser obtido com o comando INFO REPLICAT com a opção DETAIL. A finalidade de obter o BSN do Replicat é obter um ponto de recuperação para o Extract caso uma falha no sistema ou corrupção no sistema de arquivos torne o arquivo de checkpoint do Extract inutilizável.
‘REDOTHREAD’
Retorna o número do thread de uma extração de nó RAC; em extrações de nó não RAC, o valor é sempre 1. Para data pump e Replicat, o id do thread usado pela captura de Extract de um nó RAC é retornado; em não RAC, @GETENV() retorna um erro. O logdump mostra o token, ORATHREADID, na seção de token se a transação for capturada pelo Extract em um nó RAC.
‘PROGRAMNAME’
Nome do programa ou aplicativo que iniciou a transação ou sessão.
‘CLIENTIDENTIFIER’
Valor definido usando DBMS_SESSION_.set_identifier().
‘MACHINENAME’
Nome do host, da máquina ou do servidor em que o banco de dados está sendo executado
‘USERNAME’
Nome do usuário de log-in no banco de dados.
Exemplo:
DB2 zOS:
TRANS-TIMESTAMP: 2017-10-31 06:21:07
TRANS-TIMESTAMP-PRECISE: 2017-10-31 06:21:07.485792
'OSVARIABLE' , '<variable>'
Válido para Extrair e Replicar.
Use a opção OSVARIABLE de @GETENV para retornar o valor da string de uma variável de ambiente do sistema operacional especificada.
Sintaxe
@GETENV ('OSVARIABLE', '<variable>')
<'variable'>
O nome da variável. A pesquisa é uma correspondência exata do nome da variável fornecido. Por exemplo, o comando UNIX grep retornaria todas as seguintes variáveis, mas @GETENV ('OSVARIABLE', 'HOME') retornaria apenas o valor para HOME:
ANT_HOME=/usr/local/ant
JAVA_HOME=/usr/java/j2sdk1.4.2_10
HOME=/home/judyd
ORACLE_HOME=/rdbms/oracle/ora1022i/64
A pesquisa fará distinção entre maiúsculas e minúsculas se o sistema operacional suportar distinção entre maiúsculas e minúsculas.
'TLFKEY' , SYSKEY, '<unique_key>'
Válido para Extrair e Replicar.
Use a opção TLFKEY do @GETENV para associar uma chave exclusiva a registros TLF/PTLF no aplicativo Base24 da ACI. A chave de 64 bits é composta pelos seguintes itens concatenados:
-
O número de segundos desde 2000.
-
O número do bloco do registro no bloco TLF/PTLF multiplicado por dez.
-
O nó especificado pelo usuário (deve estar entre 0 e 255).
Sintaxe
@GETENV ('TLFKEY', SYSKEY, <unique_key>)
SYSKEY, <unique_key>
O número do nó NonStop do arquivo TLF/PTLF de origem. Não coloque este elemento de sintaxe entre aspas.
Exemplo:
GETENV ('TLFKEY', SYSKEY, 27)
'INFORMAÇÕES DO BANCO DE DADOS ORIGINADO'
Essa opção tem os campos DBUNIQUENAME e DBNAME. Os campos do SOURCEDATABASEINFO são diferentes dos campos do GGFILEHEADER. Em primeiro lugar, seu desempenho é melhor em comparação com os campos do GGFILEHEADER, portanto, o uso do SOURCEDATABASEINFO é uma alternativa melhor para cenários em que o desempenho é crítico. Em segundo lugar, quando o token DBUNIQUENAME não estiver disponível no cabeçalho da trilha, seja porque o arquivo de trilha foi gerado por uma versão mais antiga do Oracle GoldenGate ou porque o banco de dados não é Oracle, @GETENV tratará o DBUNIQUENAME como sinônimo de DBNAME. Nesse caso, uma mensagem de aviso será gravada no arquivo de relatório, na primeira vez que um cabeçalho sem o token for lido.