Transmita dados de bases de dados Oracle

Esta secção contém informações sobre:

  • O comportamento da forma como o Datastream processa os dados extraídos de uma base de dados Oracle de origem
  • As versões da base de dados Oracle que o Datastream suporta
  • Uma vista geral de como configurar uma base de dados Oracle de origem para que os dados possam ser transmitidos a partir da mesma para um destino
  • Limitações conhecidas da utilização da base de dados Oracle como origem

Comportamento

O fluxo de dados suporta dois métodos de extração de alterações aos dados dos ficheiros de registo de refazer online: o leitor de registo binário da Oracle (Pré-visualização) e o Oracle LogMiner.

Com o método de leitura de registos binários (pré-visualização), observa-se o seguinte comportamento:

  • Se houver um atraso de leitura ao extrair as alterações dos ficheiros de registo online, o fluxo de dados extrai as alterações dos ficheiros de registo arquivados.

  • O fluxo de dados replica apenas as alterações confirmadas no destino. As transações não confirmadas ou revertidas não são replicadas.

  • O leitor binário suporta a replicação de colunas do Oracle VARCHAR2 com mais de 4000 carateres.

O fluxo de dados também suporta a funcionalidade Oracle LogMiner para expor alterações aos dados. O método tem o seguinte comportamento:

  • Pode selecionar todos os esquemas ou esquemas específicos de uma determinada base de dados, bem como todas as tabelas dos esquemas ou tabelas específicas.
  • Todos os dados do histórico são replicados.
  • Todas as alterações da linguagem de manipulação de dados (DML), como inserções, atualizações e eliminações das bases de dados e tabelas especificadas, são replicadas.
  • O fluxo de dados replica as alterações confirmadas e, em alguns casos, não confirmadas no destino. O fluxo de dados lê alterações não consolidadas. No caso de uma reversão, os registos de saída do fluxo de dados também incluem a operação oposta. Por exemplo, se existir uma operação INSERT revertida, os registos de saída também contêm uma operação DELETE correspondente. Neste caso, o evento aparece como um evento DELETE com apenas o ROWID.

Repreenchimento com base em ROWID

No Oracle, ROWID é uma pseudocoluna que armazena identificadores exclusivos para linhas numa tabela. O fluxo de dados usa os valores ROWID para as respetivas operações de preenchimento. Por este motivo, recomendamos que não execute ações que possam alterar os valores ROWID na base de dados Oracle de origem até que a operação de preenchimento termine.

As ações que podem alterar os valores ROWID incluem:

  • Movimento físico das linhas:

    • Operações de exportação e importação: quando exporta uma tabela e, em seguida, a importa novamente, a localização física das linhas pode mudar, o que resulta em novos valores ROWID.
    • ALTER TABLE (...) MOVE: mover uma tabela para um tablespace diferente pode alterar o armazenamento físico e originar alterações ROWID.
    • ALTER TABLE (...) SHRINK SPACE: este comando comprime a tabela, movendo potencialmente linhas e afetando os respetivos valores ROWID.
    • Operações de partição: dividir, unir ou mover partições pode alterar o posicionamento físico das linhas e os respetivos valores ROWID.
  • Operações de reversão:

    • FLASHBACK TABLE: restaurar uma tabela para um estado anterior envolve eliminar e reinserir linhas, criando assim novos valores ROWID.
    • FLASHBACK_TRANSACTION_QUERY: semelhante a FLASHBACK TABLE. A reversão de uma transação pode causar alterações ROWID se as linhas tiverem sido eliminadas ou atualizadas na transação.

Versões

O Datastream suporta as seguintes versões da base de dados Oracle:

  • Oracle 11g, versão 11.2.0.4 (suportado apenas com o método CDC do Logminer)
  • Oracle 12c, versão 12.1.0.2
  • Oracle 12c, versão 12.2.0.1
  • Oracle 18c
  • Oracle 19c
  • Oracle 21c

O Datastream suporta os seguintes tipos de base de dados Oracle:

  • Com alojamento próprio nas instalações ou em qualquer fornecedor de nuvem
  • Amazon RDS for Oracle
  • Oracle Cloud
  • Oracle Exadata
  • Oracle RAC
  • Base de dados de reserva do Oracle Active Data Guard

Configuração

Para configurar uma base de dados Oracle de origem para que os dados da mesma possam ser transmitidos para um destino, tem de configurar a base de dados para conceder acesso, configurar o registo e definir uma política de retenção.

Consulte o artigo Configure uma base de dados Oracle de origem para saber como configurar esta base de dados para que o Datastream possa extrair dados da mesma para um destino.

Limitações conhecidas

As limitações conhecidas da utilização da base de dados Oracle como origem incluem:

  • Os streams estão limitados a 10 000 tabelas. Se um stream incluir mais de 10 000 tabelas, pode ocorrer um erro.
  • A stream de dados suporta a arquitetura multi-inquilino da Oracle (CDB/PDB). No entanto, só pode replicar uma única base de dados conectável numa stream.
  • A base de dados autónoma da Oracle não é suportada.
  • Para tabelas que não têm uma chave principal, o Datastream usa o ROWID da linha para realizar uma operação de união no lado do consumidor. Tenha em atenção que o ROWID pode não ser único. Se eliminar e reinserir uma linha com a utilidade de exportação/importação da Oracle, por exemplo, o ROWID da linha pode mudar. Se eliminar uma linha, o Oracle pode reatribuir o respetivo ROWID a uma nova linha inserida posteriormente.
  • As tabelas organizadas por índice (IOTs) não são suportadas.
  • As tabelas temporárias não são suportadas.
  • As colunas dos tipos de dados ANYDATA, BFILE, INTERVAL DAY TO SECOND, INTERVAL YEAR TO MONTH, LONG/LONG RAW, SDO_GEOMETRY, UDT, UROWID e XMLTYPE não são suportadas e são substituídas por valores NULL.
  • Para fazer streaming de colunas de tipos de dados de objetos grandes, como objetos grandes binários (BLOB), objetos grandes de carateres (CLOB) e objetos grandes de carateres nacionais (NCLOB), tem de incluir a flag streamLargeObjects na configuração de streaming. Se não incluir o sinalizador, o Datastream não transmite essas colunas e estas são substituídas por valores NULL no destino. Para mais informações, consulte o artigo Ative o streaming de objetos grandes para origens Oracle.
  • Para o Oracle 11g, as tabelas que têm colunas de tipos de dados ANYDATA ou UDT não são suportadas e toda a tabela não é replicada.
  • A segurança de etiquetas da Oracle (OLS) não é replicada.
  • A stream de dados obtém periodicamente o esquema mais recente da origem à medida que os eventos são processados. Se um esquema for alterado, alguns eventos do novo esquema podem ser lidos enquanto o esquema antigo ainda está aplicado. Neste caso, o fluxo de dados deteta a alteração do esquema, aciona uma obtenção do esquema e volta a processar os eventos com falhas.
  • Nem todas as alterações ao esquema de origem podem ser detetadas automaticamente, caso em que pode ocorrer corrupção de dados. As seguintes alterações ao esquema podem causar corrupção de dados ou falha no processamento dos eventos a jusante:
    • Eliminar colunas
    • Adicionar colunas ao meio de uma tabela
    • Alterar o tipo de dados de uma coluna
    • Reordenar colunas
    • Eliminar tabelas (relevante se a mesma tabela for recriada com novos dados adicionados)
    • Truncar tabelas
  • O fluxo de dados não suporta a replicação de vistas.
  • O Datastream suporta visualizações de propriedades materializadas. No entanto, as novas vistas criadas enquanto a stream está em execução não são preenchidas automaticamente.
  • Quando usar o método Oracle LogMiner, as declarações SAVEPOINT não são suportadas e podem causar discrepâncias nos dados em caso de reversão.
  • Quando usa o método Oracle LogMiner, o Datastream não suporta a replicação de tabelas e colunas cujos nomes excedam 30 carateres.
  • O Datastream suporta as seguintes codificações de conjuntos de carateres para bases de dados Oracle:
    • AL16UTF16
    • AL32UTF8
    • IN8ISCII
    • IW8ISO8859P8
    • JA16SJIS
    • JA16SJISTILDE
    • KO16MSWIN949
    • US7ASCII
    • UTF8
    • WE8ISO8859P1
    • WE8ISO8859P9
    • WE8ISO8859P15
    • WE8MSWIN1252
    • ZHT16BIG5
  • O fluxo de dados não suporta a replicação de valores de data zero. Essas datas são substituídas por valores NULL.
  • O fluxo de dados não suporta a conetividade direta a bases de dados através da funcionalidade Single Client Access Name (SCAN) em ambientes Oracle Real Application Clusters (RAC). Para informações sobre potenciais soluções, consulte o artigo Comportamento e limitações da origem da Oracle.
  • Se a origem for uma base de dados de espera do Oracle Active Data Guard, o Datastream não suporta a replicação de dados encriptados.

Limitações adicionais ao usar o leitor binário

  • O leitor binário não suporta as seguintes funcionalidades:

    • Encriptação de base de dados transparente (TDE)
    • Compressão híbrida de colunas
    • Ficheiros seguros
    • O ASM não é suportado para origens do Amazon RDS.
    • O método CDC do leitor binário não suporta o Oracle 11g e versões anteriores.

O que se segue?