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
-
Crea un utente Oracle con le autorizzazioni appropriate per accedere AWS DMS al tuo database di origine Oracle.
-
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.
-
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.
Argomenti
- Utilizzo di Oracle LogMiner o AWS DMS Binary Reader for CDC
- Flussi di lavoro per la configurazione di un database di origine Oracle autogestito o gestito per AWSAWS DMSConfigurazione di un database di origine Oracle
- Utilizzo di un database Oracle autogestito come fonte per AWS DMS
- Utilizzo di un database Oracle AWS gestito come fonte per AWS DMS
- Limitazioni all'uso di Oracle come fonte per AWS DMS
- Supporto SSL per un endpoint Oracle
- Metodi di crittografia supportati per l'utilizzo di Oracle come fonte per AWS DMS
- Metodi di compressione supportati per l'utilizzo di Oracle come fonte per AWS DMS
- Replica di tabelle annidate utilizzando Oracle come fonte per AWS DMS
- Memorizzazione di REDO su Oracle ASM quando si utilizza Oracle come origine per AWS DMS
- Impostazioni degli endpoint quando si utilizza Oracle come fonte per AWS DMS
- Tipi di dati di origine per Oracle
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 | Sì | No |
Impatto ridotto sull'I/O e sulla CPU del sistema di origine | No | Sì |
Prestazioni CDC migliorate | No | Sì |
Supporto per i cluster di tabelle Oracle | Sì | No |
Supporto per tutti i tipi di Oracle Hybrid Columnar Compression (HCC) | Sì |
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). | Sì |
Supporto per le istruzioni UPDATE che riguardano solo le colonne LOB |
No | Sì |
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 | Sì | No |
Supporto per transazioni XA | No | Sì |
RAC |
Sì Non consigliato, per motivi di prestazioni e per alcune limitazioni interne del DMS. |
Sì 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:
-
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 TOdb_user
; GRANT SELECT ON V_$ARCHIVED_LOG TOdb_user
; GRANT SELECT ON V_$LOG TOdb_user
; GRANT SELECT ON V_$LOGFILE TOdb_user
; GRANT SELECT ON V_$LOGMNR_LOGS TOdb_user
; GRANT SELECT ON V_$LOGMNR_CONTENTS TOdb_user
; GRANT SELECT ON V_$DATABASE TOdb_user
; GRANT SELECT ON V_$THREAD TOdb_user
; GRANT SELECT ON V_$PARAMETER TOdb_user
; GRANT SELECT ON V_$NLS_PARAMETERS TOdb_user
; GRANT SELECT ON V_$TIMEZONE_NAMES TOdb_user
; GRANT SELECT ON V_$TRANSACTION TOdb_user
; GRANT SELECT ON V_$CONTAINERS TOdb_user
; GRANT SELECT ON ALL_INDEXES TOdb_user
; GRANT SELECT ON ALL_OBJECTS TOdb_user
; GRANT SELECT ON ALL_TABLES TOdb_user
; GRANT SELECT ON ALL_USERS TOdb_user
; GRANT SELECT ON ALL_CATALOG TOdb_user
; GRANT SELECT ON ALL_CONSTRAINTS TOdb_user
; GRANT SELECT ON ALL_CONS_COLUMNS TOdb_user
; GRANT SELECT ON ALL_TAB_COLS TOdb_user
; GRANT SELECT ON ALL_IND_COLUMNS TOdb_user
; GRANT SELECT ON ALL_ENCRYPTED_COLUMNS TOdb_user
; GRANT SELECT ON ALL_LOG_GROUPS TOdb_user
; GRANT SELECT ON ALL_TAB_PARTITIONS TOdb_user
; GRANT SELECT ON SYS.DBA_REGISTRY TOdb_user
; GRANT SELECT ON SYS.OBJ$ TOdb_user
; GRANT SELECT ON DBA_TABLESPACES TOdb_user
; GRANT SELECT ON DBA_OBJECTS TOdb_user
; -– Required if the Oracle version is earlier than 11.2.0.3. GRANT SELECT ON SYS.ENC$ TOdb_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 TOdb_user
; -– Required if the source database is Oracle RAC in AWS DMS versions 3.4.6 and higher. GRANT SELECT ON V_$DATAGUARD_STATS TOdb_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. GRANT SELECT ON V$DATABASE_INCARNATION TOdb_user
;
Concedi il seguente privilegio aggiuntivo per ogni tabella replicata quando utilizzi un elenco di tabelle specifico.
GRANT SELECT on
any-replicated-table
todb_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 todms_user
; GRANT SELECT on v_$version todms_user
; GRANT SELECT on gv_$ASM_DISKGROUP todms_user
; GRANT SELECT on gv_$database todms_user
; GRANT SELECT on dba_db_links todms_user
; GRANT SELECT on gv_$log_History todms_user
; GRANT SELECT on gv_$log todms_user
; GRANT SELECT ON DBA_TYPES TOdb_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.
-
Crea un collegamento di database denominato
AWSDMS_DBLINK
nel database primario.
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.DMS_USER
CREATE PUBLIC DATABASE LINK AWSDMS_DBLINK CONNECT TO
DMS_USER
IDENTIFIED BYDMS_USER_PASSWORD
USING '(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=PRIMARY_HOST_NAME_OR_IP
)(PORT=PORT
)) (CONNECT_DATA=(SERVICE_NAME=SID
)) )'; -
Verifica che sia stata stabilita la connessione al collegamento di database usando
, come illustrato nell'esempio seguente.DMS_USER
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
-
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
oIMPLICIT
, 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;
-
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 GROUPLogGroupName
(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 colonneA
eB
. Tuttavia, per una trasformazionesubstring(A,10)
non aggiungere il log supplementare alla colonnaA
. -
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 primariaID
e un filtro in base alla colonnaNAME
, 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
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
-
Concedi i privilegi aggiuntivi necessari per accedere ai file di log in standby.
GRANT SELECT ON v_$standby_log TO
db_user
; -
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.
-
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:
-
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
’; -
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
-
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 DIRECTORYdms_archived_log_20210302
AS ‘DB_RECOVERY_FILE_DEST>/SID>/archivelog/2021_03_02
’; ... -
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
-
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.
-
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.
-
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.
-
Imposta il log supplementare. Per ulteriori informazioni, consulta Setting up supplemental logging.
-
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
e db_user
, 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 any-replicated-table
senza utilizzare le virgolette, come in db_user
CREATE USER
o myuser
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 todb_user
; GRANT SELECT on DBA_TABLESPACES todb_user
; GRANT SELECT ONany-replicated-table
todb_user
; GRANT EXECUTE on rdsadmin.rdsadmin_util todb_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.
-
Crea un collegamento di database denominato
AWSDMS_DBLINK
nel database primario.
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.DMS_USER
CREATE PUBLIC DATABASE LINK AWSDMS_DBLINK CONNECT TO
DMS_USER
IDENTIFIED BYDMS_USER_PASSWORD
USING '(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=PRIMARY_HOST_NAME_OR_IP
)(PORT=PORT
)) (CONNECT_DATA=(SERVICE_NAME=SID
)) )'; -
Verifica che sia stata stabilita la connessione al collegamento di database usando
, come illustrato nell'esempio seguente.DMS_USER
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
-
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.
-
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
-
Per abilitare il log supplementare a livello di database, esegui il comando riportato di seguito.
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
-
Esegui il comando riportato di seguito per abilitare il log supplementare della chiave primaria.
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','PRIMARY KEY');
-
(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
-
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;
-
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 TOdb_user
; -
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
-
Accedi all'istanza primaria RDS per Oracle come utente master.
-
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;
-
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.
-
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 TOdb_user
; GRANT READ ON DIRECTORY ONLINELOG_DIR_A TOdb_user
; GRANT READ ON DIRECTORY ONLINELOG_DIR_B TOdb_user
; -
Applica un'opzione del log di archiviazione all'istanza principale. In questo modo le modifiche a
ALL_DIRECTORIES
vengano trasferite anche in Oracle Standby. -
Esegui una query
ALL_DIRECTORIES
su Oracle Standby per verificare che le modifiche siano state applicate. -
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
-
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:
-
Per un database di origine Oracle autogestito, consulta Impostazione del log supplementare.
-
Per un database di origine Oracle AWS gestito, vedere. Configurazione di una fonte Oracle gestita per AWSAWS DMS
-
-
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
Invece di replicarecolumn
data_type
DEFAULTdefault_value
sulla destinazione, imposta la nuova colonna sudefault_value
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
eTRUNCATE
). 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
eTRUNCATE
, 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 AS
istruzione 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 ilOBJECT_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 comandoUPDATE
non supportato.UPDATE TEST_TABLE SET KEY=KEY+1;
Qui,
TEST_TABLE
è il nome della tabella eKEY
è 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 Partition
operazione 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 LOBXMLTYPE
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.
Argomenti
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
-
Impostare la variabile di sistema
ORACLE_HOME
sulla posizione della directorydbhome_1
eseguendo il comando seguente.prompt>export ORACLE_HOME=/home/user/app/user/product/12.1.0/dbhome_1
-
Aggiungere
$ORACLE_HOME/lib
alla variabile di sistemaLD_LIBRARY_PATH
.prompt>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
-
Crea una directory per il wallet Oracle nel percorso
$ORACLE_HOME/ssl_wallet
.prompt>mkdir $ORACLE_HOME/ssl_wallet
-
Inserire il file
.pem
del certificato CA nella directoryssl_wallet
. Se si utilizza Amazon RDS, è possibile scaricare il file del certificato CA rootrds-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. -
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
-
Creare una directory da utilizzare con il certificato autofirmato.
mkdir -p /u01/app/oracle/self_signed_cert
-
Passare alla directory creata nella fase precedente.
cd /u01/app/oracle/self_signed_cert
-
Creare una chiave root.
openssl genrsa -out self-rootCA.key 2048
-
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
-
-
Creare una directory per il wallet Oracle per il database Oracle.
mkdir -p /u01/app/oracle/wallet
-
Creare un nuovo wallet Oracle.
orapki wallet create -wallet "/u01/app/oracle/wallet" -pwd oracle123 -auto_login_local
-
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
-
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
-
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
-
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
-
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
-
-
Ottenere la firma del certificato.
openssl req -noout -text -in certdms.csr | grep -i signature
La chiave di firma per questo post è
sha256WithRSAEncryption
. -
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
-
Aggiungere il certificato al wallet.
orapki wallet add -wallet /u01/app/oracle/wallet -pwd oracle123 -user_cert -cert certdms.crt
-
Visualizza il wallet. È composto da due voci. Consulta il seguente codice.
orapki wallet display -wallet /u01/app/oracle/wallet -pwd oracle123
-
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)
-
Interrompere il listener Oracle.
lsnrctl stop
-
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)) ) ) -
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>) ) )
-
Riavviare il listener Oracle.
lsnrctl start
-
Mostrare lo stato del listener Oracle.
lsnrctl status
-
Verificare la connessione SSL al database da localhost utilizzando sqlplus e la voce SSL tnsnames.
sqlplus -L
ORACLE_USER
@SID
_ssl -
Verificare che la connessione sia stabilita utilizzando SSL.
SELECT SYS_CONTEXT('USERENV', 'network_protocol') FROM DUAL; SYS_CONTEXT('USERENV','NETWORK_PROTOCOL') -------------------------------------------------------------------------------- tcps
-
Modificare la directory nella directory con il certificato autofirmato.
cd /u01/app/oracle/self_signed_cert
-
Crea un nuovo portafoglio client Oracle AWS DMS da utilizzare.
orapki wallet create -wallet ./ -auto_login_only
-
Aggiungere il certificato root autofirmato al wallet Oracle.
orapki wallet add -wallet ./ -trusted_cert -cert self-rootCA.pem -auto_login_only
-
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
-
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 | Sì | Sì |
Binary Reader | Sì | Sì |
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
-
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. -
Ottieni l'ID della chiave master utilizzando una delle seguenti opzioni di crittografia, a seconda di quale restituisce questo valore.
-
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 perMKEYID
, 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. -
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.
-
-
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. -
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. -
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
-
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:
-
Crea un keystore locale.
ADMINISTER KEY MANAGEMENT create keystore
file system wallet location
identified bywallet password
; -
Unisci il keystore ASM nel keystore locale.
ADMINISTER KEY MANAGEMENT merge keystore
ASM wallet location
identified bywallet password
into existing keystorefile system wallet location
identified bywallet 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ì | Sì | Sì | Sì: qualsiasi metodo di compressione supportato da Oracle LogMiner. |
Oracle 11 o versione successiva, Binary Reader | Sì | Sì | Sì. Per ulteriori informazioni, consulta la seguente nota. | Sì |
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 colonnaNESTED_TABLE_ID
. -
AWS DMS crea la tabella figlio identica alla sorgente nidificata, ma con una colonna aggiuntiva denominata
NESTED_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:
-
Creare la tabella
Type
.CREATE OR REPLACE TYPE NESTED_TEST_T AS TABLE OF VARCHAR(50);
-
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;
-
Appiattire la tabella
NESTED_PARENT_TEST
utilizzando un join con la tabella figlioNAME_KEY
in cuiCHILD.NESTED_TABLE_ID
corrisponde aPARENT.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 '{"
JSON.EndpointSetting"
:
"value"
, ...
}'
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: |
|
Imposta questo attributo con Sebbene AWS DMS supporti l'uso dell' Valori validi: ID di destinazione dell'archivio Esempio: |
|
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:
Valore predefinito: false Valori validi: true/false Esempio: NotaSe utilizzi questa opzione, è comunque necessario abilitare il log supplementare a livello di database come descritto in precedenza. |
|
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: |
|
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 Valore predefinito: 1 Valori validi: numero Esempio: |
|
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: |
|
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 Valore predefinito: false Valori validi: true/false Esempio ECA: |
|
Imposta questo attributo su Valore predefinito: false Valori validi: true/false Esempio: |
|
Imposta questo attributo su 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: |
|
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: |
|
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: NotaPuò essere utilizzato solo |
|
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: |
|
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: |
|
Se è impostato su Se un'attività è impostata sulla modalità LOB limitata e questa opzione è impostata su Valore predefinito: false Valori validi: booleani Esempio: |
|
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: |
|
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: NotaSeleziona 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). |
|
Fornisce l'intervallo di tempo in minuti per verificare la presenza di eventuali transazioni aperte per l'attività di sola CDC. NotaQuando è impostato su Valore predefinito: 0 Valori validi: numero intero da 0 a 240 Esempio: |
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: |
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 Valore predefinito: 2 Valori validi: numero intero da 2 a 8 Esempio: |
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 Valore predefinito: 1000 Valori validi: numero intero da 1.000 a 200.000 Esempio: |
|
Quando è impostato su Valore predefinito: false Valori validi: booleani Esempio: |
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: |
|
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: |
|
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: |
|
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 Valore predefinito: SDO2GEOJSON Valori validi: stringa Esempio: |
|
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: 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, |
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: |
UseBfile |
Imposta questo attributo su Y (Sì) per acquisire i dati utilizzando la utility Binary Reader. Imposta 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 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: |
|
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 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: |
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: |
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:
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 |
|
NCHAR |
WSTRING |
NVARCHAR2 |
|
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 LOB supporto per i database di origine in un' AWS DMS attività |
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 LOB supporto per i database di origine in un' AWS DMS attività |
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 formatoGEOJSON
utilizzando la funzioneSDO2GEOJSON
o l'attributo di connessione aggiuntivospatialSdo2GeoJsonFunctionName
. 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 LOB supporto per i database di origine in un' AWS DMS attività.
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.