ADD SCHEMATRANDATA

Válido para Oracle.

Use ADD SCHEMATRANDATA para ativar o log complementar no nível do esquema para uma tabela. ADD SCHEMATRANDATA atua em todas as tabelas atuais e futuras em um determinado esquema para registrar automaticamente um superconjunto de chaves disponíveis necessárias para a identificação da linha pelo Oracle GoldenGate.

Observação: O Oracle GoldenGate 23.6 não suporta a ativação da replicação lógica no nível do esquema para Views de Dualidade Relacional JSON (JSON DV) e Tabelas de Coleta JSON (JCTs).

Para executar ADD SCHEMATRANDATA em um esquema no PDB de um banco de dado multitenant, é necessário fazer log-in em PDB para emitir o comando.

ADD SCHEMATRANDATA é válido para Extract e faz o seguinte:

Por padrão, ADD SCHEMATRANDATA registra as colunas-chave de uma tabela na seguinte ordem de prioridade:

  1. Chave principal

  2. Na ausência de uma chave principal, todas as chaves exclusivas da tabela, incluindo as desativadas, inutilizáveis ou invisíveis. As chaves exclusivas que contêm colunas de membros ADT também são registradas. Só não são registradas as chaves exclusivas em colunas virtuais (índices baseados em função).

  3. Se nenhuma das anteriores existir, todas as colunas escalares da tabela serão registradas. (OIDs de linha gerados pelo sistema são sempre registrados em log.)

O ADD SCHEMATRANDATA também suporta os requisitos condicionais ou incondicionais de log para usar o Replicat integrado.

Use o ADD SCHEMATRANDATA nos seguintes casos:

Requisitos de Log no Nível do Banco de Dados para UsingADD SCHEMATRANDATA

A Oracle recomenda colocar o banco de dados de origem no modo de registro em log forçado e ativar o registro em log complementar mínimo no nível do banco de dados ao usar o Oracle GoldenGate. Isso adiciona informações de cadeias de linhas, se houver alguma, ao redo log para operações de atualização.

Considerações Adicionais sobre UsingADD SCHEMATRANDATA

Sintaxe

ADD SCHEMATRANDATA schema
{
[ALLOWNONVALIDATEDKEYS]
[NOSCHEDULINGCOLS | ALLCOLS]}
[NOVALIDATE]
[PARTIALJSON]
[PREPARECSN  {WAIT | LOCK | NOWAIT | NONE}]

schema

O esquema cujas informações de chave complementar você deseja registrar em log. Não use caractere curinga. Para emitir ADD SCHEMATRANDATA para esquemas em mais do que um banco de dado plugável de um banco de Dados contêiner multitenant, faça log-on em cada banco de dados plugável separadamente com DBLOGIN e emita ADD SCHEMATRANDATA. No conatiner raiz, você pode adicionar schematrandata com o prefixo de contêiner ADD SCHEMATRANDATA [pdb_name].schema

Se você executar o comando do cdb$root, certifique-se de definir também o seguinte privilégio de usuário no banco de dados:

ALTER USER userID SET CONTAINER_DATA = ALL  CONTAINER = CURRENT;

ALLOWNONVALIDATEDKEYS

Ela inclui as chaves primárias NON VALIDATED e NOT VALID no log complementar. Essas chaves substituem os critérios de seleção de chave normais usados pelo Oracle GoldenGate. Se o parâmetro GLOBALS ALLOWNONVALIDATEDKEYS estiver sendo usado, ADD SCHEMATRANDATA será executado com ALLOWNONVALIDATEDKEYS, seja especificado ou não. Por padrão, as chaves primárias NON VALIDATED e NOT VALID não são registradas. Consulte o parâmetro GLOBALS ALLOWNONVALIDATEDKEYS.

NOSCHEDULINGCOLS | ALLCOLS

Essas opções controlam o registro em log complementar de um banco de dados Oracle de destino. Você pode usar essas opções juntas, embora a última seja usada. Por exemplo, com o comando ADD SCHEMATRANDATA oggadm_ext ALLCOL NOSCHEDULINGCOLS, a opção NOSCHEDULINGCOLS seria usada.

NOSCHEDULINGCOLS

Desativa o registro em log das colunas de programação. Por padrão, ADD SCHEMATRANDATA permite o registro incondicional da chave primária e o registro complementar condicional de todas as chaves exclusivas e chaves estrangeiras de todas as tabelas atuais e futuras no esquema fornecido. O registro em log não condicional força os valores de chave principal no log quer a chave tenha sido ou não alterada na operação atual. O log condicional registrará todos os valores de coluna de uma chave estrangeira ou exclusiva se pelo menos um deles tiver sido alterado na operação atual. A chave principal, as chaves exclusivas e as chaves estrangeiras do Replicat integrado devem todas estar disponíveis ao servidor de entrada para cálculo de dependências.

Se você estiver ativando auto_capture, não use essa opção. Isso permitirá que as tabelas deste esquema sejam capturadas automaticamente, a menos que a tabela seja explicitamente excluída/desativada para replicação (por exemplo, através do TABLEEXCLUDE, DELETE TRANDATA ou ALTER TABLE DISABLE LOGICAL REPLICATION DDL).

ALLCOLS

Ativa o registro em log complementar não condicional de todas as colunas suportadas, de chave e não de chave, para todas as tabelas atuais e futuras, no esquema em questão. Essa opção permite o registro em log das chaves exigidas para calcular dependências, além das colunas exigidas para filtragem, resolução de conflito ou outras finalidades. As colunas como LOB, LONG e ADT não estão incluídas.

NOVALIDATE

Válido para todas as bases de dados suportadas por ADD SCHEMATRANDATA.

Suprime informações adicionais sobre a tabela que está sendo tratada sendo processada por ADD SCHEMATRANDATA. Por padrão, esta opção está ativada. O processamento de informações adicionais cria um intervalo de tempo na resposta do comando, de modo que essa opção pode ser usada para aumentar o tempo de resposta.

PARTIALJSON

Válido para Oracle.

Extrai atualizações JSON parciais no nível do esquema. Se ativado, o redo incluirá registros JSON parciais.

Consulte também TRANLOGOPTIONS parâmetro FETCHPARTIALJSON.

PREPARECSN {WAIT | LOCK | NOWAIT | NONE}

Válido no Oracle para DML e DDL.

Prepara automaticamente as tabelas na origem para que o arquivo de dump de Exportação do Oracle Data Pump inclua os CSNs de Instanciação. O Replicat usa o CSN de instanciação por tabela definido pelo Oracle Data Pump (na importação) para filtrar os registros da trilha. No destino, a importação do Data Pump preenche as tabelas e views do sistema com SCNs de instanciação usando o parâmetro DBOPTIONS ENABLE_INSTANTIATION_FILTERING para ativar a filtragem de instanciação em nível de tabela.

WAIT

Aguarde qualquer transação em andamento e prepare a instanciação da tabela.

LOCK

Coloque um bloqueio na tabela (para preparar a instanciação da tabela).

NOWAIT

Comportamento padrão, a preparação da instanciação é feita imediatamente.

NONE

Nenhuma preparação de instanciação ocorre.

Exemplo


A seguir, é possível efetuar log complementar para o esquema hr.

ADD SCHEMATRANDATA hr

O exemplo a seguir registra todas as colunas de chave e não chave suportadas para todas as tabelas atuais e futuras no esquema chamado hr.

ADD SCHEMATRANDATA hr ALLCOLS

O exemplo a seguir suprime o processamento de informações adicionais de tabela.

ADD SCHEMATRANDATA hr NOVALIDATE