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çãoDELETE
correspondente. Neste caso, o evento aparece como um eventoDELETE
com apenas oROWID
.
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çõesROWID
.ALTER TABLE (...) SHRINK SPACE
: este comando comprime a tabela, movendo potencialmente linhas e afetando os respetivos valoresROWID
.- 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 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
Operações de reversão:
FLASHBACK TABLE
: restaurar uma tabela para um estado anterior envolve eliminar e reinserir linhas, criando assim novos valoresROWID
.FLASHBACK_TRANSACTION_QUERY
: semelhante aFLASHBACK TABLE
. A reversão de uma transação pode causar alteraçõesROWID
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 oROWID
pode não ser único. Se eliminar e reinserir uma linha com a utilidade de exportação/importação da Oracle, por exemplo, oROWID
da linha pode mudar. Se eliminar uma linha, o Oracle pode reatribuir o respetivoROWID
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
eXMLTYPE
não são suportadas e são substituídas por valoresNULL
. - 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 flagstreamLargeObjects
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 valoresNULL
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
ouUDT
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?
- Saiba como configurar uma origem Oracle para utilização com o Datastream.