Utilizzo di un database Oracle come origine per AWS DMS - 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 origine per AWS DMS

È possibile migrare i dati da uno o più database Oracle utilizzando AWS DMS. Con un database Oracle come origine, puoi eseguire la migrazione dei dati a una delle destinazioni supportate da AWS DMS.

AWS DMS supporta le seguenti edizioni del database Oracle:

  • Oracle Enterprise Edition

  • Oracle Standard Edition

  • Oracle Express Edition

  • Oracle Personal Edition

Per informazioni sulle versioni dei database Oracle AWS DMS supportate come origine, vedereFonti per AWS DMS.

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, consulta Supporto SSL per un endpoint Oracle.

AWS DMS supporta l'uso di Oracle Transparent Data Encryption (TDE) per crittografare i dati inattivi nel database di origine. Per ulteriori informazioni sull'utilizzo di Oracle TDE con un endpoint di origine Oracle, consulta Metodi di crittografia supportati per l'utilizzo di Oracle come fonte per AWS DMS.

AWS supporta l'uso di TLS versione 1.2 e successive con gli endpoint Oracle (e tutti gli altri tipi di endpoint) e consiglia l'utilizzo di TLS versione 1.3 o successiva.

Segui questi passaggi per configurare un database Oracle come endpoint di origine: AWS DMS

  1. Crea un utente Oracle con le autorizzazioni appropriate per accedere AWS DMS al tuo database di origine Oracle.

  2. Crea un endpoint di origine Oracle conforme alla configurazione del database Oracle scelta. Per creare un full-load-only task, non sono necessarie ulteriori configurazioni.

  3. Per creare un'attività che gestisca l'acquisizione dei dati di modifica (un'attività solo CDC o a pieno carico e CDC), scegli Oracle LogMiner o AWS DMS Binary Reader per acquisire le modifiche ai dati. La scelta LogMiner di Binary Reader determina alcune delle autorizzazioni e delle opzioni di configurazione successive. Per un confronto tra Binary Reader, consultate la sezione seguente. LogMiner

Nota

Per ulteriori informazioni sulle attività di pieno carico, sola CDC e di pieno carico e CDC, consulta Creazione di un'attività

Per ulteriori dettagli sull'utilizzo dei database di origine Oracle e AWS DMS, vedere le seguenti sezioni.

Utilizzo di Oracle LogMiner o AWS DMS Binary Reader for CDC

In AWS DMS, esistono due metodi per leggere i redo log quando si esegue l'acquisizione dei dati di modifica (CDC) per Oracle come fonte: Oracle LogMiner e AWS DMS Binary Reader. LogMiner è un'API Oracle per leggere i redo log online e i redo log file archiviati. Binary Reader è un AWS DMS metodo che legge e analizza direttamente i redo log file non elaborati. Questi metodi hanno le seguenti funzionalità.

Funzionalità LogMiner Binary Reader
Facilità di configurazione No
Impatto ridotto sull'I/O e sulla CPU del sistema di origine No
Prestazioni CDC migliorate No
Supporto per i cluster di tabelle Oracle No
Supporto per tutti i tipi di Oracle Hybrid Columnar Compression (HCC)

Parzialmente

Binary Reader non supporta QUERY LOW per le attività con CDC. Tutti gli altri tipi di HCC sono completamente supportati.

Supporto per colonne LOB solo in Oracle 12c No (il supporto LOB non è disponibile con LogMiner Oracle 12c).
Supporto per le istruzioni UPDATE che riguardano solo le colonne LOB No
Supporto per Oracle Transparent Data Encryption (TDE)

Parzialmente

Quando si utilizza Oracle LogMiner, AWS DMS non supporta la crittografia TDE a livello di colonna per Amazon RDS for Oracle.

Parzialmente

Binary Reader supporta la crittografia TDE solo per i database Oracle autogestiti.

Supporto per tutti i metodi di compressione Oracle No
Supporto per transazioni XA No
RAC

Non consigliato, per motivi di prestazioni e per alcune limitazioni interne del DMS.

Altamente consigliato

Nota

Per impostazione predefinita, AWS DMS utilizza Oracle LogMiner for (CDC).

AWS DMS supporta i metodi di crittografia trasparente dei dati (TDE) quando si lavora con un database di origine Oracle. Se le credenziali TDE specificate non sono corrette, l'attività di AWS DMS migrazione non ha esito negativo, il che può influire sulla replica continua delle tabelle crittografate. Per ulteriori informazioni sulla specifica delle credenziali TDE, consulta Metodi di crittografia supportati per l'utilizzo di Oracle come fonte per AWS DMS.

I principali vantaggi dell'utilizzo di LogMiner with AWS DMS includono quanto segue:

  • LogMiner supporta la maggior parte delle opzioni Oracle, come le opzioni di crittografia e le opzioni di compressione. Binary Reader non supporta tutte le opzioni di Oracle, in particolare la compressione e la maggior parte delle opzioni di crittografia.

  • LogMiner offre una configurazione più semplice, soprattutto rispetto alla configurazione ad accesso diretto di Binary Reader o quando i redo log vengono gestiti utilizzando Oracle Automatic Storage Management (ASM).

  • LogMiner supporta cluster di tabelle utilizzabili da. AWS DMS Binary Reader no.

I principali vantaggi dell'utilizzo di Binary Reader con AWS DMS includono quanto segue:

  • Per le migrazioni con un elevato volume di modifiche, LogMiner potrebbero avere un impatto sull'I/O o sulla CPU sul computer che ospita il database di origine Oracle. Binary Reader ha meno possibilità di avere impatto sull'I/O oppure sulla CPU perché i log vengono estratti direttamente anziché tramite più query sul database.

  • Per le migrazioni con un elevato volume di modifiche, le prestazioni CDC sono in genere molto migliori quando si utilizza Binary Reader rispetto a Oracle. LogMiner

  • Binary Reader supporta CDC per LOB nella versione Oracle 12c. LogMinernon lo fa.

In generale, utilizza Oracle LogMiner per la migrazione del database Oracle a meno che non si verifichi una delle seguenti situazioni:

  • È necessario eseguire molte attività di migrazione sul database di origine Oracle.

  • Il volume delle modifiche o dei log redo nel database Oracle di origine è elevato oppure si dispone delle modifiche e si utilizza anche Oracle ASM.

Nota

Se passi dall'utilizzo di LogMiner Oracle a quello di AWS DMS Binary Reader, assicurati di riavviare l'attività CDC.

Configurazione dell'attività di CDC su un database di origine Oracle

Per consentire a un endpoint di origine Oracle di connettersi al database per un'attività di acquisizione dei dati di modifica (CDC), potrebbe essere necessario specificare gli attributi aggiuntivi di connessione. Questo è valido per un'attività di pieno carico e CDC o per un'attività di sola CDC. Gli attributi di connessione aggiuntivi specificati dipendono dal metodo utilizzato per accedere ai redo log: Oracle LogMiner o AWS DMS Binary Reader.

Gli attributi aggiuntivi di connessione si specificano al momento della creazione di un endpoint di origine. Se sono presenti più impostazioni di attributi di connessione, separale tra loro mediante punti e virgola senza inserire spazi vuoti (ad esempio oneSetting;thenAnother).

AWS DMS utilizza per impostazione LogMiner predefinita. Non è necessario specificare gli attributi aggiuntivi di connessione per utilizzarlo.

Per usare Binary Reader per accedere ai log redo, aggiungi i seguenti attributi aggiuntivi di connessione.

useLogMinerReader=N;useBfile=Y;

Usa il seguente formato per gli attributi di connessione aggiuntivi per accedere a un server che usa ASM con Binary Reader.

useLogMinerReader=N;useBfile=Y;asm_user=asm_username;asm_server=RAC_server_ip_address:port_number/+ASM;

Imposta il parametro di richiesta Password dell’endpoint sorgente sia per la password dell’utente Oracle sia per la password ASM, separate da una virgola come segue.

oracle_user_password,asm_user_password

Se l'origine Oracle utilizza ASM, è possibile utilizzare opzioni ad alte prestazioni in Binary Reader per l'elaborazione delle transazioni su larga scala. Queste opzioni includono attributi di connessione aggiuntivi per specificare il numero di thread paralleli (parallelASMReadThreads) e il numero di buffer read-ahead (readAheadBlocks). L'impostazione congiunta di questi attributi è in grado di migliorare sensibilmente le prestazioni dell'attività di CDC. Le seguenti impostazioni forniscono buoni risultati per la maggior parte delle configurazioni ASM.

useLogMinerReader=N;useBfile=Y;asm_user=asm_username;asm_server=RAC_server_ip_address:port_number/+ASM; parallelASMReadThreads=6;readAheadBlocks=150000;

Per ulteriori informazioni sui valori supportati dagli attributi di connessione aggiuntivi, consulta Impostazioni degli endpoint quando si utilizza Oracle come fonte per AWS DMS.

Inoltre, le prestazioni di un'attività di CDC con un'origine Oracle che utilizza ASM dipende da altre impostazioni scelte. Queste impostazioni includono gli attributi di connessione AWS DMS aggiuntivi e le impostazioni di configurazione di SQL dell'origine Oracle. Per ulteriori informazioni sugli attributi aggiuntivi di connessione per un'origine Oracle che utilizza ASM, consulta Impostazioni degli endpoint quando si utilizza Oracle come fonte per AWS DMS.

È inoltre necessario scegliere un punto di partenza appropriato per l'attività di CDC. In genere, quando si esegue questa operazione, si desidera identificare il punto di elaborazione della transazione che acquisisce la prima transazione aperta da cui iniziare l'attività di CDC. In caso contrario, l'attività di CDC può perdere le transazioni aperte in precedenza. Per un database di origine Oracle, puoi scegliere per l'attività di CDC un punto di partenza nativo basato sul numero di modifica del sistema (SCN) di Oracle per identificare la prima transazione aperta. Per ulteriori informazioni, consulta Esecuzione della replica a partire da un punto di inizio CDC.

Per ulteriori informazioni sulla configurazione dell'attività di CDC per un database Oracle autogestito come origine, consulta I privilegi dell'account sono richiesti quando si utilizza Oracle per accedere ai redo log LogMiner , I privilegi dell'account sono necessari quando si utilizza AWS DMS Binary Reader per accedere ai redo log e Privilegi dell'account aggiuntivi necessari quando si utilizza Binary Reader con Oracle ASM.

Per ulteriori informazioni sulla configurazione di CDC per un database Oracle AWS gestito come origine, consulta e. Configurazione di un'attività CDC per l'utilizzo di Binary Reader con un codice sorgente RDS for Oracle per AWS DMS Utilizzo di Amazon RDS Oracle Standby (replica di lettura) come origine con Binary Reader per l'attività di CDC in AWS DMS

Flussi di lavoro per la configurazione di un database di origine Oracle autogestito o gestito per AWSAWS DMS

Configurazione di un database di origine Oracle

Per configurare un'istanza database di origine autogestito, utilizza le seguenti fasi del flusso di lavoro, a seconda di come esegui l'attività di CDC.

Per questa fase del flusso di lavoro Se esegui CDC utilizzando CDC, esegui questa operazione LogMiner Se esegui l'attività di CDC usando Binary Reader
Concedi i privilegi dell'account Oracle. Consulta Privilegi dell'account utente richiesti su una fonte Oracle autogestita per AWS DMS. Per informazioni, consulta Privilegi dell'account utente richiesti su una fonte Oracle autogestita per AWS DMS.
Prepara il database di origine per la replica utilizzando l'attività di CDC. Consulta Preparazione di un database di origine Oracle autogestito per CDC utilizzando AWS DMS. Per informazioni, consulta Preparazione di un database di origine Oracle autogestito per CDC utilizzando AWS DMS.
Fornisci i privilegi dell'utente Oracle aggiuntivi necessari per l'attività di CDC. Consulta I privilegi dell'account sono richiesti quando si utilizza Oracle per accedere ai redo log LogMiner . Per informazioni, consulta I privilegi dell'account sono necessari quando si utilizza AWS DMS Binary Reader per accedere ai redo log.
Per un'istanza Oracle con ASM, fornisci i privilegi dell'account utente aggiuntivi, necessari per accedere ad ASM per l'attività di CDC. Nessuna azione aggiuntiva. AWS DMS supporta Oracle ASM senza privilegi di account aggiuntivi. Per informazioni, consulta Privilegi dell'account aggiuntivi necessari quando si utilizza Binary Reader con Oracle ASM.
Se non l'hai già fatto, configura l'attività per utilizzare LogMiner o Binary Reader for CDC. Consulta Utilizzo di Oracle LogMiner o AWS DMS Binary Reader for CDC. Per informazioni, consulta Utilizzo di Oracle LogMiner o AWS DMS Binary Reader for CDC.
Configura Oracle Standby come origine per l'attività di CDC. AWS DMS non supporta Oracle Standby come fonte. Per informazioni, consulta Utilizzo di Oracle Standby autogestito come origine con Binary Reader per l'attività di CDC in AWS DMS.

Utilizza i seguenti passaggi del flusso di lavoro per configurare un'istanza del database AWS di origine Oracle gestita.

Per questa fase del flusso di lavoro Se esegui CDC utilizzando LogMiner, procedi nel seguente modo Se esegui l'attività di CDC usando Binary Reader
Concedi i privilegi dell'account Oracle. Per ulteriori informazioni, consulta Privilegi di account utente richiesti su una fonte Oracle gestita per AWSAWS DMS. Per ulteriori informazioni, consultare Privilegi di account utente richiesti su una fonte Oracle gestita per AWSAWS DMS.
Prepara il database di origine per la replica utilizzando l'attività di CDC. Per ulteriori informazioni, consulta Configurazione di una fonte Oracle gestita per AWSAWS DMS. Per ulteriori informazioni, consultare Configurazione di una fonte Oracle gestita per AWSAWS DMS.
Fornisci i privilegi dell'utente Oracle aggiuntivi necessari per l'attività di CDC. Non sono necessari altri privilegi dell'account. Per ulteriori informazioni, consulta Configurazione di un'attività CDC per l'utilizzo di Binary Reader con un codice sorgente RDS for Oracle per AWS DMS.
Se non l'hai già fatto, configura l'attività in modo che utilizzi LogMiner o Binary Reader for CDC. Per ulteriori informazioni, consulta Utilizzo di Oracle LogMiner o AWS DMS Binary Reader for CDC. Per ulteriori informazioni, consultare Utilizzo di Oracle LogMiner o AWS DMS Binary Reader for CDC.
Configura Oracle Standby come origine per l'attività di CDC. AWS DMS non supporta Oracle Standby come fonte. Per ulteriori informazioni, consulta Utilizzo di Amazon RDS Oracle Standby (replica di lettura) come origine con Binary Reader per l'attività di CDC in AWS DMS.

Utilizzo di un database Oracle autogestito come fonte per AWS DMS

Il database autogestito è quello puoi configurare e controllare e può trattarsi sia di un'istanza database on-premise che di un database in esecuzione su Amazon EC2. Di seguito, puoi scoprire i privilegi e le configurazioni necessari quando utilizzi un database Oracle autogestito con. AWS DMS

Privilegi dell'account utente richiesti su una fonte Oracle autogestita per AWS DMS

Per utilizzare un database Oracle come origine in AWS DMS, concedi i seguenti privilegi all'utente Oracle specificato nelle impostazioni di connessione dell'endpoint Oracle.

Nota

Durante la concessione dei privilegi, utilizza il nome effettivo degli oggetti e non i relativi sinonimi. Ad esempio, utilizza V_$OBJECT includendo il carattere di sottolineatura, non V$OBJECT senza il carattere di sottolineatura.

GRANT CREATE SESSION TO db_user; GRANT SELECT ANY TRANSACTION TO db_user; GRANT SELECT ON V_$ARCHIVED_LOG TO db_user; GRANT SELECT ON V_$LOG TO db_user; GRANT SELECT ON V_$LOGFILE TO db_user; GRANT SELECT ON V_$LOGMNR_LOGS TO db_user; GRANT SELECT ON V_$LOGMNR_CONTENTS TO db_user; GRANT SELECT ON V_$DATABASE TO db_user; GRANT SELECT ON V_$THREAD TO db_user; GRANT SELECT ON V_$PARAMETER TO db_user; GRANT SELECT ON V_$NLS_PARAMETERS TO db_user; GRANT SELECT ON V_$TIMEZONE_NAMES TO db_user; GRANT SELECT ON V_$TRANSACTION TO db_user; GRANT SELECT ON V_$CONTAINERS TO db_user; GRANT SELECT ON ALL_INDEXES TO db_user; GRANT SELECT ON ALL_OBJECTS TO db_user; GRANT SELECT ON ALL_TABLES TO db_user; GRANT SELECT ON ALL_USERS TO db_user; GRANT SELECT ON ALL_CATALOG TO db_user; GRANT SELECT ON ALL_CONSTRAINTS TO db_user; GRANT SELECT ON ALL_CONS_COLUMNS TO db_user; GRANT SELECT ON ALL_TAB_COLS TO db_user; GRANT SELECT ON ALL_IND_COLUMNS TO db_user; GRANT SELECT ON ALL_ENCRYPTED_COLUMNS TO db_user; GRANT SELECT ON ALL_LOG_GROUPS TO db_user; GRANT SELECT ON ALL_TAB_PARTITIONS TO db_user; GRANT SELECT ON SYS.DBA_REGISTRY TO db_user; GRANT SELECT ON SYS.OBJ$ TO db_user; GRANT SELECT ON DBA_TABLESPACES TO db_user; GRANT SELECT ON DBA_OBJECTS TO db_user; -– Required if the Oracle version is earlier than 11.2.0.3. GRANT SELECT ON SYS.ENC$ TO db_user; -– Required if transparent data encryption (TDE) is enabled. For more information on using Oracle TDE with AWS DMS, see Metodi di crittografia supportati per l'utilizzo di Oracle come fonte per AWS DMS. GRANT SELECT ON GV_$TRANSACTION TO db_user; -– Required if the source database is Oracle RAC in AWS DMS versions 3.4.6 and higher. GRANT SELECT ON V_$DATAGUARD_STATS TO db_user; -- Required if the source database is Oracle Data Guard and Oracle Standby is used in the latest release of DMS version 3.4.6, version 3.4.7, and higher.

Concedi il seguente privilegio aggiuntivo per ogni tabella replicata quando utilizzi un elenco di tabelle specifico.

GRANT SELECT on any-replicated-table to db_user;

Concedi il seguente privilegio aggiuntivo per convalidare le colonne LOB con la funzionalità di convalida.

GRANT EXECUTE ON SYS.DBMS_CRYPTO TO db_user;

Concedi il seguente privilegio aggiuntivo se utilizzi il lettore binario anziché. LogMiner

GRANT SELECT ON SYS.DBA_DIRECTORIES TO db_user;

Concedi il seguente privilegio aggiuntivo per esporre le viste.

GRANT SELECT on ALL_VIEWS to dms_user;

Per esporre le viste, devi anche aggiungere l'attributo aggiuntivo di connessione exposeViews=true all'endpoint di origine.

Concedi il seguente privilegio aggiuntivo quando utilizzi le repliche serverless.

GRANT SELECT on dba_segments to db_user;

Per informazioni sulle repliche serverless, consulta Lavorare con AWS DMS Serverless.

Concedi i seguenti privilegi aggiuntivi quando utilizzi le valutazioni di premigrazione specifiche di Oracle.

GRANT SELECT on gv_$parameter to dms_user; GRANT SELECT on v_$instance to dms_user; GRANT SELECT on v_$version to dms_user; GRANT SELECT on gv_$ASM_DISKGROUP to dms_user; GRANT SELECT on gv_$database to dms_user; GRANT SELECT on dba_db_links to dms_user; GRANT SELECT on gv_$log_History to dms_user; GRANT SELECT on gv_$log to dms_user; GRANT SELECT ON DBA_TYPES TO db_user; GRANT SELECT ON DBA_USERS to dms_user; GRANT SELECT ON DBA_DIRECTORIES to dms_user;

Per informazioni sulle valutazioni di premigrazione specifiche di Oracle, consulta Valutazioni Oracle.

Prerequisiti per la gestione delle transazioni aperte per Oracle Standby

Quando si utilizzano AWS DMS le versioni 3.4.6 e successive, effettuare le seguenti operazioni per gestire le transazioni aperte per Oracle Standby.

  1. Crea un collegamento di database denominato AWSDMS_DBLINK nel database primario. DMS_USER utilizzerà il collegamento per connettersi al database primario. Tieni presente che il collegamento di database viene eseguito dall'istanza di standby per eseguire query sulle transazioni aperte in esecuzione nel database primario. Guarda l'esempio seguente.

    CREATE PUBLIC DATABASE LINK AWSDMS_DBLINK CONNECT TO DMS_USER IDENTIFIED BY DMS_USER_PASSWORD USING '(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=PRIMARY_HOST_NAME_OR_IP)(PORT=PORT)) (CONNECT_DATA=(SERVICE_NAME=SID)) )';
  2. Verifica che sia stata stabilita la connessione al collegamento di database usando DMS_USER, come illustrato nell'esempio seguente.

    select 1 from dual@AWSDMS_DBLINK

Preparazione di un database di origine Oracle autogestito per CDC utilizzando AWS DMS

Prepara il database Oracle autogestito come origine per eseguire un'attività di CDC effettuando le seguenti operazioni:

Verifica che AWS DMS supporti la versione del database di origine

Esegui una query come la seguente per verificare che la versione corrente del database di origine Oracle sia supportata da AWS DMS.

SELECT name, value, description FROM v$parameter WHERE name = 'compatible';

Qui, name, value e description sono colonne presenti da qualche parte nel database che vengono interrogate in base al valore di name. Se questa query viene eseguita senza errori, AWS DMS supporta la versione corrente del database ed è possibile continuare con la migrazione. Se la query genera un errore, AWS DMS significa che non supporta la versione corrente del database. Per procedere con la migrazione, converti innanzitutto il database Oracle in una versione supportata da AWS DMS.

Verifica che la modalità ARCHIVELOG sia attiva

Puoi eseguire Oracle in due diverse modalità: la modalità ARCHIVELOG e la modalità NOARCHIVELOG. Per eseguire un'attività di CDC, esegui il database in modalità ARCHIVELOG. Per sapere se il database è in modalità ARCHIVELOG, esegui la seguente query.

SQL> SELECT log_mode FROM v$database;

Se viene restituita la modalità NOARCHIVELOG, imposta il database su ARCHIVELOG in base alle istruzioni di Oracle.

Impostazione del log supplementare

Per acquisire le modifiche in corso, è AWS DMS necessario abilitare una registrazione supplementare minima sul database di origine Oracle. Inoltre, è necessario abilitare il log supplementare per ogni tabella replicata nel database.

Per impostazione predefinita, AWS DMS aggiunge una registrazione PRIMARY KEY supplementare su tutte le tabelle replicate. AWS DMS Per consentire l'aggiunta di log PRIMARY KEY supplementari, concedi il seguente privilegio per ogni tabella replicata.

ALTER on any-replicated-table;

È possibile disabilitare la registrazione PRIMARY KEY supplementare predefinita aggiunta utilizzando AWS DMS l'attributo extra connection. addSupplementalLogging Per ulteriori informazioni, consulta Impostazioni degli endpoint quando si utilizza Oracle come fonte per AWS DMS.

Assicurati di attivare il log supplementare se l'attività di replica aggiorna una tabella utilizzando una clausola WHERE che non fa riferimento a una colonna di chiave primaria.

Per impostare manualmente il log supplementare
  1. Esegui la seguente query per verificare che il log supplementare sia abilitato sul database.

    SELECT supplemental_log_data_min FROM v$database;

    Se il risultato restituito è YES o IMPLICIT, il log supplementare è abilitato sul database.

    In caso contrario, abilita il log supplementare sul database eseguendo il seguente comando.

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
  2. Assicurati che venga aggiunto il log supplementare richiesto per ogni tabella replicata.

    Considera i seguenti aspetti:

    • Se alla tabella viene aggiunto il log supplementare ALL COLUMNS, non è necessario aggiungere altri log.

    • Se esiste una chiave primaria, aggiungi il log supplementare per la chiave primaria. Puoi eseguire questa operazione utilizzando il formato per aggiungere il log supplementare sulla chiave primaria oppure aggiungendo il log supplementare sulle colonne della chiave primaria nel database.

      ALTER TABLE Tablename ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
    • Se non esiste una chiave primaria e la tabella dispone di un unico indice univoco, aggiungi tutte le colonne dell'indice univoco ai log supplementari.

      ALTER TABLE TableName ADD SUPPLEMENTAL LOG GROUP LogGroupName (UniqueIndexColumn1[, UniqueIndexColumn2] ...) ALWAYS;

      L'utilizzo di SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS non aggiunge le colonne dell'indice univoco ai log.

    • Se non esiste una chiave primaria e la tabella ha più indici univoci, AWS DMS seleziona il primo indice univoco in un elenco crescente in ordine alfabetico. È necessario aggiungere un log supplementare sulle colonne dell'indice selezionato come nell'elemento precedente.

      L'utilizzo di SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS non aggiunge le colonne dell'indice univoco ai log.

    • Se non esiste una chiave primaria e non esiste un indice univoco, aggiungere il log supplementare su tutte le colonne.

      ALTER TABLE TableName ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

      In alcuni casi, la chiave primaria o l'indice univoco della tabella di destinazione sono diversi da quelli della tabella di origine. In questi casi, aggiungi il log supplementare sulle colonne della tabella di origine che compongono la chiave primaria o l'indice univoco.

      Se modifichi la chiave primaria della tabella di destinazione, è necessario aggiungere il log supplementare sulle colonne dell'indice selezionato invece che sulle colonne della chiave primaria o dell'indice univoco originali.

Se per una tabella sono definiti un filtro o una trasformazione, potrebbe essere necessario abilitare un logging aggiuntivo.

Considera i seguenti aspetti:

  • Se alla tabella viene aggiunto il log supplementare ALL COLUMNS, non è necessario aggiungere altri log.

  • Se una tabella dispone di un indice univoco o una chiave primaria, aggiungi un log supplementare a ciascuna colonna interessata da un filtro o da una trasformazione. Esegui questa operazione solo se le colonne sono diverse dalle colonne della chiave primaria o dell'indice univoco.

  • Se una trasformazione include solo una colonna, non aggiungere questa colonna a un gruppo di log supplementare. Ad esempio, per una trasformazione A+B, aggiungi il log supplementare su entrambe le colonne A e B. Tuttavia, per una trasformazione substring(A,10) non aggiungere il log supplementare alla colonna A.

  • Per impostare il log supplementare sulle colonne della chiave primaria o dell'indice univoco e su altre colonne che vengono filtrate o trasformate, puoi impostare il log supplementare USER_LOG_GROUP. Aggiungi questo log sulle colonne della chiave primaria o dell'indice univoco e su altre colonne specifiche che vengono filtrate o trasformate.

    Ad esempio, per replicare una tabella denominata TEST.LOGGING con chiave primaria ID e un filtro in base alla colonna NAME, puoi eseguire un comando simile a quello seguente per creare il log supplementare del gruppo di log.

    ALTER TABLE TEST.LOGGING ADD SUPPLEMENTAL LOG GROUP TEST_LOG_GROUP (ID, NAME) ALWAYS;

I privilegi dell'account sono richiesti quando si utilizza Oracle per accedere ai redo log LogMiner

Per accedere ai redo log utilizzando Oracle LogMiner, concedi i seguenti privilegi all'utente Oracle specificato nelle impostazioni di connessione dell'endpoint Oracle.

GRANT EXECUTE on DBMS_LOGMNR to db_user; GRANT SELECT on V_$LOGMNR_LOGS to db_user; GRANT SELECT on V_$LOGMNR_CONTENTS to db_user; GRANT LOGMINING to db_user; -– Required only if the Oracle version is 12c or higher.

I privilegi dell'account sono necessari quando si utilizza AWS DMS Binary Reader per accedere ai redo log

Per accedere ai redo log utilizzando AWS DMS Binary Reader, concedi i seguenti privilegi all'utente Oracle specificato nelle impostazioni di connessione dell'endpoint Oracle.

GRANT SELECT on v_$transportable_platform to db_user; -– Grant this privilege if the redo logs are stored in Oracle Automatic Storage Management (ASM) and AWS DMS accesses them from ASM. GRANT CREATE ANY DIRECTORY to db_user; -– Grant this privilege to allow AWS DMS to use Oracle BFILE read file access in certain cases. This access is required when the replication instance doesn't have file-level access to the redo logs and the redo logs are on non-ASM storage. GRANT EXECUTE on DBMS_FILE_TRANSFER to db_user; -– Grant this privilege to copy the redo log files to a temporary folder using the CopyToTempFolder method. GRANT EXECUTE on DBMS_FILE_GROUP to db_user;

Binary Reader utilizza le funzionalità di gestione file di Oracle che includono le directory Oracle. Ogni oggetto directory Oracle include il nome della cartella contenente i redo log da elaborare. Queste directory Oracle non sono rappresentate a livello di file system. Sono invece directory logiche che vengono create a livello di database Oracle. È possibile visualizzarle nella vista Oracle ALL_DIRECTORIES.

Se desideri AWS DMS creare queste directory Oracle, concedi il privilegio specificato in precedenza. CREATE ANY DIRECTORY AWS DMS crea i nomi delle directory con il prefisso. DMS_ Se non concedi il privilegio CREATE ANY DIRECTORY, crea manualmente le directory corrispondenti. In alcuni casi, quando si creano manualmente le directory Oracle, l'utente Oracle specificato nell'endpoint di origine Oracle non è l'utente che ha creato tali directory. In questi casi, concedi anche il privilegio READ on DIRECTORY.

Se l'endpoint di origine Oracle è in modalità Active Dataguard Standby (ADG), consulta il post How to use Binary Reader with ADG sul Database Blog. AWS

Nota

AWS DMS CDC non supporta Active Dataguard Standby che non è configurato per utilizzare il servizio di trasporto di ripristino automatico.

In alcuni casi i log potrebbero essere stati archiviati con Oracle Managed Files (OMF). In alternativa l'endpoint di origine è in modalità ADG e il privilegio CREATE ANY DIRECTORY non può essere concesso. In questi casi, crea manualmente le directory con tutte le possibili posizioni di registro prima di iniziare l'attività di replica. AWS DMS Se AWS DMS non trova una delle directory precedentemente create che si aspetta, l'attività si interrompe. Inoltre, AWS DMS non elimina le voci che ha creato nella ALL_DIRECTORIES vista, quindi devi eliminarle manualmente.

Privilegi dell'account aggiuntivi necessari quando si utilizza Binary Reader con Oracle ASM

Per accedere ai log redo in Automatic Storage Management (ASM) utilizzando Binary Reader, concedi i seguenti privilegi all'utente Oracle specificato nelle impostazioni di connessione dell'endpoint Oracle.

SELECT ON v_$transportable_platform SYSASM -– To access the ASM account with Oracle 11g Release 2 (version 11.2.0.2) and higher, grant the Oracle endpoint user the SYSASM privilege. For older supported Oracle versions, it's typically sufficient to grant the Oracle endpoint user the SYSDBA privilege.

È possibile verificare l'accesso all'account ASM aprendo un prompt dei comandi e richiamando una delle istruzioni seguenti, a seconda della versione di Oracle come specificato in precedenza.

Se è necessario il privilegio SYSDBA, utilizza quanto segue.

sqlplus asmuser/asmpassword@+asmserver as sysdba

Se è necessario il privilegio SYSASM, utilizza quanto segue.

sqlplus asmuser/asmpassword@+asmserver as sysasm

Utilizzo di Oracle Standby autogestito come origine con Binary Reader per l'attività di CDC in AWS DMS

Per configurare un'istanza Oracle Standby come origine quando si utilizza Binary Reader per l'attività di CDC, è necessario soddisfare i seguenti prerequisiti iniziali:

  • AWS DMS attualmente supporta solo Oracle Active Data Guard Standby.

  • Assicurati che la configurazione di Oracle Data Guard utilizzi:

    • Servizi di trasporto per la riesecuzione per trasferimenti automatici di dati di redo.

    • Servizi per applicare automaticamente la riesecuzione al database in standby.

Per verificare che tali requisiti siano soddisfatti, esegui la seguente query.

SQL> select open_mode, database_role from v$database;

Dall'output della query, verifica che il database in standby sia aperto in modalità READ ONLY e che la riesecuzione venga applicata automaticamente. Per esempio:

OPEN_MODE DATABASE_ROLE -------------------- ---------------- READ ONLY WITH APPLY PHYSICAL STANDBY
Per configurare un'istanza Oracle Standby come origine quando si utilizza Binary Reader per l'attività di CDC
  1. Concedi i privilegi aggiuntivi necessari per accedere ai file di log in standby.

    GRANT SELECT ON v_$standby_log TO db_user;
  2. Crea un endpoint di origine per Oracle Standby utilizzando AWS Management Console o AWS CLI. Al momento della creazione dell'endpoint, specifica i seguenti attributi aggiuntivi di connessione.

    useLogminerReader=N;useBfile=Y;
    Nota

    In AWS DMS, è possibile utilizzare attributi di connessione aggiuntivi per specificare se si desidera migrare dai log di archivio anziché dai redo log. Per ulteriori informazioni, consulta Impostazioni degli endpoint quando si utilizza Oracle come fonte per AWS DMS.

  3. Configura la destinazione dei log archiviati.

    DMS Binary Reader per l'origine Oracle senza ASM utilizza le directory Oracle per accedere ai log redo archiviati. Se il database è configurato per utilizzare la Fast Recovery Area (FRA) come destinazione dei log di archiviazione, la posizione dei file di archivio di riesecuzione non è costante. Ogni giorno in cui vengono generati i log redo archiviati, viene creata una nuova directory nella FRA, utilizzando il formato del nome di directory AAAA_MM_GG. Per esempio:

    DB_RECOVERY_FILE_DEST/SID/archivelog/YYYY_MM_DD

    Quando DMS deve accedere ai redo file archiviati nella directory FRA appena creata e il database primario di lettura/scrittura viene utilizzato come origine, DMS crea una nuova directory Oracle o sostituisce una directory Oracle esistente, come segue.

    CREATE OR REPLACE DIRECTORY dmsrep_taskid AS ‘DB_RECOVERY_FILE_DEST/SID/archivelog/YYYY_MM_DD’;

    Quando il database in standby viene utilizzato come origine, DMS non è in grado di creare o sostituire la directory Oracle perché il database è in modalità di sola lettura. Tuttavia, è possibile scegliere di eseguire una di queste fasi aggiuntive:

    1. Modifica log_archive_dest_id_1 per utilizzare un percorso effettivo anziché l'area FRA in una configurazione tale che Oracle non crei giornalmente sottodirectory:

      ALTER SYSTEM SET log_archive_dest_1=’LOCATION=full directory path

      Quindi, crea un oggetto directory Oracle da utilizzare con DMS:

      CREATE OR REPLACE DIRECTORY dms_archived_logs AS ‘full directory path’;
    2. Crea una destinazione aggiuntiva per il log di archiviazione e un oggetto directory Oracle che punti a tale destinazione. Per esempio:

      ALTER SYSTEM SET log_archive_dest_3=’LOCATION=full directory path’; CREATE DIRECTORY dms_archived_log AS ‘full directory path’;

      Quindi aggiungi un attributo aggiuntivo di connessione all'endpoint di origine dell'attività:

      archivedLogDestId=3
    3. Crea manualmente in anticipo gli oggetti directory Oracle da utilizzare con DMS.

      CREATE DIRECTORY dms_archived_log_20210301 AS ‘DB_RECOVERY_FILE_DEST/SID/archivelog/2021_03_01’; CREATE DIRECTORY dms_archived_log_20210302 AS ‘DB_RECOVERY_FILE_DEST>/SID>/archivelog/2021_03_02’; ...
    4. Crea un processo di pianificazione Oracle che venga eseguito quotidianamente e crei la directory richiesta.

Utilizzo di un database gestito dall'utente su Oracle Cloud Infrastructure (OCI) come origine per l'attività di CDC in AWS DMS

Un database gestito dall'utente è quello che puoi configurare e controllare, ad esempio un database Oracle creato su una macchina virtuale (VM), un bare metal o un server Exadata. In alternativa, è il database che puoi configurare e controllare che viene eseguito su un'infrastruttura dedicata, come Oracle Cloud Infrastructure (OCI). Le seguenti informazioni descrivono i privilegi e le configurazioni necessari quando si utilizza un database Oracle gestito dall'utente su OCI come origine per l'acquisizione dei dati di modifica (CDC) in AWS DMS.

Per configurare un database Oracle gestito dall'utente ospitato da OCI come origine per l'acquisizione dei dati di modifica
  1. Concedi i privilegi dell'account utente necessari per un database di origine Oracle gestito dall'utente su OCI. Per ulteriori informazioni, consulta Privilegi dell'account per un endpoint di origine Oracle autogestito.

  2. Concedi i privilegi dell'account necessari quando utilizzi Binary Reader per accedere ai log redo. Per ulteriori informazioni, consulta Account privileges required when using Binary Reader.

  3. Aggiungi i privilegi dell'account necessari quando utilizzi Binary Reader con Oracle Automatic Storage Management (ASM). Per ulteriori informazioni, consulta Additional account privileges required when using Binary Reader with Oracle ASM.

  4. Imposta il log supplementare. Per ulteriori informazioni, consulta Setting up supplemental logging.

  5. Configura la crittografia TDE. Per ulteriori informazioni, consulta Encryption methods when using an Oracle database as a source endpoint.

Le seguenti limitazioni si applicano alla replica dei dati di un database di origine Oracle su Oracle Cloud Infrastructure (OCI).

Limitazioni
  • DMS non supporta l'utilizzo di Oracle per accedere LogMiner ai redo log.

  • DMS non supporta Autonomous DB.

Utilizzo di un database Oracle AWS gestito come fonte per AWS DMS

Un database AWS gestito è un database che si trova su un servizio Amazon come Amazon RDS, Amazon Aurora o Amazon S3. Di seguito, puoi trovare i privilegi e le configurazioni che devi configurare quando utilizzi un database Oracle gestito con. AWS AWS DMS

Privilegi di account utente richiesti su una fonte Oracle gestita per AWSAWS DMS

Concedi i seguenti privilegi all'account utente Oracle specificato nella definizione dell'endpoint di origine Oracle.

Importante

Per tutti i valori dei parametri, ad esempio db_user e any-replicated-table, Oracle presuppone che il valore sia tutto in maiuscolo a meno che non si specifichi il valore con un identificatore con distinzione tra maiuscole e minuscole. Ad esempio, supponiamo di creare un valore db_user senza utilizzare le virgolette, come in CREATE USER myuser o CREATE USER MYUSER. In questo caso, Oracle identifica e memorizza il valore come tutto maiuscolo (MYUSER). Se si utilizzano le virgolette, come in CREATE USER "MyUser" o CREATE USER 'MyUser', Oracle identifica e memorizza il valore con distinzione tra maiuscole e minuscole specificato (MyUser).

GRANT CREATE SESSION to db_user; GRANT SELECT ANY TRANSACTION to db_user; GRANT SELECT on DBA_TABLESPACES to db_user; GRANT SELECT ON any-replicated-table to db_user; GRANT EXECUTE on rdsadmin.rdsadmin_util to db_user; -- For Oracle 12c or higher: GRANT LOGMINING to db_user; – Required only if the Oracle version is 12c or higher.

Inoltre, concedi le autorizzazioni SELECT e EXECUTE sugli oggetti SYS utilizzando la procedura Amazon RDS rdsadmin.rdsadmin_util.grant_sys_object, come illustrato. Per ulteriori informazioni, consulta Concessione di privilegi SELECT o EXECUTE su oggetti SYS.

exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_VIEWS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_PARTITIONS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_INDEXES', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_OBJECTS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TABLES', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_USERS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CATALOG', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CONSTRAINTS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CONS_COLUMNS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_COLS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_IND_COLUMNS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_LOG_GROUPS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOG', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGFILE', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$THREAD', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$NLS_PARAMETERS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TIMEZONE_NAMES', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TRANSACTION', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$CONTAINERS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('OBJ$', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_ENCRYPTED_COLUMNS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','db_user','SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR', 'db_user', 'EXECUTE'); -- (as of Oracle versions 12.1 and higher) exec rdsadmin.rdsadmin_util.grant_sys_object('REGISTRY$SQLPATCH', 'db_user', 'SELECT'); -- (for Amazon RDS Active Dataguard Standby (ADG)) exec rdsadmin.rdsadmin_util.grant_sys_object('V_$STANDBY_LOG', 'db_user', 'SELECT'); -- (for transparent data encryption (TDE)) exec rdsadmin.rdsadmin_util.grant_sys_object('ENC$', 'db_user', 'SELECT'); -- (for validation with LOB columns) exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_CRYPTO', 'db_user', 'EXECUTE'); -- (for binary reader) exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_DIRECTORIES','db_user','SELECT'); -- Required when the source database is Oracle Data guard, and Oracle Standby is used in the latest release of DMS version 3.4.6, version 3.4.7, and higher. exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATAGUARD_STATS', 'db_user', 'SELECT');

Per ulteriori informazioni sull'uso di Amazon RDS Active Dataguard Standby (ADG) con AWS DMS , consulta Utilizzo di Amazon RDS Oracle Standby (replica di lettura) come origine con Binary Reader per l'attività di CDC in AWS DMS.

Per ulteriori informazioni sull'utilizzo di Oracle TDE con AWS DMS, vedere. Metodi di crittografia supportati per l'utilizzo di Oracle come fonte per AWS DMS

Prerequisiti per la gestione delle transazioni aperte per Oracle Standby

Se si utilizzano AWS DMS le versioni 3.4.6 e successive, effettuare le seguenti operazioni per gestire le transazioni aperte per Oracle Standby.

  1. Crea un collegamento di database denominato AWSDMS_DBLINK nel database primario. DMS_USER utilizzerà il collegamento per connettersi al database primario. Tieni presente che il collegamento di database viene eseguito dall'istanza di standby per eseguire query sulle transazioni aperte in esecuzione nel database primario. Guarda l'esempio seguente.

    CREATE PUBLIC DATABASE LINK AWSDMS_DBLINK CONNECT TO DMS_USER IDENTIFIED BY DMS_USER_PASSWORD USING '(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=PRIMARY_HOST_NAME_OR_IP)(PORT=PORT)) (CONNECT_DATA=(SERVICE_NAME=SID)) )';
  2. Verifica che sia stata stabilita la connessione al collegamento di database usando DMS_USER, come illustrato nell'esempio seguente.

    select 1 from dual@AWSDMS_DBLINK

Configurazione di una fonte Oracle gestita per AWSAWS DMS

Prima di utilizzare un database Oracle AWS gestito come origine per AWS DMS, esegui le seguenti attività per il database Oracle:

  • Abilita backup automatici. Per ulteriori informazioni sull'abilitazione dei backup automatici, consulta Abilitazione dei backup automatici nella Guida per l'utente di Amazon RDS.

  • Imposta il log supplementare.

  • Imposta l'archiviazione. L'archiviazione dei redo log per l'istanza DB di Amazon RDS for Oracle AWS DMS consente di recuperare le informazioni di registro utilizzando Oracle o Binary Reader. LogMiner

Per impostare l'archiviazione
  1. Per impostare l'archiviazione eseguire il comando rdsadmin.rdsadmin_util.set_configuration.

    Ad esempio, per mantenere i log redo archiviati per 24 ore, esegui il seguente comando.

    exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24); commit;
    Nota

    Il commit è necessario per rendere effettiva la modifica.

  2. Assicurati che lo spazio di storage sia sufficiente per i log redo archiviati durante il periodo di conservazione specificato. Ad esempio, se il periodo di conservazione è 24 ore, calcola la dimensione totale dei log redo archiviati accumulati in un'ora di elaborazione tipica delle transazioni e moltiplica il totale per 24. Confronta il totale calcolato su 24 ore con lo spazio di storage disponibile e decidi se disponi di spazio di storage sufficiente per gestire un'intera elaborazione delle transazioni di 24 ore.

Per impostare il log supplementare
  1. Per abilitare il log supplementare a livello di database, esegui il comando riportato di seguito.

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
  2. Esegui il comando riportato di seguito per abilitare il log supplementare della chiave primaria.

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','PRIMARY KEY');
  3. (Facoltativo) Abilita il log supplementare della chiave a livello di tabella.

    Nel database di origine si verificherà un leggero sovraccarico quando il log supplementare della chiave è abilitato. Pertanto, se esegui solo la migrazione di un sottoinsieme di tabelle, puoi abilitare il log supplementare della chiave a livello di tabella. Per abilitare il log supplementare della chiave a livello di tabella, esegui il comando riportato di seguito.

    alter table table_name add supplemental log data (PRIMARY KEY) columns;

Configurazione di un'attività CDC per l'utilizzo di Binary Reader con un codice sorgente RDS for Oracle per AWS DMS

Puoi configurare l'accesso AWS DMS ai redo log di origine delle istanze Amazon RDS for Oracle utilizzando Binary Reader for CDC.

Nota

Per utilizzare Oracle LogMiner, sono sufficienti i privilegi minimi richiesti per l'account utente. Per ulteriori informazioni, consulta Privilegi di account utente richiesti su una fonte Oracle gestita per AWSAWS DMS.

Per utilizzare AWS DMS Binary Reader, specifica impostazioni aggiuntive e attributi di connessione aggiuntivi per l'endpoint di origine Oracle, a seconda della versione in uso. AWS DMS

Il supporto Binary Reader è disponibile nelle seguenti versioni di Amazon RDS per Oracle:

  • Oracle 11.2, versione 11.2.0.4V11 e successive

  • Oracle 12.1, versione 12.1.0.2.V7 e successive

  • Oracle 12.2, tutte le versioni

  • Oracle 18.0, tutte le versioni

  • Oracle 19.0, tutte le versioni

Per configurare CDC utilizzando Binary Reader
  1. Accedi al database di origine Amazon RDS per Oracle come utente master ed esegui le seguenti stored procedure per creare le directory a livello di server.

    exec rdsadmin.rdsadmin_master_util.create_archivelog_dir; exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;
  2. Concedi i seguenti privilegi all'account utente Oracle che viene utilizzato per accedere all'endpoint di origine Oracle.

    GRANT READ ON DIRECTORY ONLINELOG_DIR TO db_user; GRANT READ ON DIRECTORY ARCHIVELOG_DIR TO db_user;
  3. Imposta i seguenti attributi aggiuntivi di connessione sull'endpoint di origine Amazon RDS per Oracle.

    • Per RDS per Oracle versioni 11.2 e 12.1, imposta quanto segue.

      useLogminerReader=N;useBfile=Y;accessAlternateDirectly=false;useAlternateFolderForOnline=true; oraclePathPrefix=/rdsdbdata/db/{$DATABASE_NAME}_A/;usePathPrefix=/rdsdbdata/log/;replacePathPrefix=true;
    • Per RDS per Oracle versioni 12.2, 18.0 e 19.0, imposta quanto segue.

      useLogminerReader=N;useBfile=Y;
Nota

Assicurati che non ci siano spazi bianchi dopo il separatore punto e virgola (;) per più impostazioni di attributi, ad esempio oneSetting;thenAnother.

Per ulteriori informazioni sulla configurazione di un'attività di CDC, consulta Configurazione dell'attività di CDC su un database di origine Oracle.

Utilizzo di Amazon RDS Oracle Standby (replica di lettura) come origine con Binary Reader per l'attività di CDC in AWS DMS

Verifica i seguenti prerequisiti per l'utilizzo di Amazon RDS per Oracle Standby come origine quando usi Binary Reader per l'attività di CDC in AWS DMS:

  • Utilizza l'utente master Oracle per configurare Binary Reader.

  • Assicurati che AWS DMS attualmente supporti solo l'utilizzo di Oracle Active Data Guard Standby.

Una volta fatto, usa la procedura seguente per utilizzare RDS per Oracle Standby come origine con Binary Reader per l'attività di CDC.

Per configurare un'istanza RDS per Oracle Standby come origine quando si utilizza Binary Reader per l'attività di CDC
  1. Accedi all'istanza primaria RDS per Oracle come utente master.

  2. Esegui le seguenti stored procedure come documentato nella Guida per l'utente di Amazon RDS per creare le directory a livello di server.

    exec rdsadmin.rdsadmin_master_util.create_archivelog_dir; exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;
  3. Identifica le directory create nella fase 2.

    SELECT directory_name, directory_path FROM all_directories WHERE directory_name LIKE ( 'ARCHIVELOG_DIR_%' ) OR directory_name LIKE ( 'ONLINELOG_DIR_%' )

    Ad esempio, il codice precedente visualizza un elenco di directory come il seguente.

  4. Concedi il privilegio Read sulle directory precedenti all'account utente Oracle utilizzato per accedere a Oracle Standby.

    GRANT READ ON DIRECTORY ARCHIVELOG_DIR_A TO db_user; GRANT READ ON DIRECTORY ARCHIVELOG_DIR_B TO db_user; GRANT READ ON DIRECTORY ONLINELOG_DIR_A TO db_user; GRANT READ ON DIRECTORY ONLINELOG_DIR_B TO db_user;
  5. Applica un'opzione del log di archiviazione all'istanza principale. In questo modo le modifiche a ALL_DIRECTORIES vengano trasferite anche in Oracle Standby.

  6. Esegui una query ALL_DIRECTORIES su Oracle Standby per verificare che le modifiche siano state applicate.

  7. Crea un endpoint di origine per Oracle Standby utilizzando la AWS DMS Management Console o AWS Command Line Interface ().AWS CLI Al momento della creazione dell'endpoint, specifica i seguenti attributi aggiuntivi di connessione.

    useLogminerReader=N;useBfile=Y;archivedLogDestId=1;additionalArchivedLogDestId=2
  8. Dopo aver creato l'endpoint, utilizzare Test endpoint connection nella pagina Crea endpoint della console o il AWS CLI test-connection comando per verificare che la connettività sia stabilita.

Limitazioni all'uso di Oracle come fonte per AWS DMS

Quando si utilizza un database Oracle come origine per AWS DMS, si applicano le seguenti limitazioni:

  • AWS DMS supporta i tipi di dati Oracle Extended nella AWS DMS versione 3.5.0 e successive.

  • AWS DMS non supporta nomi di oggetti lunghi (oltre 30 byte).

  • AWS DMS non supporta indici basati su funzioni.

  • Se gestisci il log supplementare ed esegui trasformazioni su una qualsiasi delle colonne, assicurati che il log supplementare sia attivato per tutti i campi e le colonne. Per ulteriori informazioni sull'impostazione del log supplementare, consulta i seguenti argomenti:

  • AWS DMS non supporta il database radice dei contenitori multi-tenant (CDB$ROOT). Supporta un PDB utilizzando Binary Reader.

  • AWS DMS non supporta i vincoli differiti.

  • Nella AWS DMS versione 3.5.1 e successive, i LOB sicuri sono supportati solo eseguendo una ricerca LOB.

  • AWS DMS supporta la rename table table-name to new-table-name sintassi per tutte le versioni Oracle 11 e successive supportate. Questa sintassi non è supportata per i database di origine Oracle versione 10.

  • AWS DMS non replica i risultati dell'istruzione DDL. ALTER TABLE ADD column data_type DEFAULT default_value Invece di replicare default_value sulla destinazione, imposta la nuova colonna su NULL.

  • Se utilizzate la AWS DMS versione 3.4.7 o successiva, per replicare le modifiche derivanti da operazioni di partizione o sottopartizione, effettuate le seguenti operazioni prima di avviare un'attività DMS.

    • Crea manualmente la struttura della tabella partizionata (DDL).

    • Assicurati che il DDL sia lo stesso per l'origine e la destinazione Oracle.

    • Imposta l'attributo aggiuntivo di connessione enableHomogenousPartitionOps=true.

    Per ulteriori informazioni su enableHomogenousPartitionOps, consulta Impostazioni degli endpoint quando si utilizza Oracle come fonte per AWS DMS. Inoltre, tieni presente che per il pieno carico e attività di CDC, DMS non replica le modifiche ai dati acquisite come parte delle modifiche memorizzate nella cache. In questo caso d'uso, ricrea la struttura della tabella sulla destinazione Oracle e ricarica le tabelle in questione.

    Prima della AWS DMS versione 3.4.7:

    DMS non replica le modifiche dei dati derivanti dalle operazioni di partizione o di sottopartizione (ADD, DROP, EXCHANGE e TRUNCATE). Tali aggiornamenti possono causare i seguenti errori durante la replica:

    • Nel caso di operazioni ADD, aggiornamenti ed eliminazioni sui dati aggiunti potrebbero generare un avviso "0 righe interessate".

    • Nel caso di operazioni DROP e TRUNCATE, nuovi inserimenti potrebbero generare errori di "duplicazione".

    • Operazioni EXCHANGE potrebbero generare sia un avviso "0 righe interessate" che errori di "duplicazione".

    Per replicare le modifiche derivanti da operazioni di partizione o di sottopartizione, ricaricare le tabelle in questione. Dopo aver aggiunto una nuova partizione vuota, le operazioni sulla partizione appena aggiunta vengono replicate nella destinazione come al solito.

  • AWS DMS le versioni precedenti alla 3.4 non supportano le modifiche ai dati sulla destinazione derivanti dall'esecuzione dell'CREATE TABLE ASistruzione sull'origine. Tuttavia, nella destinazione viene creata la nuova tabella.

  • AWS DMS non acquisisce le modifiche apportate dal DBMS_REDEFINITION pacchetto Oracle, ad esempio i metadati della tabella e il OBJECT_ID campo.

  • AWS DMS mappa le colonne BLOB e CLOB vuote NULL sulla destinazione.

  • Quando si acquisiscono le modifiche con Oracle 11 LogMiner, un aggiornamento su una colonna CLOB con una lunghezza di stringa superiore al 1982 viene perso e la destinazione non viene aggiornata.

  • Durante l'acquisizione dei dati di modifica (CDC), AWS DMS non supporta gli aggiornamenti in batch alle colonne numeriche definite come chiave primaria.

  • AWS DMS non supporta determinati UPDATE comandi. L'esempio seguente è un comando UPDATE non supportato.

    UPDATE TEST_TABLE SET KEY=KEY+1;

    Qui, TEST_TABLE è il nome della tabella e KEY è una colonna numerica definita come chiave primaria.

  • AWS DMS non supporta la modalità LOB completa per il caricamento delle colonne LONG e LONG RAW. È invece possibile utilizzare la modalità LOB limitata per migrare questi tipi di dati in una destinazione Oracle. In modalità LOB limitata, AWS DMS tronca tutti i dati a 64 KB impostati su colonne LONG o LONG RAW più lunghe di 64 KB.

  • AWS DMS non supporta la modalità LOB completa per il caricamento delle colonne XMLTYPE. È invece possibile utilizzare la modalità LOB limitata per migrare le colonne XMLTYPE in una destinazione Oracle. In modalità LOB limitata, DMS tronca tutti i dati più lunghi della variabile "Dimensione massima dei LOB" definita dall'utente. Il valore massimo consigliato per "Dimensione massima dei LOB" è 100 MB.

  • AWS DMS non replica tabelle i cui nomi contengono apostrofi.

  • AWS DMS supporta CDC da viste materializzate. Tuttavia DMS non supporta l'attività di CDC da nessun'altra vista.

  • AWS DMS non supporta CDC per le tabelle organizzate a indice con un segmento di overflow.

  • AWS DMS non supporta l'Drop Partitionoperazione per le tabelle partizionate per riferimento con set to. enableHomogenousPartitionOps true

  • Quando si utilizza Oracle LogMiner per accedere ai redo log, AWS DMS presenta le seguenti limitazioni:

    • Solo per Oracle 12, AWS DMS non replica alcuna modifica alle colonne LOB.

    • Per tutte le versioni di Oracle, AWS DMS non replica il risultato delle UPDATE operazioni sulle colonne LOB XMLTYPE e sulle colonne LOB.

    • AWS DMS non supporta le transazioni XA in fase di replica durante l'utilizzo di Oracle. LogMiner

    • Oracle LogMiner non supporta le connessioni a un database collegabile (PDB). Per connettersi a un PDB, accedere ai redo log utilizzando Binary Reader.

    • Le operazioni SHRINK SPACE non sono supportate.

  • Quando si utilizza Binary Reader, AWS DMS presenta le seguenti limitazioni:

    • Non supporta i cluster di tabelle.

    • Supporta solo le operazioni SHRINK SPACE a livello di tabella. Questo livello include la tabella completa, le partizioni e le sottopartizioni.

    • Non supporta le modifiche alle tabelle organizzate per indice con compressione delle chiavi.

    • Non supporta l'implementazione dei log redo online su dispositivi raw.

    • Binary Reader supporta la crittografia TDE solo per i database Oracle autogestiti perché RDS per Oracle non supporta il recupero delle password del wallet per le chiavi di crittografia TDE.

  • AWS DMS non supporta connessioni a una sorgente Oracle Amazon RDS che utilizza un proxy Oracle Automatic Storage Management (ASM).

  • AWS DMS non supporta colonne virtuali.

  • AWS DMS non supporta il tipo di ROWID dati o le viste materializzate basate su una colonna ROWID.

    AWS DMS supporta parzialmente Oracle Materialized Views. Per i caricamenti completi, DMS può eseguire la copia del pieno carico di una vista materializzata Oracle. DMS copia la vista materializzata come tabella di base nel sistema di destinazione e ignora tutte le colonne ROWID nella vista materializzata. Per la replica continua (CDC), DMS tenta di replicare le modifiche ai dati nella vista materializzata, ma i risultati potrebbero non essere ideali. In particolare, se la vista materializzata viene completamente aggiornata, DMS replica le singole eliminazioni per tutte le righe, seguite dai singoli inserimenti per tutte le righe. Si tratta di un esercizio che richiede molte risorse e potrebbe avere scarse prestazioni per le viste materializzate con un numero elevato di righe. Per una replica continua in cui le viste materializzate eseguono un aggiornamento rapido, DMS cerca di elaborare e replicare le modifiche ai dati con aggiornamento rapido. In entrambi i casi, DMS ignora qualsiasi colonna ROWID nella vista materializzata.

  • AWS DMS non carica o acquisisce tabelle temporanee globali.

  • Per le destinazioni S3 che utilizzano la replica, abilita il log supplementare su ogni colonna in modo che gli aggiornamenti delle righe di origine possano acquisire ogni valore di colonna. Di seguito è riportato un esempio: alter table yourtablename add supplemental log data (all) columns;.

  • Un aggiornamento per una riga con una chiave univoca composita che contiene null non può essere replicato sulla destinazione.

  • AWS DMS non supporta l'uso di più chiavi di crittografia Oracle TDE sullo stesso endpoint di origine. Ogni endpoint può avere un solo attributo per il nome della chiave di crittografia TDE "securityDbEncryptionName" e una password TDE per questa chiave.

  • Durante la replica da Amazon RDS for Oracle, TDE è supportato solo con tablespace crittografato e utilizzando Oracle. LogMiner

  • AWS DMS non supporta più operazioni di ridenominazione di tabelle in rapida successione.

  • Quando si utilizza Oracle 19.0 come sorgente, AWS DMS non supporta le seguenti funzionalità:

    • Reindirizzamento DML con protezione dei dati

    • Tabelle ibride partizionate

    • Account Oracle solo schema

  • AWS DMS non supporta la migrazione di tabelle o viste di tipo BIN$ oDR$.

  • A partire da Oracle 18.x, AWS DMS non supporta l'acquisizione dei dati di modifica (CDC) di Oracle Express Edition (Oracle Database XE).

  • Al momento della migrazione dei dati da una colonna CHAR, DMS tronca gli spazi finali.

  • AWS DMS non supporta la replica dai contenitori di applicazioni.

  • AWS DMS non supporta l'esecuzione di Oracle Flashback Database e dei punti di ripristino, poiché queste operazioni influiscono sulla coerenza dei file Oracle Redo Log.

  • La procedura INSERT di caricamento diretto con l'opzione di esecuzione parallela non è supportata nei seguenti casi:

    • Tabelle non compresse con più di 255 colonne

    • Dimensione delle righe superiore a 8K

    • Tabelle HCC Exadata

    • Database in esecuzione sulla piattaforma Big Endian

  • Una tabella di origine senza chiave primaria né univoca richiede l'abilitazione del log supplementare ALL COLUMN. Crea più attività di log redo e può aumentare la latenza dell'attività di CDC di DMS.

  • AWS DMS non migra i dati dalle colonne invisibili del database di origine. Per includere queste colonne nell'ambito della migrazione, utilizza l'istruzione ALTER TABLE per renderle visibili.

Supporto SSL per un endpoint Oracle

AWS DMS Gli endpoint Oracle supportano SSL V3 per le modalità e SSL. none verify-ca Per utilizzare SSL con un endpoint Oracle, carica il wallet Oracle per l'endpoint anziché i file di certificato .pem.

Utilizzo di un certificato esistente per SSL Oracle

Per utilizzare un'istallazione client Oracle esistente per creare il file wallet Oracle dal file di certificato CA, procedi come segue.

Per utilizzare un'installazione client Oracle esistente per SSL Oracle con AWS DMS
  1. Impostare la variabile di sistema ORACLE_HOME sulla posizione della directory dbhome_1 eseguendo il comando seguente.

    prompt>export ORACLE_HOME=/home/user/app/user/product/12.1.0/dbhome_1
  2. Aggiungere $ORACLE_HOME/lib alla variabile di sistema LD_LIBRARY_PATH.

    prompt>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
  3. Crea una directory per il wallet Oracle nel percorso $ORACLE_HOME/ssl_wallet.

    prompt>mkdir $ORACLE_HOME/ssl_wallet
  4. Inserire il file .pem del certificato CA nella directory ssl_wallet. Se si utilizza Amazon RDS, è possibile scaricare il file del certificato CA root rds-ca-2015-root.pem ospitato da Amazon RDS. Per ulteriori informazioni sul download di questo file, consulta Utilizzo di SSL/TLS per crittografare una connessione a un'istanza database nella Guida per l'utente di Amazon RDS.

  5. Esegui i comandi seguenti per creare il wallet Oracle.

    prompt>orapki wallet create -wallet $ORACLE_HOME/ssl_wallet -auto_login_only prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert -cert $ORACLE_HOME/ssl_wallet/ca-cert.pem -auto_login_only

Una volta completate le fasi precedenti, è possibile importare il file wallet con la chiamata API ImportCertificate specificando il parametro certificate-wallet. È quindi possibile utilizzare il certificato wallet importato quando si seleziona verify-ca come modalità SSL durante la creazione o la modifica dell'endpoint Oracle.

Nota

I portafogli Oracle sono file binari. AWS DMS accetta questi file così come sono.

Utilizzo di un certificato autofirmato per SSL Oracle

Per utilizzare un certificato autofirmato per Oracle SSL, procedi nel seguente modo, presupponendo che la password del wallet Oracle sia oracle123.

Per utilizzare un certificato autofirmato per Oracle SSL con AWS DMS
  1. Creare una directory da utilizzare con il certificato autofirmato.

    mkdir -p /u01/app/oracle/self_signed_cert
  2. Passare alla directory creata nella fase precedente.

    cd /u01/app/oracle/self_signed_cert
  3. Creare una chiave root.

    openssl genrsa -out self-rootCA.key 2048
  4. Autofirmare un certificato root utilizzando la chiave root creata nel passaggio precedente.

    openssl req -x509 -new -nodes -key self-rootCA.key -sha256 -days 3650 -out self-rootCA.pem

    Utilizza i parametri di input, come i seguenti.

    • Country Name (2 letter code) [XX], ad esempio: AU

    • State or Province Name (full name) [], ad esempio: NSW

    • Locality Name (e.g., city) [Default City], ad esempio: Sydney

    • Organization Name (e.g., company) [Default Company Ltd], ad esempio: AmazonWebService

    • Organizational Unit Name (e.g., section) [], ad esempio: DBeng

    • Common Name (e.g., your name or your server's hostname) [], ad esempio: aws

    • Email Address [], ad esempio: abcd.efgh@amazonwebservice.com

  5. Creare una directory per il wallet Oracle per il database Oracle.

    mkdir -p /u01/app/oracle/wallet
  6. Creare un nuovo wallet Oracle.

    orapki wallet create -wallet "/u01/app/oracle/wallet" -pwd oracle123 -auto_login_local
  7. Aggiungere il certificato root al wallet Oracle.

    orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd oracle123 -trusted_cert -cert /u01/app/oracle/self_signed_cert/self-rootCA.pem
  8. Elencare i contenuti del wallet Oracle. L'elenco deve includere il certificato root.

    orapki wallet display -wallet /u01/app/oracle/wallet -pwd oracle123

    Ad esempio, potrebbe essere visualizzato in modo simile a quanto segue.

    Requested Certificates: User Certificates: Trusted Certificates: Subject: CN=aws,OU=DBeng,O= AmazonWebService,L=Sydney,ST=NSW,C=AU
  9. Generare la richiesta di firma del certificato (CSR) utilizzando l'utility ORAPKI.

    orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd oracle123 -dn "CN=aws" -keysize 2048 -sign_alg sha256
  10. Esegui il comando seguente.

    openssl pkcs12 -in /u01/app/oracle/wallet/ewallet.p12 -nodes -out /u01/app/oracle/wallet/nonoracle_wallet.pem

    Ciò produce un output simile al seguente.

    Enter Import Password: MAC verified OK Warning unsupported bag type: secretBag
  11. Utilizzare "dms" come nome comune.

    openssl req -new -key /u01/app/oracle/wallet/nonoracle_wallet.pem -out certdms.csr

    Utilizza i parametri di input, come i seguenti.

    • Country Name (2 letter code) [XX], ad esempio: AU

    • State or Province Name (full name) [], ad esempio: NSW

    • Locality Name (e.g., city) [Default City], ad esempio: Sydney

    • Organization Name (e.g., company) [Default Company Ltd], ad esempio: AmazonWebService

    • Organizational Unit Name (e.g., section) [], ad esempio: aws

    • Common Name (e.g., your name or your server's hostname) [], ad esempio: aws

    • Email Address [], ad esempio: abcd.efgh@amazonwebservice.com

    Assicurati che non siano uguali a quelli della fase 4. Puoi, ad esempio, modificare il nome dell'unità organizzativa usando un nome diverso, come illustrato.

    Inserisci gli attributi aggiuntivi seguenti da inviare con la richiesta di certificato.

    • A challenge password [], ad esempio: oracle123

    • An optional company name [], ad esempio: aws

  12. Ottenere la firma del certificato.

    openssl req -noout -text -in certdms.csr | grep -i signature

    La chiave di firma per questo post è sha256WithRSAEncryption.

  13. Utilizza il comando seguente per generare il file di certificato (.crt).

    openssl x509 -req -in certdms.csr -CA self-rootCA.pem -CAkey self-rootCA.key -CAcreateserial -out certdms.crt -days 365 -sha256

    Ciò produce un output simile al seguente.

    Signature ok subject=/C=AU/ST=NSW/L=Sydney/O=awsweb/OU=DBeng/CN=aws Getting CA Private Key
  14. Aggiungere il certificato al wallet.

    orapki wallet add -wallet /u01/app/oracle/wallet -pwd oracle123 -user_cert -cert certdms.crt
  15. Visualizza il wallet. È composto da due voci. Consulta il seguente codice.

    orapki wallet display -wallet /u01/app/oracle/wallet -pwd oracle123
  16. Configurare il file sqlnet.ora ($ORACLE_HOME/network/admin/sqlnet.ora).

    WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/wallet/) ) ) SQLNET.AUTHENTICATION_SERVICES = (NONE) SSL_VERSION = 1.0 SSL_CLIENT_AUTHENTICATION = FALSE SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)
  17. Interrompere il listener Oracle.

    lsnrctl stop
  18. Aggiungere voci per SSL nel file listener.ora ($ORACLE_HOME/network/admin/listener.ora).

    SSL_CLIENT_AUTHENTICATION = FALSE WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/wallet/) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = SID) (ORACLE_HOME = ORACLE_HOME) (SID_NAME = SID) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCPS)(HOST = localhost.localdomain)(PORT = 1522)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
  19. Configurare il file tnsnames.ora ($ORACLE_HOME/network/admin/tnsnames.ora).

    <SID>= (DESCRIPTION= (ADDRESS_LIST = (ADDRESS=(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <SID>) ) ) <SID>_ssl= (DESCRIPTION= (ADDRESS_LIST = (ADDRESS=(PROTOCOL = TCPS)(HOST = localhost.localdomain)(PORT = 1522)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <SID>) ) )
  20. Riavviare il listener Oracle.

    lsnrctl start
  21. Mostrare lo stato del listener Oracle.

    lsnrctl status
  22. Verificare la connessione SSL al database da localhost utilizzando sqlplus e la voce SSL tnsnames.

    sqlplus -L ORACLE_USER@SID_ssl
  23. Verificare che la connessione sia stabilita utilizzando SSL.

    SELECT SYS_CONTEXT('USERENV', 'network_protocol') FROM DUAL; SYS_CONTEXT('USERENV','NETWORK_PROTOCOL') -------------------------------------------------------------------------------- tcps
  24. Modificare la directory nella directory con il certificato autofirmato.

    cd /u01/app/oracle/self_signed_cert
  25. Crea un nuovo portafoglio client Oracle AWS DMS da utilizzare.

    orapki wallet create -wallet ./ -auto_login_only
  26. Aggiungere il certificato root autofirmato al wallet Oracle.

    orapki wallet add -wallet ./ -trusted_cert -cert self-rootCA.pem -auto_login_only
  27. Elenca il contenuto del portafoglio Oracle AWS DMS da utilizzare. L'elenco deve includere il certificato root autofirmato.

    orapki wallet display -wallet ./

    Ciò produce un output simile al seguente.

    Trusted Certificates: Subject: CN=aws,OU=DBeng,O=AmazonWebService,L=Sydney,ST=NSW,C=AU
  28. Carica il portafoglio Oracle su cui hai appena creato AWS DMS.

Metodi di crittografia supportati per l'utilizzo di Oracle come fonte per AWS DMS

Nella tabella seguente sono riportati i metodi TDE (Transparent Data Encryption) AWS DMS supportati quando si lavora con un database di origine Oracle.

Metodo di accesso ai redo log Tablespace TDE Colonna TDE
Oracle LogMiner
Binary Reader

AWS DMS supporta Oracle TDE quando si utilizza Binary Reader, sia a livello di colonna che a livello di tablespace. Per utilizzare la crittografia TDE con AWS DMS, è necessario innanzitutto identificare la posizione del wallet Oracle in cui sono archiviate la chiave di crittografia TDE e la password TDE. Identifica quindi la chiave di crittografia TDE e la password corrette per l'endpoint di origine Oracle.

Per identificare e specificare la chiave di crittografia e la password per la crittografia TDE
  1. Esegui la seguente query per trovare il wallet di crittografia Oracle nell'host di database Oracle.

    SQL> SELECT WRL_PARAMETER FROM V$ENCRYPTION_WALLET; WRL_PARAMETER -------------------------------------------------------------------------------- /u01/oracle/product/12.2.0/dbhome_1/data/wallet/

    Qui, /u01/oracle/product/12.2.0/dbhome_1/data/wallet/ è la posizione del wallet.

  2. Ottieni l'ID della chiave master utilizzando una delle seguenti opzioni di crittografia, a seconda di quale restituisce questo valore.

    1. Per la crittografia a livello di tabella o colonna, esegui le seguenti query.

      SQL> SELECT OBJECT_ID FROM ALL_OBJECTS WHERE OWNER='DMS_USER' AND OBJECT_NAME='TEST_TDE_COLUMN' AND OBJECT_TYPE='TABLE'; OBJECT_ID --------------- 81046 SQL> SELECT MKEYID FROM SYS.ENC$ WHERE OBJ#=81046; MKEYID ------------ AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

      Qui, AWGDC9glSk8Xv+3bVveiVSg è l'ID della chiave master (MKEYID). Se ottieni un valore per MKEYID, puoi continuare con la fase 3. In caso contrario, passa alla fase 2.

      Nota

      Il carattere 'A' della stringa finale (AAA...) non fa parte del valore.

    2. Per la crittografia a livello di spazio di tabella, esegui le seguenti query.

      SQL> SELECT TABLESPACE_NAME, ENCRYPTED FROM dba_tablespaces; TABLESPACE_NAME ENC ------------------------------ --- SYSTEM NO SYSAUX NO UNDOTBS1 NO TEMP NO USERS NO TEST_ENCRYT YES SQL> SELECT name,utl_raw.cast_to_varchar2( utl_encode.base64_encode('01'||substr(mkeyid,1,4))) || utl_raw.cast_to_varchar2( utl_encode.base64_encode(substr(mkeyid,5,length(mkeyid)))) masterkeyid_base64 FROM (SELECT t.name, RAWTOHEX(x.mkid) mkeyid FROM v$tablespace t, x$kcbtek x WHERE t.ts#=x.ts#) WHERE name = 'TEST_ENCRYT'; NAME MASTERKEYID_BASE64 ------------------------------ ---------------------------------- TEST_ENCRYT AWGDC9glSk8Xv+3bVveiVSg=

      Qui, AWGDC9glSk8Xv+3bVveiVSg è l'ID della chiave master (TEST_ENCRYT). Se entrambe le fasi 2.1 e 2.2 restituiscono un valore, sono sempre identici.

      Il carattere '=' finale non fa parte del valore.

  3. Dalla riga di comando, elenca le voci del wallet di crittografia sull'host di database Oracle di origine.

    $ mkstore -wrl /u01/oracle/product/12.2.0/dbhome_1/data/wallet/ -list Oracle Secret Store entries: ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ORACLE.SECURITY.DB.ENCRYPTION.AY1mRA8OXU9Qvzo3idU4OH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY ORACLE.SECURITY.ID.ENCRYPTION. ORACLE.SECURITY.KB.ENCRYPTION. ORACLE.SECURITY.KM.ENCRYPTION.AY1mRA8OXU9Qvzo3idU4OH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA

    Trova la voce contenente l'ID della chiave master che hai trovato nella fase 2 (AWGDC9glSk8Xv+3bVveiVSg). Questa voce è il nome della chiave di crittografia TDE.

  4. Visualizza i dettagli della voce trovata nella fase precedente.

    $ mkstore -wrl /u01/oracle/product/12.2.0/dbhome_1/data/wallet/ -viewEntry ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA Oracle Secret Store Tool : Version 12.2.0.1.0 Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved. Enter wallet password: ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA = AEMAASAASGYs0phWHfNt9J5mEMkkegGFiD4LLfQszDojgDzbfoYDEACv0x3pJC+UGD/PdtE2jLIcBQcAeHgJChQGLA==

    Inserisci la password del wallet per vedere il risultato.

    Qui, il valore a destra di '=' è la password TDE.

  5. Specifica il nome della chiave di crittografia TDE per l'endpoint di origine Oracle impostando l'attributo aggiuntivo di connessione securityDbEncryptionName.

    securityDbEncryptionName=ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  6. Fornisci la password TDE associata a questa chiave sulla console come parte del valore Password dell'origine Oracle. Utilizza l'ordine seguente per formattare i valori delle password separati da virgole, terminati dal valore della password TDE.

    Oracle_db_password,ASM_Password,AEMAASAASGYs0phWHfNt9J5mEMkkegGFiD4LLfQszDojgDzbfoYDEACv0x3pJC+UGD/PdtE2jLIcBQcAeHgJChQGLA==

    Specificare i valori della password in questo ordine indipendentemente dalla configurazione del database Oracle. Ad esempio, se si utilizza TDE ma il database Oracle non utilizza ASM, specifica i valori delle password nel seguente ordine separato da virgole.

    Oracle_db_password,,AEMAASAASGYs0phWHfNt9J5mEMkkegGFiD4LLfQszDojgDzbfoYDEACv0x3pJC+UGD/PdtE2jLIcBQcAeHgJChQGLA==

Se le credenziali TDE specificate non sono corrette, l'operazione di AWS DMS migrazione non ha esito negativo. Tuttavia, l'attività non legge né applica le modifiche di replica in corso al database di destinazione. Dopo aver avviato l'attività, monitora le Statistiche della tabella nella pagina dell'attività di migrazione della console per assicurarti che le modifiche vengano replicate.

Se un amministratore di database modifica i valori delle credenziali TDE per il database Oracle durante l'esecuzione, l'attività ha esito negativo. Il messaggio di errore contiene il nuovo nome della chiave di crittografia TDE. Per specificare nuovi valori e riavviare l'attività, utilizza la procedura precedente.

Importante

Non è possibile manipolare un wallet TDE creato in una posizione Oracle Automatic Storage Management (ASM) perché i comandi a livello di sistema operativo, come cp, mv, orapki e mkstore, danneggiano i file del wallet archiviati in una posizione ASM. Questa restrizione è specifica solo per i file del wallet TDE archiviati in una posizione ASM, ma non per i file del wallet TDE archiviati in una directory del sistema operativo locale.

Per manipolare un wallet TDE archiviato in ASM con comandi a livello di sistema operativo, crea un keystore locale e unisci il keystore ASM nel keystore locale come segue:

  1. Crea un keystore locale.

    ADMINISTER KEY MANAGEMENT create keystore file system wallet location identified by wallet password;
  2. Unisci il keystore ASM nel keystore locale.

    ADMINISTER KEY MANAGEMENT merge keystore ASM wallet location identified by wallet password into existing keystore file system wallet location identified by wallet password with backup;

Quindi, per elencare le voci del wallet di crittografia e la password TDE, esegui le fasi 3 e 4 sul keystore locale.

Metodi di compressione supportati per l'utilizzo di Oracle come fonte per AWS DMS

Nella tabella seguente, puoi trovare i metodi di compressione AWS DMS supportati quando si lavora con un database di origine Oracle. Come illustrato nella tabella, il supporto alla compressione dipende sia dalla versione del database Oracle in uso sia dal fatto che DMS sia configurato per utilizzare Oracle LogMiner per accedere ai redo log.

Versione Base OLTP

HCC (da Oracle 11g R2 o versione successiva)

Altri
Oracle 10 No N/D N/D No
Oracle 11 o versione successiva: Oracle LogMiner Sì: qualsiasi metodo di compressione supportato da Oracle LogMiner.
Oracle 11 o versione successiva, Binary Reader Sì. Per ulteriori informazioni, consulta la seguente nota.
Nota

Quando l'endpoint di origine Oracle è configurato per utilizzare Binary Reader, il livello Query Low del metodo di compressione HCC è supportato solo per le attività di caricamento completo.

Replica di tabelle annidate utilizzando Oracle come fonte per AWS DMS

AWS DMS supporta la replica di tabelle Oracle contenenti colonne che sono tabelle nidificate o tipi definiti. Per abilitare questa funzionalità, aggiungere la seguente impostazione dell'attributo aggiuntivo di connessione all'endpoint di origine Oracle.

allowSelectNestedTables=true;

AWS DMS crea le tabelle di destinazione dalle tabelle nidificate di Oracle come normali tabelle principali e secondarie sulla destinazione senza un vincolo univoco. Per accedere ai dati corretti sulla destinazione, eseguire il join tra le tabelle padre e figlio. A tale scopo, creare manualmente un indice non univoco sulla colonna NESTED_TABLE_ID nella tabella figlio di destinazione. È quindi possibile utilizzare la colonna NESTED_TABLE_ID nella clausola di join ON insieme alla colonna padre che corrisponde al nome della tabella figlio. Inoltre, la creazione di un indice di questo tipo migliora le prestazioni quando i dati della tabella secondaria di destinazione vengono aggiornati o eliminati da. AWS DMS Per vedere un esempio, consulta Esempio di join per le tabelle padre e figlio sulla destinazione.

Si consiglia di configurare l'arresto dell'attività dopo il completamento di un caricamento completo. Quindi, creare questi indici non univoci per tutte le tabelle figlio replicate nella destinazione e riprendere l'attività.

Se una tabella nidificata acquisita viene aggiunta a una tabella principale esistente (acquisita o non acquisita), la AWS DMS gestisce correttamente. Tuttavia, l'indice non univoco per la tabella di destinazione corrispondente non viene creato. In questo caso, se la tabella figlio di destinazione diventa estremamente grande, le prestazioni potrebbero risentirne. In tal caso, si consiglia di interrompere l'attività, creare l'indice, quindi riprendere l'attività.

Dopo che le tabelle nidificate vengono replicate nella destinazione, fare in modo che il DBA esegua un join sulle tabelle figlio padre e corrispondenti per appiattire i dati.

Prerequisiti per la replica di tabelle nidificate Oracle come origine

Assicurarsi di replicare le tabelle padre per tutte le tabelle nidificate replicate. Include sia le tabelle principali (le tabelle contenenti la colonna della tabella nidificata) che le tabelle secondarie (ovvero nidificate) nelle mappature delle AWS DMS tabelle.

Tipi di tabelle nidificate Oracle supportati come origine

AWS DMS supporta i seguenti tipi di tabelle nidificate Oracle come origine:

  • Tipo di dati

  • Oggetto definito dall'utente

Limitazioni del supporto di AWS DMS per le tabelle nidificate Oracle come origine

AWS DMS presenta le seguenti limitazioni nel supporto delle tabelle nidificate Oracle come origine:

  • AWS DMS supporta solo un livello di nidificazione delle tabelle.

  • AWS DMS la mappatura delle tabelle non verifica che sia la tabella o le tabelle principale che quelle secondarie siano selezionate per la replica. Cioè, è possibile selezionare una tabella padre senza un a tabella figlio o una tabella figlio senza una tabella padre.

Come fa AWS DMS a replicare le tabelle nidificate di Oracle come origine

AWS DMS replica le tabelle principali e nidificate sulla destinazione come segue:

  • AWS DMS crea la tabella principale identica a quella di origine. Definisce quindi la colonna nidificata nella tabella padre come RAW(16) e include un riferimento alle tabelle nidificate della tabella padre nella sua colonna NESTED_TABLE_ID.

  • AWS DMS crea la tabella figlio identica alla sorgente nidificata, ma con una colonna aggiuntiva denominataNESTED_TABLE_ID. Questa colonna ha lo stesso tipo e valore della colonna nidificata nella tabella padre corrispondente e ha lo stesso significato.

Esempio di join per le tabelle padre e figlio sulla destinazione

Per appiattire la tabella padre, eseguire un join tra le tabelle padre e figlio, come illustrato nell'esempio seguente:

  1. Creare la tabella Type.

    CREATE OR REPLACE TYPE NESTED_TEST_T AS TABLE OF VARCHAR(50);
  2. Creare la tabella padre con una colonna di tipo NESTED_TEST_T come definita precedentemente.

    CREATE TABLE NESTED_PARENT_TEST (ID NUMBER(10,0) PRIMARY KEY, NAME NESTED_TEST_T) NESTED TABLE NAME STORE AS NAME_KEY;
  3. Appiattire la tabella NESTED_PARENT_TEST utilizzando un join con la tabella figlio NAME_KEY in cui CHILD.NESTED_TABLE_ID corrisponde a PARENT.NAME.

    SELECT … FROM NESTED_PARENT_TEST PARENT, NAME_KEY CHILD WHERE CHILD.NESTED_ TABLE_ID = PARENT.NAME;

Memorizzazione di REDO su Oracle ASM quando si utilizza Oracle come origine per AWS DMS

Per le origini Oracle con un'elevata generazione di REDO, l'archiviazione di REDO su Oracle ASM può favorire le prestazioni, specialmente in una configurazione RAC perché è possibile configurare DMS per distribuire le letture REDO di ASM su tutti i nodi ASM.

Per utilizzare questa configurazione, usa l'attributo di connessione asmServer. Ad esempio, la seguente stringa di connessione distribuisce le letture REDO di DMS su 3 nodi ASM:

asmServer=(DESCRIPTION=(CONNECT_TIMEOUT=8)(ENABLE=BROKEN)(LOAD_BALANCE=ON)(FAILOVER=ON) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=asm_node1_ip_address)(PORT=asm_node1_port_number)) (ADDRESS=(PROTOCOL=tcp)(HOST=asm_node2_ip_address)(PORT=asm_node2_port_number)) (ADDRESS=(PROTOCOL=tcp)(HOST=asm_node3_ip_address)(PORT=asm_node3_port_number))) (CONNECT_DATA=(SERVICE_NAME=+ASM)))

Quando si utilizza NFS per archiviare i REDO Oracle, è importante assicurarsi che vengano applicate le patch del client DNFS (Direct NFS) applicabili, in particolare tutte le patch che risolvono il bug Oracle 25224242. Per ulteriori informazioni, consulta la seguente pubblicazione Oracle sulle patch relative al client Direct NFS, Recommended Patches for Direct NFS Client.

Inoltre, per migliorare le prestazioni di lettura NFS, si consiglia di aumentare il valore di rsize e wsize in fstab per il volume NFS, come mostrato nell'esempio seguente.

NAS_name_here:/ora_DATA1_archive /u09/oradata/DATA1 nfs rw,bg,hard,nointr,tcp,nfsvers=3,_netdev, timeo=600,rsize=262144,wsize=262144

Inoltre, regola il valore tcp-max-xfer-size come segue:

vserver nfs modify -vserver vserver -tcp-max-xfer-size 262144

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

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

Nella tabella seguente sono riportate le impostazioni degli endpoint che è possibile utilizzare con Oracle come origine.

Nome Descrizione
AccessAlternateDirectly

Imposta questo attributo su false per utilizzare Binary Reader al fine di acquisire i dati di modifica per un Amazon RDS per Oracle come origine. In questo modo l'istanza DMS è configurata per non accedere ai log redo tramite qualsiasi sostituzione del prefisso del percorso specificato utilizzando l'accesso diretto ai file. Per ulteriori informazioni, consulta Configurazione di un'attività CDC per l'utilizzo di Binary Reader con un codice sorgente RDS for Oracle per AWS DMS.

Valore predefinito: true

Valori validi: true/false

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

AdditionalArchivedLogDestId

Imposta questo attributo con ArchivedLogDestId in una configurazione principale/in standby. Questo attributo è utile in caso di switchover quando si utilizza un database Oracle Data Guard come origine. In questo caso, AWS DMS deve sapere da quale destinazione recuperare i redo log dell'archivio per leggere le modifiche. Ciò è necessario perché dopo lo switchover l'istanza primaria precedente è diventata un'istanza di standby.

Sebbene AWS DMS supporti l'uso dell'RESETLOGSopzione Oracle per aprire il database, non utilizzarla mai a RESETLOGS meno che non sia necessario. Per ulteriori informazioni su RESETLOGS, consulta RMAN Data Repair Concepts nella Guida per l'utente di Oracle® Database Backup and Recovery.

Valori validi: ID di destinazione dell'archivio

Esempio: --oracle-settings '{"AdditionalArchivedLogDestId": 2}'

AddSupplementalLogging

Imposta questo attributo per configurare il log supplementare a livello di tabella per il database Oracle. Questo attributo abilita uno dei seguenti elementi in tutte le tabelle selezionate per un'attività di migrazione, a seconda dei metadati della tabella:

  • Registrazione supplementare di PRIMARY KEY COLUMNS

  • Registrazione supplementare di UNIQUE KEY COLUMNS

  • Registrazione supplementare di ALL COLUMNS

Valore predefinito: false

Valori validi: true/false

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

Nota

Se utilizzi questa opzione, è comunque necessario abilitare il log supplementare a livello di database come descritto in precedenza.

AllowSelectNestedTables

Imposta questo attributo su true per abilitare la replica delle tabelle Oracle contenenti colonne che sono tabelle nidificate o tipi definiti. Per ulteriori informazioni, consulta Replica di tabelle annidate utilizzando Oracle come fonte per AWS DMS.

Valore predefinito: false

Valori validi: true/false

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

ArchivedLogDestId

Specifica l'ID di destinazione per i registri di ripristino archiviati. Questo valore deve corrispondere a un numero nella colonna dest_id della visualizzazione v$archived_log. Se utilizzi una destinazione aggiuntiva per i log redo, ti consigliamo di usare l'attributo AdditionalArchivedLogDestId per specificare l'ID della destinazione aggiuntiva. In questo modo è possibile migliorare le prestazioni garantendo l'accesso ai log corretti fin dal principio.

Valore predefinito: 1

Valori validi: numero

Esempio: --oracle-settings '{"ArchivedLogDestId": 1}'

ArchivedLogsOnly

Quando questo campo è impostato su Y, accede AWS DMS solo ai redo log archiviati. Se i redo log archiviati sono memorizzati solo su Oracle ASM, all'account AWS DMS utente devono essere concessi i privilegi ASM.

Valore predefinito: N

Valori validi: Y/N (S/N)

Esempio: --oracle-settings '{"ArchivedLogsOnly": Y}'

asmUsePLSQLArray (solo ECA)

Utilizza questo attributo di connessione aggiuntivo (ECA) per acquisire le modifiche all'origine con. BinaryReader Questa impostazione consente a DMS di memorizzare nel buffer 50 letture a livello di ASM per singolo thread di lettura controllando al contempo il numero di thread che utilizzano l'attributo parallelASMReadThread. Quando impostate questo attributo, il lettore AWS DMS binario utilizza un blocco PL/SQL anonimo per acquisire i dati di ripristino e inviarli all'istanza di replica come buffer di grandi dimensioni. Ciò riduce il numero di round trip all'origine. Inoltre, può migliorare in modo significativo le prestazioni di acquisizione dell'origine, ma comporta un maggiore consumo di memoria PGA sull'istanza ASM. Potrebbero sorgere problemi di stabilità se la destinazione di memoria non è sufficiente. È possibile utilizzare la formula seguente per stimare l'utilizzo totale della memoria PGA dell'istanza ASM per una singola attività DMS: number_of_redo_threads * parallelASMReadThreads * 7 MB

Valore predefinito: false

Valori validi: true/false

Esempio ECA: asmUsePLSQLArray=true;

ConvertTimestampWithZoneToUTC

Imposta questo attributo su true per convertire in UTC il valore del timestamp delle colonne "TIMESTAMP WITH TIME ZONE" e "TIMESTAMP WITH LOCAL TIME ZONE". Per impostazione predefinita, il valore di questo attributo è "false" e i dati vengono replicati utilizzando il fuso orario del database di origine.

Valore predefinito: false

Valori validi: true/false

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

EnableHomogenousPartitionOps

Imposta questo attributo su true per abilitare la replica delle operazioni DDL su partizioni e sottopartizioni Oracle per la migrazione omogenea di Oracle.

Si noti che questa funzionalità e questo miglioramento sono stati introdotti nella versione 3.4.7. AWS DMS

Valore predefinito: false

Valori validi: true/false

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

EnableHomogenousTablespace

Imposta questo attributo per consentire la replica omogenea degli spazi tabelle e la creazione di tabelle o indici esistenti negli stessi spazi tabelle sulla destinazione.

Valore predefinito: false

Valori validi: true/false

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

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": "#"}'

Nota

Può essere utilizzato solo escapeCharacter per i nomi delle tabelle. Non imposta i caratteri di escape dei nomi degli schemi o dei nomi delle colonne.

ExposeViews

Utilizza questo attributo per estrarre i dati una volta da una vista. Non è possibile utilizzarlo per la replica continua. Quando estrai dati da una vista, quest'ultima viene mostrata come tabella sullo schema di destinazione.

Valore predefinito: false

Valori validi: true/false

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

ExtraArchivedLogDestIds

Specifica gli ID di un'altra destinazione per uno o più registri di ripristino archiviati. Questi ID rappresentano i valori della colonna dest_id nella visualizzazione v$archived_log. Utilizzate questa impostazione con l'attributo ArchivedLogDestId extra connection in una configurazione o in una primary-to-single configurazione. primary-to-multiple-standby

Questa impostazione è utile in caso di switchover quando si utilizza un database Oracle Data Guard come origine. In questo caso, sono AWS DMS necessarie informazioni sulla destinazione da cui recuperare i redo log dell'archivio per leggere le modifiche. AWS DMS ne ha bisogno perché dopo il passaggio l'istanza primaria precedente è un'istanza di standby.

Valori validi: ID di destinazione dell'archivio

Esempio: --oracle-settings '{"ExtraArchivedLogDestIds": 1}'

FailTasksOnLobTruncation

Se è impostato su true, questo attributo non consentirà la riuscita di un'attività se le dimensioni attuali di una colonna LOB sono maggiori di quelle specificate in LobMaxSize.

Se un'attività è impostata sulla modalità LOB limitata e questa opzione è impostata su true, l'operazione ha esito negativo invece di troncare i dati LOB.

Valore predefinito: false

Valori validi: booleani

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

filterTransactionsOfUser (solo ECA)

Utilizza questo attributo di connessione aggiuntivo (ECA) per consentire a DMS di ignorare le transazioni di un utente specificato durante la replica dei dati da Oracle durante l'utilizzo. LogMiner È possibile passare i nomi utente separati da virgole, ma devono essere scritti solo in lettere MAIUSCOLE.

Esempio ECA: filterTransactionsOfUser=USERNAME;

NumberDataTypeScale

Specifica il fattore di dimensionamento. È possibile selezionare un aumento fino a 38 oppure è possibile selezionare -1 per FLOAT o -2 per VARCHAR. Per impostazione predefinita, il tipo di dati NUMBER è convertito alla precisione 38, dimensione 10.

Valore predefinito: 10

Valori validi: da -2 a 38 (-2 per VARCHAR, -1 per FLOAT)

Esempio: --oracle-settings '{"NumberDataTypeScale": 12}'

Nota

Seleziona una combinazione con scala di precisione, -1 (FLOAT) o -2 (VARCHAR). DMS supporta qualsiasi combinazione con scala di precisione prevista da Oracle. Se la precisione è pari o superiore a 39, seleziona -2 (VARCHAR). L' NumberDataTypeScale impostazione per il database Oracle viene utilizzata solo per il tipo di dati NUMBER (senza la precisione esplicita e la definizione della scala).

OpenTransactionWindow

Fornisce l'intervallo di tempo in minuti per verificare la presenza di eventuali transazioni aperte per l'attività di sola CDC.

Nota

Quando è impostato su OpenTransactionWindow 1 o superiore, DMS converte i SCN_TO_TIMESTAMP valori SCN in valori di timestamp. A causa delle limitazioni del database Oracle, se si specifica un SCN troppo vecchio come punto di partenza CDC, SCN_TO_TIMESTAMP fallirà con un errore e non sarà possibile avviare attività solo CDC. ORA-08181

Valore predefinito: 0

Valori validi: numero intero da 0 a 240

Esempio: openTransactionWindow=15;

OraclePathPrefix Imposta questo attributo stringa sul valore richiesto per utilizzare Binary Reader al fine di acquisire dati di modifica per un Amazon RDS per Oracle come origine. Questo valore specifica la radice Oracle predefinita utilizzata per accedere ai log redo. Per ulteriori informazioni, consulta Configurazione di un'attività CDC per l'utilizzo di Binary Reader con un codice sorgente RDS for Oracle per AWS DMS.

Valore predefinito: nessuno

Valore valido: /rdsdbdata/db/ORCL_A/

Esempio: --oracle-settings '{"OraclePathPrefix": "/rdsdbdata/db/ORCL_A/"}'

ParallelASMReadThreads

Imposta questo attributo per modificare il numero di thread configurati da DMS per eseguire l'acquisizione dei dati di modifica (CDC) utilizzando Oracle Automatic Storage Management (ASM). È possibile specificare un valore intero compreso tra 2 (impostazione predefinita) e 8 (massimo). Utilizzare questo attributo con l'attributo ReadAheadBlocks. Per ulteriori informazioni, consulta Configurazione di un'attività CDC per l'utilizzo di Binary Reader con un codice sorgente RDS for Oracle per AWS DMS.

Valore predefinito: 2

Valori validi: numero intero da 2 a 8

Esempio: --oracle-settings '{"ParallelASMReadThreads": 6;}'

ReadAheadBlocks

Imposta questo attributo per modificare il numero di thread configurati da DMS per eseguire CDC utilizzando Oracle Automatic Storage Management (ASM) e lo storage NAS non ASM. È possibile specificare un valore intero compreso tra 1.000 (impostazione predefinita) e 200.000 (massimo). Utilizzare questo attributo con l'attributo ParallelASMReadThreads. Per ulteriori informazioni, consulta Configurazione di un'attività CDC per l'utilizzo di Binary Reader con un codice sorgente RDS for Oracle per AWS DMS.

Valore predefinito: 1000

Valori validi: numero intero da 1.000 a 200.000

Esempio: --oracle-settings '{"ReadAheadBlocks": 150000}'

ReadTableSpaceName

Quando è impostato su true, questo attributo supporta la replica dello spazio tabella.

Valore predefinito: false

Valori validi: booleani

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

ReplacePathPrefix Imposta questo attributo su true per utilizzare Binary Reader al fine di acquisire i dati di modifica per un Amazon RDS per Oracle come origine. Questa impostazione indica all'istanza DMS di sostituire la radice Oracle predefinita con l'impostazione UsePathPrefix specificata per accedere ai log redo. Per ulteriori informazioni, consulta Configurazione di un'attività CDC per l'utilizzo di Binary Reader con un codice sorgente RDS for Oracle per AWS DMS.

Valore predefinito: false

Valori validi: true/false

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

RetryInterval

Specifica il numero di secondi che il sistema attende prima di reinviare una query.

Valore predefinito: 5

Valori validi: numeri a partire da 1

Esempio: --oracle-settings '{"RetryInterval": 6}'

SecurityDbEncryptionName

Specifica il nome di una chiave utilizzata per la crittografia trasparente dei dati (TDE) delle colonne e dei tablespace nel database di origine Oracle. Per ulteriori informazioni sull'impostazione di questo attributo e della relativa password associata nell'endpoint di origine Oracle, consulta Metodi di crittografia supportati per l'utilizzo di Oracle come fonte per AWS DMS.

Valore predefinito: ""

Valori validi: stringa

Esempio: --oracle-settings '{"SecurityDbEncryptionName": "ORACLE.SECURITY.DB.ENCRYPTION.Adg8m2dhkU/0v/m5QUaaNJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"}'

SpatialSdo2GeoJsonFunctionName

Per le origini Oracle 12.1 o precedenti che migrano verso destinazioni PostgreSQL, utilizzare questo attributo per convertire SDO_GEOMETRY in formato GEOJSON.

Per impostazione predefinita, AWS DMS richiama la funzione SDO2GEOJSON personalizzata che deve essere presente e accessibile all'utente. AWS DMS In alternativa, puoi creare una funzione personalizzata che imita l'operazione di SDOGEOJSON e impostare SpatialSdo2GeoJsonFunctionName affinché la richiami.

Valore predefinito: SDO2GEOJSON

Valori validi: stringa

Esempio: --oracle-settings '{"SpatialSdo2GeoJsonFunctionName": "myCustomSDO2GEOJSONFunction"}'

StandbyDelayTime

Utilizza questo attributo per specificare il tempo di ritardo in minuti della sincronizzazione in standby. Se l'origine è un database in standby Active Data Guard, utilizza questo attributo per specificare l'intervallo di tempo tra il database primario e quello in standby.

In AWS DMS, puoi creare un task Oracle CDC che utilizza un'istanza di standby di Active Data Guard come fonte per replicare le modifiche in corso. Questa operazione elimina la necessità di connettersi a un database attivo che potrebbe essere in produzione.

Valore predefinito: 0

Valori validi: numero

Esempio: --oracle-settings '{"StandbyDelayTime": 1}'

Nota: quando si utilizza DMS 3.4.6, 3.4.7 e versioni successive, l'uso di questa impostazione di connessione è facoltativo. Nell'ultima versione di DMS 3.4.6 e nella versione 3.4.7, dms_user deve avere l'autorizzazione select su V_$DATAGUARD_STATS, che consente a DMS di calcolare il tempo di ritardo in standby.

UseAlternateFolderForOnline Imposta questo attributo su true per utilizzare Binary Reader al fine di acquisire i dati di modifica per un Amazon RDS per Oracle come origine. In questo modo l'istanza DMS utilizza qualsiasi sostituzione prefisso specificata per accedere a tutti i log redo online. Per ulteriori informazioni, consulta Configurazione di un'attività CDC per l'utilizzo di Binary Reader con un codice sorgente RDS for Oracle per AWS DMS.

Valore predefinito: false

Valori validi: true/false

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

UseBfile

Imposta questo attributo su Y (Sì) per acquisire i dati utilizzando la utility Binary Reader. Imposta UseLogminerReader su N (No) per impostare questo attributo su Y (Sì). Per utilizzare Binary Reader con Amazon RDS per Oracle come origine, è necessario impostare attributi aggiuntivi. Per ulteriori informazioni su questa impostazione e sull'utilizzo di Oracle ASM, vedere Utilizzo di Oracle LogMiner o AWS DMS Binary Reader for CDC.

Nota: quando si imposta questo valore come attributo aggiuntivo di connessione, i valori validi sono "Y" e "N". Quando si configura questo valore come impostazione dell'endpoint, i valori validi sono true e false.

Valore predefinito: N

Valori validi: Y/N (quando si imposta questo valore come attributo aggiuntivo di connessione), true/false (quando si imposta questo valore come impostazione dell'endpoint).

Esempio: --oracle-settings '{"UseBfile": Y}'

UseLogminerReader

Imposta questo attributo su Y per acquisire i dati di modifica utilizzando l' LogMiner utilità (impostazione predefinita). Imposta questa opzione su N se desideri che AWS DMS acceda ai redo log come file binario. Quando imposti questa opzione su N, aggiungi anche l'impostazione usebFile=y. Per ulteriori informazioni su questa impostazione e sull'utilizzo di Oracle Automatic Storage Management (ASM), consulta Utilizzo di Oracle LogMiner o AWS DMS Binary Reader for CDC.

Nota: quando si imposta questo valore come attributo aggiuntivo di connessione, i valori validi sono "Y" e "N". Quando si configura questo valore come impostazione dell'endpoint, i valori validi sono true e false.

Valore predefinito: Y

Valori validi: Y/N (quando si imposta questo valore come attributo aggiuntivo di connessione), true/false (quando si imposta questo valore come impostazione dell'endpoint).

Esempio: --oracle-settings '{"UseLogminerReader": Y}'

UsePathPrefix Imposta questo attributo stringa sul valore richiesto per utilizzare Binary Reader al fine di acquisire dati di modifica per un Amazon RDS per Oracle come origine. Questo valore specifica il prefisso del percorso utilizzato per sostituire la radice Oracle predefinita per accedere ai log redo. Per ulteriori informazioni, consulta Configurazione di un'attività CDC per l'utilizzo di Binary Reader con un codice sorgente RDS for Oracle per AWS DMS.

Valore predefinito: nessuno

Valore valido: /rdsdbdata/log/

Esempio: --oracle-settings '{"UsePathPrefix": "/rdsdbdata/log/"}'

Tipi di dati di origine per Oracle

L'endpoint Oracle for AWS DMS supporta la maggior parte dei tipi di dati Oracle. La tabella seguente mostra i tipi di dati di origine Oracle supportati durante l'utilizzo AWS DMS e la mappatura predefinita ai tipi di AWS DMS dati.

Nota

Ad eccezione dei tipi di dati LONG e LONG RAW, durante la replica da un'origine Oracle a una destinazione Oracle (replica omogenea), tutti i tipi di dati di origine e di destinazione saranno identici. Tuttavia, il tipo di dati LONG verrà mappato su CLOB e il tipo di dati LONG RAW verrà mappato su BLOB.

Per informazioni su come visualizzare il tipo di dati mappato nella destinazione, consulta la sezione relativa all'endpoint di destinazione che stai utilizzando.

Per ulteriori informazioni sui tipi di AWS DMS dati, vedereTipi di dati per AWS Database Migration Service.

Tipo di dati Oracle

AWS DMS tipo di dati

BINARY_FLOAT

REAL4

BINARY_DOUBLE

REAL8

BINARY

BYTES

FLOAT (P)

Se la precisione è minore o uguale a 24, usa REAL4.

Se la precisione è maggiore di 24, usa REAL8.

NUMBER (P,S)

Quando la dimensione è maggiore di 0, utilizza NUMERIC.

Quando la dimensione è 0:

  • e la precisione è minore o uguale a 2, usa INT1.

  • e la precisione è maggiore di 2 e minore o uguale a 4, usa INT2.

  • e la precisione è maggiore di 4 e minore o uguale a 9, usa INT4.

  • e la precisione è maggiore a 9, usa NUMERIC.

  • e la precisione è maggiore o uguale alla dimensione, usa NUMERIC.

Quando la dimensione è minore di 0, usa REAL8.

DATE

DATETIME

INTERVAL_YEAR TO MONTH

STRING (con indicazione interval year_to_month)

INTERVAL_DAY TO SECOND

STRING (con indicazione interval day_to_second)

TIMESTAMP

DATETIME

TIMESTAMP WITH TIME ZONE

STRING (con indicazione timestamp_with_timezone)

TIMESTAMP WITH LOCAL TIME ZONE

STRING (con indicazione timestamp_with_local_ timezone)

CHAR

STRING

VARCHAR2

STRING

NCHAR

WSTRING

NVARCHAR2

WSTRING

RAW

BYTES

REAL

REAL8

BLOB

BLOB

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

CLOB

CLOB

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

NCLOB

NCLOB

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

LONG

CLOB

Il tipo di dati LONG non è supportato nella modalità di applicazione ottimizzata per batch (modalità CDC). TurboStream

Per utilizzare questo tipo di dati con AWS DMS, abilita l'uso dei LOB per un'attività specifica.

Durante CDC o a pieno carico, AWS DMS supporta i tipi di dati LOB solo nelle tabelle con una chiave primaria.

Inoltre, AWS DMS non supporta la modalità LOB completa per il caricamento di colonne LONG. È invece possibile utilizzare la modalità LOB limitata per migrare le colonne LONG in una destinazione Oracle. In modalità LOB limitata, AWS DMS tronca a 64 KB tutti i dati impostati su colonne LONG più lunghe di 64 KB. Per ulteriori informazioni sul supporto LOB in, vedere AWS DMSImpostazione del supporto LOB per i database di origine in un task AWS DMS

LONG RAW

BLOB

Il tipo di dati LONG RAW non è supportato nella modalità di applicazione ottimizzata per batch (modalità TurboStream CDC).

Per utilizzare questo tipo di dati con AWS DMS, abilita l'uso dei LOB per un'attività specifica.

Durante CDC o a pieno carico, AWS DMS supporta i tipi di dati LOB solo nelle tabelle con una chiave primaria.

Inoltre, AWS DMS non supporta la modalità LOB completa per il caricamento di colonne LONG RAW. È invece possibile utilizzare la modalità LOB limitata per migrare le colonne LONG RAW in una destinazione Oracle. In modalità LOB limitata, AWS DMS tronca tutti i dati a 64 KB impostati su colonne LONG RAW più lunghe di 64 KB. Per ulteriori informazioni sul supporto LOB in, vedere AWS DMSImpostazione del supporto LOB per i database di origine in un task AWS DMS

XMLTYPE

CLOB

SDO_GEOMETRY

BLOB (in caso di migrazione da Oracle a Oracle)

CLOB (in caso di migrazione da Oracle a PostgreSQL)

Le tabelle di Oracle utilizzate come origine con colonne dei seguenti tipi di dati non sono supportate e non possono essere replicate. La replica di colonne con questi tipi di dati risulta in una colonna null.

  • BFILE

  • ROWID

  • REF

  • UROWID

  • Tipi di dati definiti dall'utente

  • ANYDATA

  • VARRAY

Nota

Le colonne virtuali non sono supportate.

Migrazione dei tipi di dati spaziali di Oracle

I dati spaziali identificano le informazioni sulla geometria di un oggetto o di una posizione nello spazio. In un database Oracle, la descrizione geometrica di un oggetto spaziale viene memorizzata in un oggetto di tipo SDO_GEOMETRY. All'interno di questo oggetto, la descrizione geometrica viene memorizzata in una singola riga in una singola colonna di una tabella definita dall'utente.

AWS DMS supporta la migrazione del tipo Oracle SDO_GEOMETRY da una fonte Oracle a un target Oracle o PostgreSQL.

Quando esegui la migrazione dei tipi di dati spaziali Oracle utilizzando, tieni presente queste considerazioni: AWS DMS

  • Quando si esegue la migrazione verso una destinazione Oracle, assicurarsi di trasferire manualmente le voci USER_SDO_GEOM_METADATA che includono informazioni sul tipo.

  • Durante la migrazione da un endpoint di origine Oracle a un endpoint di destinazione PostgreSQL, crea colonne di destinazione. AWS DMS Queste colonne contengono informazioni predefinite sul tipo di geometria e di geografia con una dimensione 2D e un identificatore di riferimento spaziale (SRID) uguale a zero (0). Un esempio è GEOMETRY, 2, 0.

  • Per le origini Oracle 12.1 o precedenti che migrano a destinazioni PostgreSQL, convertire gli oggetti SDO_GEOMETRY in formato GEOJSON utilizzando la funzione SDO2GEOJSON o l'attributo di connessione aggiuntivo spatialSdo2GeoJsonFunctionName. Per ulteriori informazioni, consulta Impostazioni degli endpoint quando si utilizza Oracle come fonte per AWS DMS.

  • AWS DMS supporta le migrazioni di Oracle Spatial Column solo per la modalità Full LOB. AWS DMS non supporta le modalità LOB limitata o LOB in linea. Per ulteriori informazioni sulla modalità LOB, consulta Impostazione del supporto LOB per i database di origine in un task AWS DMS.

  • Poiché supporta AWS DMS solo la modalità Full LOB per la migrazione di Oracle Spatial Columns, la tabella delle colonne richiede una chiave primaria e una chiave univoca. Se la tabella non dispone di una chiave primaria e di una chiave univoca, la tabella viene ignorata dalla migrazione.