Esegui la migrazione da Amazon RDS for Oracle ad Amazon RDS for Postgre SQL con AWS SCT e utilizzando e AWS DMS AWS CLI AWS CloudFormation - Prontuario AWS

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à.

Esegui la migrazione da Amazon RDS for Oracle ad Amazon RDS for Postgre SQL con AWS SCT e utilizzando e AWS DMS AWS CLI AWS CloudFormation

Creato da Pinesh Singal () AWS

Riepilogo

Questo modello mostra come migrare un'istanza database Amazon Relational Database Service (RDSAmazon) per Oracle da più terabyte a un'istanza DB RDS Amazon SQL for Postgre utilizzando AWS l'interfaccia a riga di comando (). AWS CLI L'approccio offre tempi di inattività minimi e non richiede l'accesso alla console di gestione. AWS

Questo modello consente di evitare configurazioni manuali e migrazioni individuali utilizzando le console AWS Schema Conversion Tool (AWSSCT) e AWS Database Migration Service (AWSDMS). La soluzione imposta una configurazione unica per più database ed esegue le migrazioni utilizzando e su. AWS SCT AWS DMS AWS CLI

Il modello viene utilizzato AWS SCT per convertire gli oggetti dello schema del database da Amazon RDS per Oracle ad Amazon RDS for SQL Postgre e quindi viene utilizzato per AWS DMS migrare i dati. Utilizzando gli script Python in AWSCLI, crei AWS SCT oggetti e AWS DMS attività con un modello. AWS CloudFormation

Prerequisiti e limitazioni

Prerequisiti

  • Un account AWS attivo.

  • Un'istanza database Amazon RDS for Oracle esistente.

  • Un'istanza Amazon RDS for Postgree SQL DB esistente. 

  • Un'EC2istanza Amazon o un computer locale con sistema operativo Windows o Linux per l'esecuzione di script.

  • Comprensione dei seguenti tipi di attività di AWS DMS migrazione:full-load,cdc,full-load-and-cdc.  Per ulteriori informazioni, vedere Creazione di un'attività nella AWS DMS documentazione. 

  • AWSSCT, installato e configurato con i driver Java Database Connectivity (JDBC) per i motori di SQL database Oracle e Postgre. Per ulteriori informazioni, vedere Installazione AWS SCT e installazione dei driver di database richiesti nella AWS SCT documentazione. 

  • Il AWSSchemaConversionToolBatch.jar file dalla AWS SCT cartella di installazione, copiato nella directory di lavoro.

  • Il cli-sct-dms-cft.zip file (allegato), scaricato ed estratto nella directory di lavoro.

Limitazioni

  • I requisiti minimi per la tua istanza database Amazon RDS for Oracle di origine sono: 

    • Versioni Oracle 12c (v12.1.0.2, v12.2.0.1), 18c (v18.0.0.0) e 19c (v19.0.0.0) per le edizioni Enterprise, Standard, Standard One e Standard Two.

    • Sebbene Amazon RDS supporti Oracle 18c (v18.0.0.0), questa versione è obsoleta perché Oracle non fornisce più patch per 18c dopo la data. end-of-support Per ulteriori informazioni, consulta Oracle on Amazon RDS nella RDS documentazione di Amazon.

    • Amazon RDS per Oracle 11g non è più supportato.

  • I requisiti minimi per l'istanza SQL database Amazon RDS for Postgree di destinazione sono: 

    • Versioni Postgre 9 (SQLversioni 9.5 e 9.6), 10.x, 11.x, 12.x e 13.x

Versioni del prodotto

  • Istanza database Amazon RDS for Oracle versione 12.1.0.2 e successive

  • Istanza Amazon RDS for Postgree SQL DB versione 11.5 e successive

  • AWSCLIversione 2 

  • L'ultima versione di AWS SCT

  • L'ultima versione di Python 3

Architettura

Stack tecnologico di origine

  • Amazon RDS per Oracle

Stack tecnologico Target

  • Amazon RDS per Postgre SQL

Architettura di origine e destinazione

Il diagramma seguente mostra la migrazione di un'istanza DB Amazon RDS for Oracle verso un'istanza DB Amazon RDS for Postgre SQL utilizzando script AWS DMS Python.

Migrazione RDS per un'istanza DB di Oracle verso RDS un'istanza SQL DB di Postgre utilizzando Python. AWS DMS

Il diagramma mostra il seguente flusso di lavoro di migrazione:

  1. Lo script Python utilizza AWS SCT per connettersi alle istanze DB di origine e di destinazione.

  2. L'utente inizia AWS SCT con lo script Python, converte il codice Oracle in codice Postgre e SQL lo esegue sull'istanza DB di destinazione.

  3. Lo script Python crea attività di AWS DMS replica per le istanze DB di origine e di destinazione.

  4. L'utente distribuisce script Python per avviare le attività e quindi interrompe AWS DMS le attività al termine della migrazione dei dati.

Automazione e scalabilità

Puoi automatizzare questa migrazione aggiungendo parametri aggiuntivi e modifiche relative alla sicurezza per più funzionalità in un unico programma allo script Python. 

Strumenti

  • AWSCommand Line Interface (AWSCLI) è uno strumento open source che consente di interagire con i AWS servizi tramite comandi nella shell della riga di comando.

  • AWS CloudFormationti aiuta a configurare AWS le risorse, fornirle in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita tra account e regioni. AWS Questo modello converte il file di input .csv in un file di input .json utilizzando uno script Python. Il file.json viene utilizzato nei AWS CLI comandi per creare uno AWS CloudFormation stack che crea più AWS DMS attività di replica con Amazon Resource Names (ARNs), tipi di migrazione, impostazioni delle attività e mappature delle tabelle.

  • AWSDatabase Migration Service (AWSDMS) ti aiuta a migrare gli archivi di dati nel AWS Cloud o tra combinazioni di configurazioni cloud e locali. Questo modello viene utilizzato AWS DMS per creare, avviare e interrompere le attività con uno script Python eseguito sulla riga di comando e creare il modello. AWS CloudFormation

  • AWSSchema Conversion Tool (AWSSCT) supporta migrazioni di database eterogenee convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione. Questo modello richiede il AWSSchemaConversionToolBatch.jar file dalla directory installata. AWS SCT

Codice

Il cli-sct-dms-cft.zip file (allegato) contiene il codice sorgente completo per questo pattern.

Epiche

AttivitàDescrizioneCompetenze richieste

Configura AWS SCT per l'esecuzione da AWSCLI.

1. Configurate i dettagli di configurazione dell'ambiente di origine e di destinazione nel database_migration.txt file utilizzando il seguente formato:

#source_vendor,source_hostname,source_dbname,source_user,source_pwd,source_schema,source_port,source_sid,target_vendor,target_hostname,target_user,target_pwd,target_dbname,target_port ORACLE,myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com,ORCL,orcl,orcl1234,orcl,1521,ORCL,POSTGRESQL,mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com,pguser,pgpassword,pgdb,5432

2. Modificate i parametri di AWS SCT configurazione in base alle vostre esigenze nei seguenti file:project_settings.xml,Oracle_PG_Test_Batch.xml, eORACLE-orcl-to-POSTGRESQL.xml.

DBA

Esegui lo script Python run_aws_sct.py.

Esegui lo script run_aws_sct.py Python usando il seguente comando:

$ python run_aws_sct.py database_migration.txt

Lo script Python converte gli oggetti del database da Oracle a SQL Postgre e crea SQL file in formato Postgre. SQL Lo script crea anche il Database migration assessment report file.pdf che fornisce consigli dettagliati e statistiche di conversione per gli oggetti del database.

DBA

Crea oggetti in Amazon RDS for SQL Postgre.

  1. Modifica manualmente i SQL file generati da AWSSCT, se necessario.

  2. Esegui i SQL file e crea oggetti nella tua istanza Amazon RDS for Postgree SQL DB.

DBA
AttivitàDescrizioneCompetenze richieste

Crea un'istanza di AWS DMS replica.

Accedi alla console di AWS gestione, apri la AWS DMS console e crea un'istanza di replica configurata in base ai tuoi requisiti.

Per ulteriori informazioni, vedere Creazione di un'istanza di replica nella AWS DMS documentazione e Come creare un'istanza di AWS DMS replica nella documentazione di AWS Support.

DBA

Crea l'endpoint di origine.

Sulla AWS DMS console, scegli Endpoints, quindi crea un endpoint di origine per il database Oracle in base alle tue esigenze. 

Nota

L'attributo di connessione aggiuntivo deve avere numberDataTypeScale un -2 valore.

Per ulteriori informazioni, consulta Creazione degli endpoint di origine e destinazione nella AWS DMS documentazione.

 

DBA

Crea l'endpoint di destinazione.

Sulla AWS DMS console, scegli Endpoints, quindi crea un endpoint di destinazione per il SQL database Postgre in base alle tue esigenze.  

Per ulteriori informazioni, consulta Creazione di endpoint di origine e destinazione nella documentazione. AWS DMS

DevOps ingegnere

Configura i dettagli AWS DMS della replica da eseguire da. AWS CLI

Configura gli endpoint di AWS DMS origine e di destinazione e i dettagli di replica nel dms-arn-list.txt file con l'endpoint di origineARN, l'endpoint di destinazione e l'istanza ARN di replica utilizzando il seguente formato: ARN

#sourceARN,targetARN,repARN arn:aws:dms:us-east-1:123456789012:endpoint:EH7AINRUDZ5GOYIY6HVMXECMCQ arn:aws:dms:us-east-1:123456789012:endpoint:HHJVUV57N7O3CQF4PJZKGIOYY5 arn:aws:dms:us-east-1:123456789012:rep:LL57N77AQQAHHJF4PJFHNEDZ5G
DBA

Esegui lo script Python dms-create-task .py per creare AWS DMS le attività.

1. Esegui lo script dms-create-task.py Python usando il seguente comando:

$ python dms-create-task.py database_migration.txt dms-arn-list.txt <cft-stack-name> <migration-type>

  • database_migration.txtè il file di testo per la migrazione del database

  • dms-arn-list.txtè l'ARNelenco per AWS DMS

  • <cft-stack-name>è il nome dello AWS CloudFormation stack definito dall'utente

  • <migration-type>è il tipo di migrazione (full-load, cdc o) full-load-and-cdc

2. A seconda del tipo di migrazione, puoi utilizzare i seguenti comandi per creare tre tipi di AWS DMS attività:

  • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack full-load

  • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack cdc

  • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack full-load-and-cdc

3. Lo AWS CloudFormation stack e AWS DMS le attività vengono creati 

 

DBA

Verifica che AWS DMS le attività siano pronte.

Nella AWS console, controlla lo Ready stato AWS DMS delle tue attività nella sezione Stato.

DBA
AttivitàDescrizioneCompetenze richieste

Avvia le AWS DMS attività.

Esegui lo script dms-start-task.py Python usando il seguente comando:

$ python dms-start-task.py start ‘<cdc-start-datetime>’

Nota

La data e l'ora di inizio devono essere nei formati del tipo di dati 'DD-MON-YYYY' o 'YYYY-MM-DDTHH:MI:SS' timestamp (ad esempio, o) ‘01-Dec-2019’ ‘2018-03-08T12:12:12’

È possibile esaminare lo stato delle AWS DMS attività nella scheda Statistiche della tabella delle attività di migrazione nella pagina Attività della AWS DMS console.

DBA

Convalida i dati.

  1. Una volta completata la migrazione a pieno carico, l'attività viene mantenuta in esecuzione ininterrottamente per consentire la modifica continua dei dati ()CDC.

  2. Una volta completata o non CDC è necessario migrare altre modifiche, rivedi e convalida i risultati e i dati dell'attività di migrazione nei database Oracle e Postgre. SQL

  3. È possibile convalidare i dati controllando lo stato e il conteggio delle colonne (Validation stateValidation pending,Validation failed,Validation suspended, eValidation details) nella scheda Statistiche delle tabelle del task di migrazione del database nella pagina Attività della console. AWS DMS 

Per ulteriori informazioni, consulta la convalida AWS DMS dei dati nella AWS DMS documentazione.

DBA

Interrompi le AWS DMS attività.

Esegui lo script Python usando il seguente comando:

$ python dms-start-task.py stop

Nota

AWSDMSle attività potrebbero interrompersi con uno failed stato, a seconda dello stato di convalida. Per ulteriori informazioni, consulta la tabella di risoluzione dei problemi nella sezione Informazioni aggiuntive.

DBA

Risoluzione dei problemi

ProblemaSoluzione

AWSSCTle connessioni di test di origine e destinazione falliscono

Configura le versioni dei JDBC driver e le regole in entrata del gruppo di VPC sicurezza per accettare il traffico in entrata.

L'esecuzione del test dell'endpoint di origine o di destinazione non riesce

Controlla se le impostazioni dell'endpoint e l'istanza di replica sono in stato. Available Controlla se lo stato della connessione dell'endpoint è. Successful 

Per ulteriori informazioni, consulta Come posso risolvere i problemi di connettività AWS DMS degli endpoint nella documentazione di Support. AWS

L'esecuzione a pieno carico non riesce

Controlla se i database di origine e di destinazione hanno tipi e dimensioni di dati corrispondenti. 

Per ulteriori informazioni, consulta Risoluzione dei problemi di migrazione AWS DMS nella AWS DMS documentazione.

Errori di esecuzione della convalida

Controlla se la tabella ha una chiave primaria perché le tabelle a chiave non primaria non vengono convalidate.

Se la tabella ha una chiave primaria e contiene degli errori, verifica che l'attributo di connessione aggiuntivo nell'endpoint di origine lo abbia. numberDataTypeScale=-2

Per ulteriori informazioni, consulta Attributi di connessione aggiuntivi quando si utilizza Oracle come fonte e Risoluzione dei problemi nella AWS DMS documentazione. AWS DMS OracleSettings

Risorse correlate

Allegati

Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip