REGISTER EXTRACT

Esse comando se aplica ao Oracle AI Database e PostgreSQL.

Oracle AI Database

Este comando registra um grupo Extract principal para ativar o modo de captura integrado e especificar opções para Extract integrado de um banco de dados contêiner multitenant

Para cancelar o registro do grupo de Extract no banco de dados, use o comando UNREGISTER EXTRACT.

Sintaxe:

REGISTER EXTRACT group-name
          ( , DATABASE
          ( [ CONTAINER container-list |
              ADD   CONTAINER container-list |
              DROP  CONTAINER container-list ]
            [ SCN   scn   ]
            [ SHARE ( AUTOMATIC | group-name | NONE ) ]
            [ [NO]OPTIMIZED ]
          ) )

Lista de contêineres é uma lista separada por vírgulas de nomes de PDB, por exemplo (pdbeast, pdbwest); ou nomes de PDB curinga, por exemplo (pdb* or pdb?); ou ambos, por exemplo (cdbnorth, pdb*). Os curingas aceitos são ? e *.

A opção OPTIMIZED melhora a inicialização rápida de Extract. O valor padrão é NOOPTIMIZED. A opção OPTIMIZED só afeta uma configuração de não multilocatário upstream.

DATABASE [
CONTAINER (container[, ...]) |
ADD CONTAINER (container[, ...]) |
DROP CONTAINER (container[, ...])
]

Válido para Oracle.

Sem opções, DATABASE ativa a captura integrada de um banco de Dados não CDB para o grupo de Extração. Nesse modo, o Extract se integra ao servidor de logmining do banco de dados para receber dados de alteração na forma de registros de alteração lógicos (LCR). O Extract não lê os redo logs. O Extract executa o processamento de captura, a transformação e outros requisitos. A filtragem de DML é executada pelo servidor de logmining.

Antes de usar REGISTER EXTRACT com DATABASE, use o comando DBLOGIN USERIDALIAS para todos os processos Extract com os privilégios concedidos usando o procedimento dbms_goldengate_auth.grant_admin_privilege. Se você tiver uma configuração de downstream, também deverá emitir o comando MININGDBLOGIN. Se o banco de dado de origem que você está registrando for um banco de Dados CDB e Extract extrairá os dados, grant_admin_privilege deverá ser chamado com o parâmetro CONTAINER=>'ALL.

Depois de usar REGISTER EXTRACT, use ADD EXTRACT com a opção INTEGRATED TRANLOG para criar um grupo de Extract com o mesmo nome.

CONTAINER (container[, ...])

Aplica o registro a uma lista de um ou mais bancos de dados plugáveis (contêineres) de um banco de dados contêiner (CDB) multitenant. Especifique um ou mais bancos de dados plugáveis como uma lista delimitada pela vírgula entre parênteses, por exemplo: CONTAINER (pdbeast, pdbwest). Se você listar os bancos de dados plugáveis, eles deverão existir no banco de dados. Você também pode especificar os bancos de dado plugáveis usando os curingas * e ?. Por exemplo, CONTAINER (pdb*).

ADD CONTAINER (container[, ...])

Adiciona o banco de dados plugável especificado a uma configuração de captura do Extract existente. Especifique um ou mais bancos de dados plugáveis como uma lista delimitada pela vírgula entre parênteses ou usando os curingas * e ?. Por exemplo: ADD CONTAINER (pdbeast, pdbwest). Antes de emitir REGISTER EXTRACT com essa opção, interrompa o grupo de processo Extract.

No sistema Oracle, não há suporte para a adição de contêineres em um SCN em particular ou um Extract existente.

DROP CONTAINER (container[, ...])

Elimina o banco de dados plugável especificado de uma configuração de captura do Extract existente. Especifique um ou mais bancos de dados plugáveis como uma lista delimitada pela vírgula entre parênteses ou usando os curingas * e ?. Por exemplo,DROP CONTAINER (pdbeast, pdbwest).

O registro do Extract após a execução da opção drop container não acontece totalmente até que o Extract tenha sido iniciado e leia a transação submetida a commit a partir de um banco de Dados plugável eliminado, que é maior que o SCN de checkpoint de Extract. O Extract então elimina totalmente os contêineres e, em seguida, faz shutdown com uma mensagem.

Antes de executar REGISTER EXTRACT com essa opção, interrompa o grupo de Extract.

SCN system_change_number

Registra o Extract para começar a capturar um número de alteração do sistema (SCN) específico no passado. Sem essa opção, a captura começa no momento em que o REGISTER EXTRACT é emitido. O SCN especificado deve corresponder ao SCN inicial de uma operação de criação de dicionário em um arquivo de log. É possível emitir a seguinte consulta para localizar todos os valores SCN válidos dos dumps de dicionário no nível do CDB:

SELECT first_change#
   FROM v$archived_log
   WHERE dictionary_begin = 'YES' AND
      standby_dest = 'NO' AND
      name IS NOT NULL AND
      status = 'A';

No entanto, essa consulta não funciona ao registrar uma Extração por PDB. Para identificar o SCN inicial dos dumps de dicionário disponíveis para um PDB específico, podemos seguir estas etapas:

  1. Conecte-se ao PDB.

  2. Execute o comando show con_id para obter o identificador do PDB.

  3. Execute a seguinte consulta para listar todos os dumps de dicionário disponíveis em ordem decrescente:

    SELECT DATE_OF_BUILD, START_SCN FROM dba_logmnr_dictionary_buildlog WHERE CONTAINER_ID = PDB identifier ORDER BY DATE_OF_BUILD DESC;

Quando usado sozinho, o valor do SCN é o SCN inicial da operação de criação de dicionário em um arquivo de log.

Quando usado em conjunto com SHARE AUTOMATIC ou SHARE extract_name, o SCN especificado é o start_scn para a sessão da captura e tem as seguintes restrições:

{SHARE [ AUTOMATIC | extract | NONE]}

Válido para Oracle.

Registra o Extract para retornar a uma criação de dicionário de dados do LogMiner existente, com um SCN especificado criando um clone. Isso permite a criação mais rápida de Extracts aproveitando as criações de dicionário existentes.

SHARE não pode ser usado em um CDB.

Há suporte para os seguintes comandos:

REGISTER EXTRACT extract database SCN #### SHARE AUTOMATIC
REGISTER EXTRACT extract database SCN #### SHARE extract
REGISTER EXTRACT extract database SHARE NONE
REGISTER EXTRACT extract database SCN #### SHARE NONE

Ou

REGISTER EXTRACT extract database SHARE NONE
REGISTER EXTRACT extract database SCN #### SHARE NONE

Por outro lado, não há suporte para os seguintes comandos em uma configuração downstream:

REGISTER EXTRACT extract DATABASE SHARE AUTOMATIC
REGISTER EXTRACT extract DATABASE SHARE extract

AUTOMATIC

Clona da captura mais próxima existente. Se nenhum candidato a clone adequado for encontrado, um novo build será criado.

extract

Clona da sessão de captura associada para o Extract especificado. Se isso não for possível, ocorrerá um erro de não conclusão do registro.

NONE

Não clona nem cria um novo build; esse é o padrão.

Em uma configuração downstream, a cláusula SHARE deve ser usada em conjunto com a cláusula SCN ao se registrar para o Extract.

PostgreSQL

Esse comando cria um slot da replicação no banco de dados de origem conectado e garante que o banco de dados PostgreSQL não expurgue o log de transações até que o slot da replicação seja movido ou removido. O comando REGISTER EXTRACT deve ser executado antes da execução do comando ADD EXTRACT.

Você deve estabelecer conexão com a instância do banco de dados PostgreSQL usando DBLOGIN USERIDALIAS antes de registrar o Extract.

Você também pode registrar um Extract na interface Web do Oracle GoldenGate Administration Service. Para obter detalhes, consulte Registrar Extract para PostgreSQL na Documentação de Microsserviços do Oracle GoldenGate.

Você também pode configurar opções de streaming para o PostgreSQL, usando o parâmetro TRANLOGOPTIONS STREAMINGOPTIONS, para fornecer parâmetros durante a inicialização da replicação. Para obter detalhes, consulte TRANLOGOPTIONS.

Observação: A partir da release 21c (21.3) do Oracle GoldenGate, não é obrigatório informar a database_name.

Sintaxe:

REGISTER EXTRACT group_name

ou

REGISTER EXTRACT group_name PGPLUGINTYPE pgoutput;

Observação: Para se registrar explicitamente no plug-in pgoutput, você precisa especificar o tipo de plug-in pgoutput no comando. Se você não selecionar o plug-in pgoutput, o tipo de plug-in padrão, test_decoding, será definido.

ou

REGISTER EXTRACT group_name MIGRATE replication_slot_name

ou

REGISTER EXTRACT group_name with DATABASE database_name

ou

group_name

O nome do grupo Extract que tem de ser registrado. Não use caractere curinga.

MIGRATE replication_slot_name

Válido para PostgreSQL.

No caso do upgrade do Oracle GoldenGate, em que o diretório de instalação é diferente para os processos de Extract, é necessário REGISTER EXTRACT com a opção MIGRATE.

O replication_slot_name é o nome de qualquer slot de replicação existente presente no banco de dados. Esse comando cria um novo slot para replicação copiando as informações do LSN presentes no slot original replication_slot_name. O slot de replicação copiado começa no mesmo LSN do original.

Observação: O slot de replicação original deve estar presente no mesmo banco de dados do qual queremos criar um novo slot.

PGPLUGINTYPE test_decoding | pgoutput

Válido para PostgreSQL.

Esta opção foi adicionada para permitir a seleção do plug-in de decodificação lógica para PostgreSQL. Você pode selecionar test_decoding ou pgoutput. Por padrão, o Extract do CDC é registrado usando o tipo de plug-in test_decoding. Portanto, se você não especificar pgplugintype como pgoutput, o test_decoding será usado automaticamente.

Exemplos


REGISTER EXTRACT exte LOGRETENTION

REGISTER EXTRACT exte DATABASE

REGISTER EXTRACT exte DATABASE CONTAINER (pdbeast, pdbwest, pdbsouth)

REGISTER EXTRACT exte DATABASE ADD CONTAINER (pdbnorth)

REGISTER EXTRACT exte DATABASE DROP CONTAINER (pdbnorth)

REGISTER EXTRACT exte DATABASE SCN 136589

O SCN inicial da criação do dicionário é 136589.


REGISTER EXTRACT exte DATABASE SCN 67000 SHARE extw

O SCN inicial válido, 67000 neste caso; ele não é necessariamente o SCN atual.


REGISTER EXTRACT exte DATABASE CONTAINER (pdbeast, pdbeast, pdbsouth) SCN 136589

Para PostgreSQL com o tipo de plug-in especificado como PGOUTOPUT:

REGISTER EXTRACT exte PGPLUGINTYPE pgoutput WITH DATABASE hr