Database Oracle di origine

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'operazione DELETE corrispondente. In questo caso, l'evento verrà visualizzato come evento DELETE con solo ROWID.

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 a ROWID.
    • Comando ALTER TABLE (...) SHRINK SPACE: consente di comprimere la tabella, spostando potenzialmente le righe e modificando i valori ROWID.
    • 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 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 valori ROWID.
    • FLASHBACK_TRANSACTION_QUERY: simile a FLASHBACK TABLE. Il rollback di una transazione può causare modifiche a ROWID se le righe sono state eliminate o aggiornate all'interno della transazione.

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 che ROWID potrebbe non essere univoco. Se elimini e reinserisci una riga, ad esempio con l'utilità di esportazione/importazione di Oracle, il valore ROWID della riga potrebbe cambiare. Se elimini una riga, Oracle può riassegnare il relativo ROWID 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 e XMLTYPE non sono supportate e vengono sostituite con valori NULL.
  • 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 flag streamLargeObjects nella configurazione dello stream. Se non includi il flag, Datastream non trasmette il flusso di queste colonne e vengono sostituite con valori NULL 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 o UDT 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 danneggiare 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.