Come posso utilizzare AWS DMS per eseguire la migrazione di dati tra Amazon RDS per Oracle e database diversi?
Desidero utilizzare AWS Database Migration Service (AWS DMS) per eseguire la migrazione di dati tra Amazon Relational Database Service (Amazon RDS) per Oracle e diversi database.
Breve descrizione
Per il trasferimento di dati in blocco una tantum, utilizza Oracle Data Pump con l'integrazione di Amazon Simple Storage Service (Amazon S3).
Per una replica continua con tempi di inattività minimi, utilizza il caricamento completo e l'acquisizione dei dati di modifica (CDC) di AWS DMS.
Per migrazioni eterogenee di database, utilizza AWS DMS con AWS Schema Conversion Tool (SCT).
Risoluzione
Configura Amazon RDS per Oracle come origine
Il caricamento completo di AWS DMS genera automaticamente istruzioni SELECT per eseguire la migrazione dei dati direttamente dalle tabelle di origine. Tuttavia, per la replica continua, AWS DMS deve accedere ai redo log di Oracle per acquisire e replicare le modifiche in tempo reale. Per specificare l'accesso di AWS DMS ai redo log di Oracle, configura Oracle LogMiner o AWS DMS Binary Reader.
Prerequisito: Scegli LogMiner o Binary Reader per CDC. Se non specifichi un attributo di connessione per CDC, AWS DMS utilizza automaticamente LogMiner per leggere i redo log.
Per configurare Binary Reader per CDC, aggiungi ulteriori attributi di connessione (ECA) all'endpoint di origine di AWS DMS.
Per gli ambienti Oracle standard, utilizza il seguente ECA:
useLogMinerReader=N;useBfile=Y;
Per gli ambienti Oracle Real Application Clusters (Oracle RAC) con Oracle Automatic Storage Management (Oracle ASM), utilizza il seguente ECA:
useLogMinerReader=N;useBfile=Y;asm_user=asm_username;asm_server=RAC_server_ip_address:port_number/+ASM;parallelASMReadThreads=6;readAheadBlocks=150000;
Nota: per il parametro Password dell'endpoint di origine, inserisci sia la password utente di Oracle che la password di Oracle ASM, separate da una virgola.
Per aggiungere gli ECA, completa i seguenti passaggi:
- Apri la console AWS DMS.
- Nel pannello di navigazione, scegli Migra o replica.
- Seleziona Endpoint, quindi scegli l'endpoint di origine.
- Scegli Modifica.
- Scegli Impostazioni dell'endpoint.
- Per Attributi aggiuntivi di connessione, specifica i parametri.
- Scegli Salva modifiche.
Per ulteriori informazioni, consulta Come posso aggiungere o modificare le impostazioni degli endpoint di AWS DMS?
Configura le autorizzazioni dell'account per LogMiner
Per accedere ai redo log utilizzando LogMiner, concedi le autorizzazioni all'utente Oracle specificato nelle impostazioni di connessione dell'endpoint di Oracle eseguendo questi comandi:
GRANT EXECUTE on DBMS_LOGMNR to dms_user; GRANT SELECT on V_$LOGMNR_LOGS to dms_user; GRANT SELECT on V_$LOGMNR_CONTENTS to dms_user; GRANT LOGMINING to dms_user;
Attiva la registrazione supplementare
La registrazione supplementare acquisisce dati di colonna aggiuntivi nei redo log necessari per CDC. Senza una registrazione supplementare, i redo log potrebbero non contenere informazioni sufficienti per consentire ad AWS DMS di identificare e replicare le modifiche. Per utilizzare LogMiner per CDC, devi prima attivare la registrazione supplementare.
Per attivare la registrazione supplementare, esegui questi comandi:
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','PRIMARY KEY');
Utilizza Binary Reader per configurare CDC
Accedi al database di origine Amazon RDS per Oracle come utente principale ed esegui queste procedure archiviate creare le directory a livello di server:
exec rdsadmin.rdsadmin_master_util.create_archivelog_dir;
exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;
Esegui questi comandi per concedere le autorizzazioni all'account utente Oracle che utilizzi per accedere all'endpoint di origine Oracle:
GRANT READ ON DIRECTORY ONLINELOG_DIR TO dms_user;
GRANT READ ON DIRECTORY ARCHIVELOG_DIR TO dms_user;
Imposta gli ECA nell'endpoint di origine
Per Amazon RDS per Oracle versioni 12.1 e precedenti, utilizza il seguente ECA:
useLogminerReader=N;useBfile=Y;accessAlternateDirectly=false;useAlternateFolderForOnline=true; oraclePathPrefix=/rdsdbdata/db/{$DATABASE_NAME}_A/;usePathPrefix=/rdsdbdata/log/;replacePathPrefix=true;
Per Amazon RDS per Oracle versioni 12.2 e successive, utilizza il seguente ECA:
useLogminerReader=N;useBfile=Y;
Configura le autorizzazioni dell'account per Binary Reader
Per accedere ai redo log utilizzando Binary Reader, concedi le autorizzazioni all'utente Oracle specificato nelle impostazioni di connessione dell'endpoint di Oracle eseguendo questi comandi.
Se hai archiviato i redo log in Oracle Automatic Storage Management (ASM) e AWS DMS vi accede da ASM, esegui questo comando:
GRANT SELECT on v_$transportable_platform to dms_user;
Per consentire ad AWS DMS di utilizzare l'accesso ai file in lettura Oracle BFILE, esegui questo comando:
GRANT CREATE ANY DIRECTORY to dms_user;
Nota: l'istanza di replica richiede l'accesso a Oracle BFILE quando l'istanza non dispone di accesso a livello di file ai redo log e i redo log non sono nello spazio di archiviazione di ASM.
Per utilizzare CopyToTempFolder e consentire la copia dei redo log file in una cartella temporanea, esegui questo comando:
GRANT EXECUTE on DBMS_FILE_TRANSFER to dms_user;
Per consentire ad AWS DMS di gestire Oracle BFILE, esegui questo comando:
GRANT EXECUTE on DBMS_FILE_GROUP to dms_user;
Configura la conservazione dei log di archivio
CDC richiede i log archiviati. Per impostare il periodo di conservazione dei log, esegui questo comando:
exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',retention_in_hours);commit;
Nota: sostituisci retention_in_hours con il numero di ore per le quali desideri mantenere i log di archivio.
Configura Amazon RDS per Oracle come destinazione
Crea manualmente schemi e i relativi oggetti di database o utilizza AWS SCT.
Per concedere le autorizzazioni all'utente AWS DMS, esegui questi comandi:
GRANT CREATE SESSION, SELECT ANY TRANSACTION TO dms_user; GRANT DROP ANY TABLE, SELECT ANY TABLE, INSERT ANY TABLE TO dms_user; GRANT UPDATE ANY TABLE, DELETE ANY TABLE TO dms_user; GRANT UNLIMITED TABLESPACE, LOCK ANY TABLE, CREATE ANY INDEX TO dms_user;
Nota: sostituisci dms_user con il nome dell'account utente del database utilizzato da AWS DMS per connettersi al database Oracle di destinazione.
Informazioni correlate
Utilizzo di un database Oracle come origine per AWS DMS
Utilizzo di un database Oracle come destinazione per AWS Database Migration Service
Risoluzione dei problemi relativi alle attività di migrazione in AWS Database Migration Service
- Argomenti
- Migration & Modernization
- Lingua
- Italiano
