OPÇÕES DE EXTRAÇÃO
Válido Para
Extrair
Descrição
Use o parâmetro FETCHOPTIONS para controlar determinados aspectos da forma como o Oracle GoldenGate extrai dados nas seguintes circunstâncias:
-
Quando o registro da transação não contém informações suficientes para que o Extract reconstrua uma operação de atualização.
-
Quando o Oracle GoldenGate deve extrair um valor de coluna como resultado de uma cláusula
MISSINGCOLSde uma instruçãoTABLE.
FETCHOPTIONS é específico da tabela. Uma instrução FETCHOPTIONS se aplica a todas as instruções TABLE subsequentes até que uma instrução FETCHOPTIONS diferente seja encontrada.
As propriedades de extração padrão são adequadas para a maioria das instalações.
Padrão
Ignorar linhas ausentes e continuar o processamento
Sintaxe
FETCHOPTIONS
[, FETCHPKUPDATECOLS]
[, MISSINGCOLS]
[, INCONSISTENTROW <action>]
[, MAXFETCHSTATEMENTS <number>]
[, MISSINGROW <action>]
[, NOFETCH]
[, SUPPRESSDUPLICATES]
[, USEKEY | NOUSEKEY]
[, USELATESTVERSION | NOUSELATESTVERSION]
[, USESNAPSHOT | NOUSESNAPSHOT]
[, USEROWID | NOUSEROWID]
FETCHPKUPDATECOLS
Extrai todas as colunas indisponíveis quando uma chave primária é atualizada. Esta opção fica desativada por default. Quando desativada, a extração de coluna é executada de acordo com outras opções FETCHOPTIONS que estão ativadas.
Quando ativado, ele só entra em vigor durante uma atualização para uma coluna de chave primária. Os resultados são iguais ao uso de (*) na instrução TABLE. As colunas LOB são incluídas na extração.
Use esse parâmetro ao usar HANDLECOLLISIONS. Quando o Replicat detectar uma atualização faltando, todas as colunas estarão disponíveis para transformar a atualização em uma inserção.
MISSINGCOLS
Extrai as colunas ausentes das operações de atualização e exclusão, incluindo as colunas LOB. Esta opção só é válida para o Oracle AI Database. Ele pode impactar negativamente o banco de dados e o desempenho do Extract devido a consultas adicionais para extrair os dados. Especialmente se houver valores LOB grandes que precisam ser extraídos e gravados na trilha.
Definir este parâmetro é o mesmo que definir os seguintes parâmetros:
MISSINGCOLS(*) in the TABLE statement
NOCOMPRESSDELETES FETCHMISSINGCOLS
GETUPDATEBEFORES
NOCOMPRESSUPDATES
LOGALLSUPCOLS
No entanto, a definição de FETCHOPTIONS MISSINGCOLS está em conflito com os seguintes parâmetros:
FETCHOPTIONS NOFETCH
FETCHOPTIONS FETCHPKUPDATECOLS
COMPRESSDELETES
COMPRESSUPDATES
GETUPDATEBEFORES
LOGALLSUPCOLS
INCONSISTENTROW <action>
Indica que a linha ID extraiu dados de coluna com sucesso, mas a chave não correspondeu. A linha ID foi reciclada ou ocorreu uma atualização de chave primária após essa operação (e antes da extração).
<action> pode ser uma das seguintes:
ALLOW
Permita a condição e continue o processamento.
IGNORE
Ignore a condição e continue o processamento. Este é o padrão.
REPORT
Reporte a condição e o conteúdo da linha para o arquivo de descarte, mas continue processando a linha parcial.
DISCARD
Descarte os dados e não processe a linha parcial.
ABEND
Descarte os dados e saia do processamento.
MAXFETCHSTATEMENTS <number>
Controla o número máximo permitido de consultas preparadas que podem ser usadas pelo Extract para extrair dados de linha de um banco de dados de origem. Os dados extraídos são usados quando não há informações suficientes disponíveis para construir uma instrução SQL lógica a partir de um registro de log de transação. As consultas são preparadas e armazenadas em cache, conforme necessário. Quando o valor definido com MAXFETCHSTATEMENTS é atingido, a consulta mais antiga é substituída pela mais recente. O valor desse parâmetro controla o número de cursores abertos mantidos pelo Extract somente para consultas de extração. Os cursores adicionais podem ser usados pelo Extract para outros fins, como os necessários para procedimentos armazenados. Este parâmetro só é válido para o Oracle AI Database. O padrão é 100 instruções. Certifique-se de que o banco de dados possa suportar o número de cursores especificados, mais os cursores usados por outros aplicativos e processos.
MISSINGROW <action>
Fornece uma resposta quando o Oracle GoldenGate não consegue localizar uma linha a ser extraída, fazendo com que apenas parte da linha (os valores alterados) fique disponível para processamento. Normalmente, uma linha não pode ser localizada porque foi excluída entre o momento em que o registro de alteração foi criado e quando a extração foi acionada ou porque a imagem da linha necessária era mais antiga que a especificação de retenção de undo.
<action> pode ser uma das seguintes:
ALLOW
Permita a condição e continue o processamento. Este é o padrão.
IGNORE
Ignore a condição e continue o processamento.
REPORT
Reporte a condição e o conteúdo da linha para o arquivo de descarte, mas continue processando a linha parcial.
DISCARD
Descarte os dados e não processe a linha parcial.
ABEND
Descarte os dados e saia do processamento.
NOFETCH
Impede que o processo Extract extraia a coluna do banco de dados. Por padrão, essa opção está desativada. O Extract grava o registro na trilha, mas insere um token que indica que a coluna está ausente.
SUPPRESSDUPLICATES
Válido para Oracle. Evita que os tablespaces de destino se tornem excessivamente grandes quando são feitas atualizações nas colunas LOB. Por padrão, SUPPRESSDUPLICATES é definido como desativado. Por exemplo, após a replicação, um tablespace de origem de 232 MB se torna um tablespace de destino de 7.52GB.
USEKEY |
NOUSEKEY |
Determina se o Oracle GoldenGate usa ou não a chave primária para localizar a linha a ser extraída.
Se USEKEY e USEROWID forem especificados, o ROWID terá prioridade para acesso mais rápido ao registro. USEROWID é o padrão.
USELATESTVERSION |
NOUSELATESTVERSION |
Válido para Oracle. Use com USESNAPSHOT. O padrão, USELATESTVERSION, direciona o Extract para extrair dados da tabela de origem se ele não puder extrair do tablespace de undo. NOUSELATESTVERSION direciona o Extract para ignorar a condição se a extração do snapshot falhar e continuar o processamento.
Para fornecer uma ação alternativa se a extração de um snapshot não for bem-sucedida, use a opção MISSINGROW.
USESNAPSHOT |
NOUSESNAPSHOT |
Válido para Oracle. O padrão, USESNAPSHOT, faz o Extract usar o mecanismo do Oracle Flashback para extrair o snapshot correto de dados necessário para reconstruir determinadas operações que não podem ser totalmente capturadas do registro redo. NOUSESNAPSHOT faz com que o Extract extraia os dados necessários da tabela de origem em vez dos logs de flashback.
USEROWID |
NOUSEROWID |
Válido para Oracle. Determina se o Oracle GoldenGate usa ou não a linha ID para localizar a linha a ser extraída.
Se USEKEY e USEROWID forem especificados, o ROWID terá prioridade para acesso mais rápido ao registro. USEROWID é o padrão.
Exemplos
Exemplo 1
A seguir, o Extract é direcionado para extrair dados usando o Flashback Query e para ignorar a condição e continuar processando o registro se a extração falhar.
FETCHOPTIONS USESNAPSHOT, NOUSELATESTVERSION
Exemplo 2
MAXFETCHSTATEMENTS 150
Exemplo 3
Os itens a seguir direcionam o Extract para extrair dados usando o Flashback Query e fazem com que o Extract seja encerrado se os dados não estiverem disponíveis.
FETCHOPTIONS USESNAPSHOT, NOUSELATESTVERSION, MISSINGROW ABEND