Questa sezione contiene informazioni su:
- Il comportamento del modo in cui Datastream gestisce i dati estratti da un database Oracle di origine
- Le versioni del database Oracle supportate da Datastream
- Una panoramica su come configurare un database Oracle di origine in modo che i dati possano essere trasmessi in flusso da un database a una destinazione
- Limitazioni note per l'utilizzo del database Oracle come origine
Comportamento
Il database Oracle di origine si basa sulla funzionalità Oracle Logminer per esporre le modifiche ai dati.
- È possibile selezionare tutti gli schemi o gli schemi specifici di un determinato database, nonché tutte le tabelle degli schemi o di tabelle specifiche.
- Tutti i dati storici vengono replicati.
- Tutte le modifiche DML (Data Manipulation Language), ad esempio inserimenti, aggiornamenti ed eliminazioni dai database e dalle tabelle specificati, vengono replicate.
- Datastream replica nella destinazione le modifiche di cui è stato eseguito il commit e, in alcuni casi, di cui non è stato eseguito il commit. Datastream legge le modifiche di cui non è stato eseguito il commit. In caso di rollback, i record di output di Datastream includono anche l'operazione opposta. Ad esempio, se è in corso un'operazione di rollback di
INSERT
, anche i record di output conterranno un'operazioneDELETE
corrispondente. In questo caso, l'evento verrà visualizzato come eventoDELETE
con soloROWID
.
Backfill basato su ROWID
In Oracle, ROWID
è una pseudocolonna che archivia identificatori univoci per le righe di una tabella. Datastream utilizza i valori ROWID
per le operazioni di backfill. Per questo motivo, ti consigliamo di non eseguire azioni che potrebbero modificare i valori ROWID
nel database Oracle di origine fino al completamento dell'operazione di backfill.
Le azioni che possono modificare i valori ROWID
includono:
Spostamento fisico delle righe:
- Operazioni di esportazione e importazione: quando esporti una tabella e poi la importi di nuovo, la posizione fisica delle righe potrebbe cambiare, generando nuovi valori
ROWID
. - Comando
ALTER TABLE (...) MOVE
: lo spostamento di una tabella in un tablespace diverso può modificare l'archiviazione fisica e generare modifiche aROWID
. - Comando
ALTER TABLE (...) SHRINK SPACE
: consente di comprimere la tabella, spostando potenzialmente le righe e modificando i valoriROWID
. - Operazioni di partizionamento: la suddivisione, l'unione o lo spostamento delle partizioni possono modificare il posizionamento fisico delle righe e dei relativi valori
ROWID
.
- Operazioni di esportazione e importazione: quando esporti una tabella e poi la importi di nuovo, la posizione fisica delle righe potrebbe cambiare, generando nuovi valori
Operazioni di flashback:
- Comando
FLASHBACK TABLE
: il ripristino di una tabella allo stato precedente prevede l'eliminazione e il reinserimento di righe, con la conseguente creazione di nuovi valoriROWID
. FLASHBACK_TRANSACTION_QUERY
: simile aFLASHBACK TABLE
. Il rollback di una transazione può causare modifiche aROWID
se le righe sono state eliminate o aggiornate all'interno della transazione.
- Comando
Versioni
Datastream supporta le seguenti versioni del database Oracle:
- Oracle 11g, versione 11.2.0.4
- Oracle 12c, versione 12.1.0.2
- Oracle 12c, versione 12.2.0.1
- Oracle 18c
- Oracle 19c
- Oracle 21c
Datastream supporta i seguenti tipi di database Oracle:
- Self-hosted on-premise o su qualsiasi cloud provider
- Amazon RDS per Oracle
- Cloud Oracle
- Oracle Exadata
- RAC Oracle
- Database in standby Oracle Active Data Guard
Configurazione
Per configurare un database Oracle di origine in modo che i dati possano essere trasmessi in flusso in una destinazione, devi configurare il database in modo da concedere l'accesso, impostare il logging, definire un criterio di conservazione e così via.
Consulta Configura un database Oracle di origine per scoprire come configurare questo database in modo che Datastream possa eseguire il pull dei dati dal database in una destinazione.
Limitazioni note
Le limitazioni note per l'utilizzo del database Oracle come origine includono:
- I flussi sono limitati a 10.000 tabelle. Se un flusso include più di 10.000 tabelle, potrebbero verificarsi errori.
- Datastream supporta l'architettura multi-tenant Oracle (CDB/PDB), ma è possibile replicare solo un singolo database collegabile in un flusso.
- Oracle Autonomous Database non è supportato.
- Per le tabelle che non hanno una chiave primaria, Datastream utilizza l'elemento
ROWID
della riga per eseguire un'operazione di unione sul lato consumer. Tieni presente cheROWID
potrebbe non essere univoco. Se elimini e reinserisci una riga, ad esempio con l'utilità di esportazione/importazione di Oracle, il valoreROWID
della riga potrebbe cambiare. Se elimini una riga, Oracle può riassegnare il relativoROWID
a una nuova riga inserita in un secondo momento. - Le tabelle organizzate in base all'indice (IOT) non sono supportate.
- Le tabelle temporanee non sono supportate.
- Le colonne con i tipi di dati
ANYDATA
,BFILE
,INTERVAL DAY TO SECOND
,INTERVAL YEAR TO MONTH
,LONG/LONG RAW
,SDO_GEOMETRY
,UDT
,UROWID
eXMLTYPE
non sono supportate e vengono sostituite con valoriNULL
. - Per trasmettere in streaming colonne con tipi di dati di oggetti di grandi dimensioni, come oggetti binari di grandi dimensioni (
BLOB
), oggetti di grandi dimensioni con caratteri (CLOB
) e oggetti di grandi dimensioni a carattere nazionale (NCLOB
), devi includere il flagstreamLargeObjects
nella configurazione dello stream. Se non includi il flag, Datastream non trasmette il flusso di queste colonne e vengono sostituite con valoriNULL
nella destinazione. Per ulteriori informazioni, consulta Abilitare flussi di oggetti di grandi dimensioni per le origini Oracle. - Per Oracle 11g, le tabelle con colonne di tipo di dati
ANYDATA
oUDT
non sono supportate e l'intera tabella non verrà replicata. - Oracle Label Security (OLS) non è replicata.
- Datastream recupera periodicamente l'ultimo schema dall'origine man mano che gli eventi vengono elaborati. Se uno schema viene modificato, alcuni eventi del nuovo schema potrebbero essere letti mentre quello precedente viene ancora applicato. In questo caso, Datastream rileva la modifica allo schema, attiva un recupero dello schema e rielabora gli eventi non riusciti.
- Non tutte le modifiche allo schema di origine possono essere rilevate automaticamente e in questo caso i dati potrebbero essere danneggiati. Le seguenti modifiche allo schema potrebbero danneggiare i dati o compromettere l'elaborazione degli eventi downstream:
- Eliminazione di colonne
- Aggiungere colonne al centro di una tabella
- Modifica del tipo di dati di una colonna
- Riordinamento delle colonne
- Eliminazione delle tabelle (pertinente se la stessa tabella viene poi ricreata con l'aggiunta di nuovi dati)
- Troncamento delle tabelle
- Datastream non supporta la replica delle viste.
- Datastream supporta le viste materializzate. Tuttavia, le nuove visualizzazioni create mentre lo stream è in esecuzione non viene sottoposta automaticamente a backfill.
- Le istruzioni
SAVEPOINT
non sono supportate e possono causare discrepanze nei dati in caso di rollback. - Datastream supporta le seguenti codifiche dei set di caratteri per i database Oracle:
AL16UTF16
AL32UTF8
IN8ISCII
JA16SJIS
JA16SJISTILDE
US7ASCII
UTF8
WE8ISO8859P1
WE8ISO8859P9
WE8ISO8859P15
WE8MSWIN1252
ZHT16BIG5
- Datastream non supporta la replica di valori di data zero. Queste date vengono sostituite con valori
NULL
. - La generazione di file di log di grandi dimensioni potrebbe causare un timeout di Datastream, con conseguenti errori di flusso. La dimensione consigliata del file di log di ripetizione è inferiore a 1 GB.
- Datastream non supporta la connettività diretta ai database utilizzando la funzionalità Single Client Access Name (SCAN) negli ambienti Oracle Real Application Clusters (RAC). Per informazioni sulle potenziali soluzioni, vedi Comportamento e limitazioni dell'origine Oracle.
- Se l'origine è un database in standby Oracle Active Data Guard, Datastream non supporta la replica dei dati criptati.