

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 di un database Oracle locale ad Amazon RDS for PostgreSQL utilizzando un bystander Oracle e AWS DMS
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms"></a>

*Cady Motyka, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-summary"></a>

Questo modello descrive come migrare un database Oracle locale verso uno dei seguenti servizi di database AWS compatibili con PostgreSQL con tempi di inattività minimi:
+ Amazon Relational Database Service (Amazon RDS) per PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition

La soluzione utilizza AWS Database Migration Service (AWS DMS) per migrare i dati, AWS Schema Conversion Tool (AWS SCT) per convertire lo schema del database e un database Oracle bystander per aiutare a gestire la migrazione. In questa implementazione, il tempo di inattività è limitato al tempo necessario per creare o convalidare tutte le chiavi esterne del database. 

La soluzione utilizza anche istanze Amazon Elastic Compute Cloud (Amazon EC2) con un database Oracle bystander per aiutare a controllare il flusso di dati tramite AWS DMS. Puoi sospendere temporaneamente la replica in streaming dal database Oracle locale al bystander Oracle per attivare AWS DMS per recuperare il ritardo sulla convalida dei dati o per utilizzare un altro strumento di convalida dei dati. L'istanza DB Amazon RDS for PostgreSQL o l'istanza DB Aurora compatibile con PostgreSQL e il database bystander avranno gli stessi dati al termine della migrazione delle modifiche correnti da parte di AWS DMS. 

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un database Oracle di origine in un data center locale con un database di standby Active Data Guard configurato
+ AWS Direct Connect configurato tra il data center locale e AWS Secrets Manager per l'archiviazione dei segreti del database
+ Driver Java Database Connectivity (JDBC) per connettori AWS SCT, installati su un computer locale o sull'istanza EC2 in cui è installato AWS SCT
+ Familiarità con [l'utilizzo di un database Oracle come fonte per AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) DMS
+ Familiarità con [l'uso di un database PostgreSQL come destinazione per AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) DMS

**Limitazioni**
+ Limite di dimensione del database: 64 TB

**Versioni del prodotto**
+ AWS DMS supporta tutte le edizioni del database Oracle per le versioni 10.2 e successive (per le versioni 10.x), 11g e fino a 12.2, 18c e 19c. Per l'elenco più recente delle versioni supportate, consulta [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Ti consigliamo di utilizzare la versione più recente di AWS DMS per il supporto più completo della versione e delle funzionalità. Per informazioni sulle versioni dei database Oracle supportate da AWS SCT, consulta la documentazione di [AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ AWS DMS supporta le versioni 9.4 e successive di PostgreSQL (per le versioni 9.x), 10.x, 11.x, 12.x e 13.x. Per le informazioni più recenti, consulta [Using a PostgreSQL Database as a Target for AWS DMS nella documentazione AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html).

## Architecture
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-architecture"></a>

**Stack tecnologico di origine**
+ Un database Oracle locale
+ Un'EC2 istanza che contiene un astante per il database Oracle

**Stack tecnologico Target**
+ Amazon RDS per PostgreSQL o istanza PostgreSQL Aurora, PostgreSQL 9.3 e versioni successive

**Architettura Target**

Il diagramma seguente mostra un esempio di flusso di lavoro per la migrazione di un database Oracle a un database AWS compatibile con PostgreSQL utilizzando AWS DMS e un bystander Oracle:

![\[Migrazione di un database Oracle locale a PostgreSQL su AWS.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/6f5d5500-8b09-4bd1-8ef9-e670d58d07f8/images/1de98abd-c143-481a-b55f-e8d00eb96a38.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ti aiuta a migrare gli archivi di dati nel cloud AWS o tra combinazioni di configurazioni cloud e locali.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) supporta migrazioni di database eterogenei convertendo automaticamente lo schema del database di origine e la maggior parte del codice personalizzato in un formato compatibile con il database di destinazione.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.

## Epiche
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-epics"></a>

### Convertire lo schema del database Oracle in PostgreSQL
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura AWS SCT. | Crea un nuovo report e connettiti a Oracle come origine e PostgreSQL come destinazione. In **Impostazioni del progetto**, vai alla scheda **SQL** Scripting. Cambia lo **script SQL di destinazione** in **più file**. Questi file verranno utilizzati in seguito e denominati come segue:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | DBA | 
| Convertire lo schema del database Oracle. | Nella scheda **Azione**, scegli **Genera rapporto**. Quindi, scegli **Converti schema** e scegli **Salva come SQL**. | DBA | 
| Modifica gli script. | **Ad esempio, potresti voler modificare lo script se un numero nello schema di origine è stato convertito in formato numerico in PostgreSQL, ma desideri invece utilizzare BIGINT per prestazioni migliori.** | DBA | 

### Crea e configura l'istanza database Amazon RDS
<a name="create-and-configure-the-amazon-rds-db-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'istanza database Amazon RDS. | Nella regione AWS corretta, crea una nuova istanza DB PostgreSQL. Per ulteriori informazioni, consulta [Creazione di un'istanza DB PostgreSQL e connessione a un database su un'istanza DB PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html) nella documentazione di Amazon RDS. | AWS SysAdmin, DBA | 
| Configura le specifiche dell'istanza DB. | Specificate la versione del motore DB, la classe dell'istanza DB, l'implementazione Multi-AZ, il tipo di storage e lo storage allocato. Immettere l'identificatore dell'istanza DB, un nome utente principale e una password principale. | AWS SysAdmin, DBA | 
| Configura rete e sicurezza. | Specificare il cloud privato virtuale (VPC), il gruppo di sottoreti, l'accessibilità pubblica, la preferenza della zona di disponibilità e i gruppi di sicurezza. | DBA, SysAdmin | 
| Configurare le opzioni del database. | Specificare il nome del database, la porta, il gruppo di parametri, la crittografia e la chiave KMS. | AWS SysAdmin, DBA | 
| Configurare i backup. | Specificate il periodo di conservazione del backup, la finestra di backup, l'ora di inizio, la durata e se copiare i tag nelle istantanee. | AWS SysAdmin, DBA | 
| Configura le opzioni di monitoraggio. | Attiva o disattiva il monitoraggio avanzato e gli approfondimenti sulle prestazioni. | AWS SysAdmin, DBA | 
| Configura le opzioni di manutenzione. | Specificare l'aggiornamento automatico della versione secondaria, la finestra di manutenzione e il giorno, l'ora e la durata di inizio. | AWS SysAdmin, DBA | 
| Esegui gli script di pre-migrazione da AWS SCT. | Sull'istanza Amazon RDS, esegui i seguenti script generati da AWS SCT:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | AWS SysAdmin, DBA | 

### Configura il bystander Oracle in Amazon EC2
<a name="configure-the-oracle-bystander-in-amazon-ec2"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura la rete per Amazon EC2. | Crea il nuovo VPC, le sottoreti, il gateway Internet, le tabelle di routing e i gruppi di sicurezza. | AWS SysAdmin | 
| Crea l' EC2 istanza. | Nella regione AWS appropriata, crea una nuova EC2 istanza. Seleziona Amazon Machine Image (AMI), scegli la dimensione dell'istanza e configura i dettagli dell'istanza: numero di istanze (1), VPC e sottorete creati nell'attività precedente, assegnazione automatica dell'IP pubblico e altre opzioni. Aggiungi storage, configura i gruppi di sicurezza e avvia. Quando richiesto, create e salvate una key pair per il passaggio successivo. | AWS SysAdmin | 
| Connect il database di origine Oracle all' EC2 istanza. | Copia l'indirizzo IP IPv4 pubblico e il DNS in un file di testo e connettiti utilizzando SSH nel modo seguente: **ssh -i «your\$1file.pem» EC2-user@<your-IP** - -DNS>. address-or-public | AWS SysAdmin | 
| Configura l'host iniziale per un passante in Amazon. EC2 | Configura chiavi SSH, profilo bash, ORATAB e link simbolici. Crea directory Oracle. | AWS SysAdmin, amministratore Linux | 
| Configura la copia del database per un passante in Amazon EC2 | Usa RMAN per creare una copia del database, abilitare la registrazione supplementare e creare il file di controllo in standby. Al termine della copia, posizionate il database in modalità di ripristino. | AWS SysAdmin, DBA | 
| Configura Oracle Data Guard. | Modifica il file **listener.ora** e avvia il listener. Imposta una nuova destinazione di archiviazione. Metti lo spettatore in modalità di ripristino, sostituisci i file temporanei per evitare future danneggiamenti, installa un crontab se necessario per evitare che la directory di archivio si esaurisca lo spazio e modifica il **manage-trclog-files-oraclefile.cfg** come sorgente e standby. | AWS SysAdmin, DBA | 
| Prepara il database Oracle per sincronizzare la spedizione. | Aggiungi i file di registro in standby e modifica la modalità di ripristino. Modifica il log shipping in **SYNC AFFIRM** sia sulla sorgente primaria che sulla sorgente standby. Passa ai log primari, conferma tramite l'alert log di Amazon EC2 bystander che stai utilizzando i file di log di standby e conferma che il redo stream scorra in SYNC. | AWS SysAdmin, DBA | 

### Migrazione dei dati con AWS DMS
<a name="migrate-data-with-aws-dms"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un'istanza di replica in AWS DMS. | Completa i campi per il nome, la classe dell'istanza, il VPC (come l' EC2 istanza Amazon), Multi-AZ e l'accessibilità pubblica. In **Advance**, specifica lo storage allocato, il gruppo di sottoreti, la zona di disponibilità, i gruppi di sicurezza VPC e la chiave AWS Key Management Service (AWS KMS). | AWS SysAdmin, DBA | 
| Crea l'endpoint del database di origine. | Specificare il nome dell'endpoint, il tipo, il motore di origine (Oracle), il nome del server (nome DNS EC2 privato Amazon), la porta, la modalità SSL, il nome utente, la password, il SID, il VPC (specifica il VPC che ha l'istanza di replica) e l'istanza di replica. Per testare la connessione, scegli **Run** Test, quindi crea l'endpoint. Puoi anche configurare le seguenti impostazioni avanzate: **maxFileSize**e **numberDataTypeScale**. | AWS SysAdmin, DBA | 
| Connetti AWS DMS ad Amazon RDS per PostgreSQL. | Crea un gruppo di sicurezza di migrazione per le connessioni tra. VPCs | AWS SysAdmin, DBA | 
| Crea l'endpoint del database di destinazione. | Specificare il nome dell'endpoint, il tipo, il motore di origine (PostgreSQL), il nome del server (endpoint Amazon RDS), la porta, la modalità SSL, il nome utente, la password, il nome del database, il VPC (specifica il VPC che contiene l'istanza di replica) e l'istanza di replica. **Per testare la connessione, scegli Esegui test, quindi crea l'endpoint.** Puoi anche configurare le seguenti impostazioni avanzate: **maxFileSize **e **numberDataTypeScale**. | AWS SysAdmin, DBA | 
| Crea l'attività di replica AWS DMS. | Specificare il nome dell'attività, l'istanza di replica, gli endpoint di origine e di destinazione e l'istanza di replica. Per il tipo di migrazione, scegli **Migra i dati esistenti e replica** le modifiche in corso. **Deseleziona la casella di controllo Avvia attività alla creazione**. | AWS SysAdmin, DBA | 
| Configura le impostazioni delle attività di replica di AWS DMS. | Per la modalità di preparazione della tabella di destinazione, scegli **Non fare nulla**. Interrompi l'operazione dopo il completamento del caricamento completo (per creare le chiavi primarie). Specificate la modalità LOB limitata o completa e attivate le tabelle di controllo. Facoltativamente, è possibile configurare l'impostazione **CommitRate**avanzata. | DBA | 
| Configura le mappature delle tabelle. | **Nella sezione **Mappature delle tabelle**, crea una regola di **inclusione** per tutte le tabelle in tutti gli schemi inclusi nella migrazione, quindi crea una regola di esclusione.** Aggiungi tre regole di trasformazione per convertire i nomi di schema, tabella e colonna in lettere minuscole e aggiungi tutte le altre regole necessarie per questa migrazione specifica. | DBA | 
| Avvia l’attività . | Avvia l'attività di replica. Accertatevi che il carico sia in esecuzione a pieno carico. Esegui **ALTER SYSTEM SWITCH LOGFILE** sul database Oracle primario per avviare l'attività. | DBA | 
| Esegui gli script di migrazione intermedia da AWS SCT. | In Amazon RDS for PostgreSQL, esegui i seguenti script generati da AWS SCT: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | DBA | 
| Riavviare l'attività per continuare l'acquisizione dei dati delle modifiche (CDC). | Esegui **VACUUM** sull'istanza DB Amazon RDS for PostgreSQL e riavvia l'attività AWS DMS per applicare le modifiche CDC memorizzate nella cache. | DBA | 

### Passa al database PostgreSQL
<a name="cut-over-to-the-postgresql-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Controlla i log e le tabelle di convalida di AWS DMS per eventuali errori. | Controlla e correggi eventuali errori di replica o convalida. | DBA | 
| Interrompi tutte le dipendenze Oracle. | Arresta tutte le dipendenze Oracle, spegni i listener sul database Oracle ed esegui **ALTER SYSTEM** SWITCH LOGFILE. Interrompi l'attività AWS DMS quando non mostra alcuna attività. | DBA | 
| Esegui gli script post-migrazione da AWS SCT. | In Amazon RDS for PostgreSQL, esegui i seguenti script generati da AWS SCT:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | DBA | 
| Completa i passaggi aggiuntivi di Amazon RDS for PostgreSQL. | Incrementa le sequenze in modo che corrispondano a quelle di Oracle, se necessario, esegui **VACUUM** e **ANALYZE** e scatta un'istantanea per garantire la conformità. | DBA | 
| Apri le connessioni ad Amazon RDS for PostgreSQL. | Rimuovi i gruppi di sicurezza AWS DMS da Amazon RDS for PostgreSQL, aggiungi gruppi di sicurezza di produzione e indirizza le tue applicazioni verso il nuovo database. | DBA | 
| Pulisci gli oggetti AWS DMS. | Rimuovi gli endpoint, le attività di replica, le istanze di replica e l'istanza. EC2  | SysAdmin, DBA | 

## Risorse correlate
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-resources"></a>
+ [Documentazione AWS DMS](https://docs.aws.amazon.com/dms/)
+ [Documentazione AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Prezzi di Amazon RDS per PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/) 