Utilizzo di un database Oracle come destinazione per AWS Database Migration Service - AWS Servizio di migrazione del Database

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di un database Oracle come destinazione per AWS Database Migration Service

È possibile migrare i dati verso le destinazioni del database Oracle utilizzando AWS DMS, da un altro database Oracle o da uno degli altri database supportati. Puoi utilizzare il protocollo Secure Sockets Layer (SSL) per crittografare le connessioni tra l'endpoint Oracle e l'istanza di replica. Per ulteriori informazioni sull'utilizzo di SSL con un endpoint Oracle, vedere. Utilizzo di SSL con AWS Database Migration Service AWS DMS supporta anche l'uso di Oracle Transparent Data Encryption (TDE) per crittografare i dati inattivi nel database di destinazione, poiché Oracle TDE non richiede una chiave di crittografia o una password per scrivere sul database.

Per informazioni sulle versioni di Oracle AWS DMS supportate come destinazione, vedere. Obiettivi per AWS DMS

Quando si utilizza Oracle come destinazione, presupponiamo che i dati debbano essere migrati nello schema o nell'utente utilizzato per la connessione alla destinazione. Se desideri migrare i dati a un altro schema, utilizza una trasformazione dello schema. Ad esempio, supponiamo che l'endpoint di destinazione si connetta all'utente RDSMASTER e che tu intenda migrare dall'utente PERFDATA1 a PERFDATA2. In questo caso, crea una trasformazione come la seguente.

{ "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "schema", "object-locator": { "schema-name": "PERFDATA1" }, "value": "PERFDATA2" }

Quando si utilizza Oracle come destinazione, AWS DMS migra tutte le tabelle e gli indici nelle tablespace di tabelle e indici predefinite nella destinazione. Se desideri migrare tabelle e indici a spazi di tabella e indice diversi, utilizza a questo scopo una trasformazione di spazio di tabella. Ad esempio, supponi di disporre di un set di tabelle nello schema INVENTORY assegnato ad alcuni spazi tabella nell'origine Oracle. Per la migrazione, vuoi assegnare tutte queste tabelle a un singolo spazio tabella INVENTORYSPACE nella destinazione. In questo caso, crea una trasformazione come la seguente.

{ "rule-type": "transformation", "rule-id": "3", "rule-name": "3", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "INVENTORY", "table-name": "%", "table-tablespace-name": "%" }, "value": "INVENTORYSPACE" }

Per ulteriori informazioni sulle trasformazioni, consulta Specifica della selezione delle tabelle e delle regole di trasformazione tramite JSON.

Se Oracle è sia origine che destinazione, è possibile mantenere le assegnazioni di tablespace tabella o indice esistenti impostando l'attributo di connessione extra di origine Oracle, enableHomogenousTablespace=true. Per ulteriori informazioni, consulta Impostazioni degli endpoint quando si utilizza Oracle come fonte per AWS DMS

Per ulteriori dettagli sull'utilizzo dei database Oracle come destinazione per AWS DMS, consulta le seguenti sezioni:

Limitazioni relative a Oracle come destinazione per AWS Database Migration Service

Di seguito sono riportate le limitazioni quando si utilizza Oracle come destinazione per la migrazione dei dati:

  • AWS DMS non crea uno schema sul database Oracle di destinazione. Gli eventuali schemi devono essere creati sul database Oracle di destinazione. Il nome dello schema deve esistere già per la destinazione di Oracle. Le tabelle dallo schema di origine vengono importate nell'utente o nello schema, che AWS DMS utilizza per connettersi all'istanza di destinazione. Per migrare più schemi, puoi creare più attività di replica. Inoltre puoi migrare i dati in schemi diversi di una destinazione. A tale scopo, è necessario utilizzare le regole di trasformazione dello schema sulle mappature delle AWS DMS tabelle.

  • AWS DMS non supporta l'Use direct path full loadopzione per le tabelle con INDEXTYPE CONTEXT. Come soluzione alternativa, puoi utilizzare il caricamento della matrice.

  • Con l'opzione di applicazione ottimizzata in batch, il caricamento nella tabella delle modifiche utilizza un percorso diretto che non supporta il tipo XML. Come soluzione alternativa, è possibile utilizzare la modalità di applicazione transazionale.

  • Le stringhe vuote migrate dai database di origine possono essere trattate in modo diverso dalla destinazione Oracle (ad esempio, convertite in stringhe di uno spazio). Ciò può comportare la AWS DMS segnalazione di una mancata corrispondenza nella convalida.

  • È possibile esprimere il numero totale di colonne per tabella supportate nella modalità di applicazione ottimizzata in batch, utilizzando la seguente formula:

    2 * columns_in_original_table + columns_in_primary_key <= 999

    Ad esempio, se la tabella originale ha 25 colonne e la chiave primaria è composta da 5 colonne, il numero totale di colonne è 55. Se una tabella supera il numero di colonne supportato, tutte le modifiche vengono applicate in modalità. one-by-one

  • AWS DMS non supporta Autonomous DB su Oracle Cloud Infrastructure (OCI).

Privilegi dell'account utente necessari per l'utilizzo di Oracle come destinazione

Per utilizzare un target Oracle in un AWS Database Migration Service task, concedi i seguenti privilegi nel database Oracle. Concedere tali privilegi all'account utente specificato nelle definizioni del database Oracle per AWS DMS.

  • SELECT ANY TRANSACTION

  • SELECT su V$NLS_PARAMETERS

  • SELECT su V$TIMEZONE_NAMES

  • SELECT su ALL_INDEXES

  • SELECT su ALL_OBJECTS

  • SELECT su DBA_OBJECTS

  • SELECT su ALL_TABLES

  • SELECT su ALL_USERS

  • SELECT su ALL_CATALOG

  • SELECT su ALL_CONSTRAINTS

  • SELECT su ALL_CONS_COLUMNS

  • SELECT su ALL_TAB_COLS

  • SELECT su ALL_IND_COLUMNS

  • DROP ANY TABLE

  • SELECT ANY TABLE

  • INSERT ANY TABLE

  • UPDATE ANY TABLE

  • CREATE ANY VIEW

  • DROP ANY VIEW

  • CREATE ANY PROCEDURE

  • ALTER ANY PROCEDURE

  • DROP ANY PROCEDURE

  • CREATE ANY SEQUENCE

  • ALTER ANY SEQUENCE

  • DROP ANY SEQUENCE

  • DELETE ANY TABLE

Per i seguenti requisiti concedi questi privilegi aggiuntivi:

  • Per utilizzare un elenco specifico di tabelle, concedi SELECT su qualsiasi tabella replicata e anche ALTER su qualsiasi tabella replicata.

  • Per consentire a un utente di creare una tabella in uno spazio tabella predefinito, concedi il privilegio GRANT UNLIMITED TABLESPACE.

  • Per l'accesso, concedi il privilegio CREATE SESSION.

  • Se stai utilizzando un percorso diretto (che è l'impostazione predefinita per il pieno carico), GRANT LOCK ANY TABLE to dms_user;.

  • Se lo schema è diverso quando si utilizza la modalità di preparazione della tabella "DROP and CREATE", GRANT CREATE ANY INDEX to dms_user;.

  • Per alcuni scenari di caricamento completo, è possibile scegliere le opzioni "DROP and CREATE table" o "TRUNCATE before loading" in cui uno schema della tabella di destinazione è diverso da quello dell'utente DMS. In questo caso, concedere DROP ANY TABLE.

  • Per archiviare le modifiche in tabelle di modifica o in una tabella di audit in cui lo schema della tabella di destinazione è diverso da quello dell'utente DMS, concedere CREATE ANY TABLE e CREATE ANY INDEX.

Privilegi di lettura richiesti per AWS Database Migration Service il database di destinazione

All'account AWS DMS utente devono essere concesse le autorizzazioni di lettura per le seguenti tabelle DBA:

  • SELECT su DBA_USERS

  • SELECT su DBA_TAB_PRIVS

  • SELECT su DBA_OBJECTS

  • SELECT su DBA_SYNONYMS

  • SELECT su DBA_SEQUENCES

  • SELECT su DBA_TYPES

  • SELECT su DBA_INDEXES

  • SELECT su DBA_TABLES

  • SELECT su DBA_TRIGGERS

  • SELECT su SYS.DBA_REGISTRY

Se uno o più privilegi necessari non possono essere concessi a V$xxx, concedili a V_$xxx.

Valutazioni preliminari alla migrazione

Per utilizzare le valutazioni di premigrazione elencate in Valutazioni Oracle Oracle as a Target, è necessario aggiungere le seguenti autorizzazioni all'utente del dms_user database sul database di destinazione:

GRANT SELECT ON V_$INSTANCE TO dms_user;

Configurazione di un database Oracle come destinazione per AWS Database Migration Service

Prima di utilizzare un database Oracle come obiettivo di migrazione dei dati, è necessario fornire un account utente Oracle a AWS DMS. L'account utente deve disporre dei privilegi di lettura/scrittura sul database Oracle, come specificato in Privilegi dell'account utente necessari per l'utilizzo di Oracle come destinazione.

Impostazioni degli endpoint quando si utilizza Oracle come destinazione per AWS DMS

È possibile utilizzare le impostazioni degli endpoint per configurare il database di destinazione Oracle in modo simile a come si usano gli attributi aggiuntivi di connessione. Le impostazioni vengono specificate quando si crea l'endpoint di destinazione utilizzando la AWS DMS console o utilizzando il create-endpoint comando in AWS CLI, con la sintassi --oracle-settings '{"EndpointSetting": "value", ...}' JSON.

La tabella riportata di seguito mostra le impostazioni degli endpoint che è possibile utilizzare con Oracle come destinazione.

Nome Descrizione

EscapeCharacter

Imposta questo attributo su un carattere di escape. Il carattere di escape consente che un singolo carattere jolly si comporti come un normale carattere nelle espressioni di mappatura delle tabelle. Per ulteriori informazioni, consulta Caratteri jolly nella mappatura delle tabelle.

Valore predefinito: Null

Valori validi: qualsiasi carattere diverso da un carattere jolly

Esempio: --oracle-settings '{"EscapeCharacter": "#"}'

UseDirectPathFullLoad

Se impostato suY, AWS DMS utilizza un percorso diretto a pieno carico. Specificare questo valore per abilitare il protocollo di percorso diretto in Oracle Call Interface (OCI). Questo protocollo OCI consente il caricamento in blocco delle tabelle di destinazione Oracle durante un caricamento completo.

Valore predefinito: true

Valori validi: true/false

Esempio: --oracle-settings '{"UseDirectPathFullLoad": false}'

DirectPathParallelLoad

Se impostato su true, questo attributo specifica un caricamento parallelo quando UseDirectPathFullLoad è impostato su Y. Questo attributo si applica anche solo quando si utilizza la funzione di caricamento AWS DMS parallelo. Per ulteriori informazioni, vedere la descrizione dell'operazione parallel-load in Regole e operazioni delle impostazioni di tabella e raccolta.

Una limitazione della specificazione di questa impostazione di caricamento parallelo è che la tabella di destinazione non può avere vincoli o indici. Per ulteriori informazioni su questa limitazione, vedere Abilitazione dei vincoli dopo un caricamento parallelo con percorso diretto. Se i vincoli o gli indici sono abilitati, l'impostazione di questo attributo non ha alcun effetto su true.

Valore predefinito: false

Valori validi: true/false

Esempio: --oracle-settings '{"DirectPathParallelLoad": true}'

DirectPathNoLog

Se impostato su true, questo attributo consente di aumentare la velocità di commit nel database di destinazione Oracle scrivendo direttamente nelle tabelle e non scrivendo un trail ai log del database. Per ulteriori informazioni, vedere INSERT a caricamento diretto. Inoltre, questo attributo si applica solo quando si imposta UseDirectPathFullLoad su Y.

Valore predefinito: false

Valori validi: true/false

Esempio: --oracle-settings '{"DirectPathNoLog": true}'

CharLengthSemantics

Specifica se la lunghezza di una colonna di caratteri è espressa in byte o in caratteri. Per indicare che la lunghezza della colonna dei caratteri è in caratteri, impostare questo attributo su CHAR. In caso contrario, la lunghezza della colonna dei caratteri è espressa in byte.

Valore predefinito: non impostato su CHAR

Valori validi: CHAR

Esempio: --oracle-settings '{"CharLengthSemantics": "CHAR"}'

AlwaysReplaceEmptyString

AWS DMS aggiunge uno spazio aggiuntivo per replicare una stringa vuota durante la migrazione verso un target Oracle. In generale, Oracle non dispone di una notazione per una stringa vuota. Quando si inserisce una stringa vuota in varchar2, le stringhe vuote vengono caricate come NULL. Se desideri inserire i dati come NULL su Oracle, imposta questo attributo su FALSE.

Valore predefinito: true

Valori validi: true/false

Esempio: --oracle-settings '{"AlwaysReplaceEmptyString": false}'

Tipi di dati di destinazione per Oracle

Un database Oracle di destinazione utilizzato con AWS DMS supporta la maggior parte dei tipi di dati Oracle. La tabella seguente mostra i tipi di dati di destinazione Oracle supportati durante l'utilizzo AWS DMS e la mappatura predefinita AWS DMS dei tipi di dati. Per ulteriori informazioni su come visualizzare il tipo di dati mappato dall'origine, consulta la sezione relativa all'origine che stai utilizzando.

AWS DMS tipo di dati

Tipo di dati Oracle

BOOLEAN

NUMBER (1)

BYTES

RAW (lunghezza)

DATE

DATETIME

TIME

TIMESTAMP (0)

DATETIME

TIMESTAMP (dimensionamento)

INT1

NUMBER (3)

INT2

NUMBER (5)

INT4

NUMBER (10)

INT8

NUMBER (19)

NUMERIC

NUMBER (p,s)

REAL4

FLOAT

REAL8

FLOAT

STRING

Con indicazione di data: DATE

Con indicazione di ora: TIMESTAMP

Con indicazione di timestamp: TIMESTAMP

Con indicazione timestamp_with_timezone: TIMESTAMP WITH TIMEZONE

Con indicazione timestamp_with_local_timezone: TIMESTAMP WITH LOCAL TIMEZONE Con indicazione interval_year_to_month: INTERVAL YEAR TO MONTH

Con indicazione interval_day_to_second: INTERVAL DAY TO SECOND

Se la lunghezza è > 4000: CLOB

In all other cases: VARCHAR2 (lunghezza)

UINT1

NUMBER (3)

UINT2

NUMBER (5)

UINT4

NUMBER (10)

UINT8

NUMBER (19)

WSTRING

Se la lunghezza è > 2000: NCLOB

In tutti gli altri casi: NVARCHAR2 (lunghezza)

BLOB

BLOB

Per utilizzare questo tipo di dati con AWS DMS, è necessario abilitare l'uso dei BLOB per un'attività specifica. I tipi di dati BLOB sono supportati solo nelle tabelle che includono una chiave primaria

CLOB

CLOB

Per utilizzare questo tipo di dati con AWS DMS, è necessario abilitare l'uso dei CLOB per un'attività specifica. Durante il Change Data Capture (CDC), i tipi di dati CLOB sono supportati solo nelle tabelle che includono una chiave primaria.

STRING

Un tipo di dati Oracle VARCHAR2 sull'origine con una dimensione dichiarata superiore a 4000 byte viene mappato tramite AWS DMS CLOB a una STRING sulla destinazione Oracle.

NCLOB

NCLOB

Per utilizzare questo tipo di dati con AWS DMS, è necessario abilitare l'uso di NCLobs per un'attività specifica. Durante il CDC, i tipi di dati NCLOB sono supportati solo nelle tabelle che includono una chiave primaria.

WSTRING

Un tipo di dati Oracle VARCHAR2 sull'origine con una dimensione dichiarata superiore a 4000 byte viene mappato tramite AWS DMS NCLOB a un WSTRING sulla destinazione Oracle.

XMLTYPE

Il tipo di dati di destinazione XMLTYPE è rilevante solo in attività di replica da Oracle a Oracle.

Quando il database di origine è Oracle, i tipi di dati di origine vengono replicati così come sono sulla destinazione di Oracle. Ad esempio, un tipo di dati XMLTYPE sull'origine viene creato come tipo di dati XMLTYPE sulla destinazione.