

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 Oracle utilizzando Oracle Data Pump
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump"></a>

*Mohan Annam e Brian Motzer, Amazon Web Services*

## Riepilogo
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-summary"></a>

Questo modello descrive come migrare un database Oracle da un data center locale a un'istanza Amazon Relational Database Service (Amazon RDS) per Oracle DB utilizzando Oracle Data Pump. 

Il modello prevede la creazione di un file di dump dei dati dal database di origine, l'archiviazione del file in un bucket Amazon Simple Storage Service (Amazon S3) e il ripristino dei dati su un'istanza DB Amazon RDS for Oracle. Questo modello è utile in caso di limitazioni nell'utilizzo di AWS Database Migration Service (AWS DMS) per la migrazione. 

## Prerequisiti e limitazioni
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Le autorizzazioni necessarie per creare ruoli in AWS Identity and Access Management (IAM) e per un caricamento multiparte di Amazon S3
+ Le autorizzazioni necessarie per esportare i dati dal database di origine
+ [AWS Command Line Interface (AWS CLI[) installata e configurata](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

**Versioni del prodotto**
+ Oracle Data Pump è disponibile solo per Oracle Database 10g Release 1 (10.1) e versioni successive.

## Architecture
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-architecture"></a>

**Stack tecnologico di origine**
+ Database Oracle locali

**Stack tecnologico Target**
+ Amazon RDS per Oracle
+ Client SQL (Oracle SQL Developer)
+ Un bucket S3

**Architettura di origine e destinazione**

![Caricamento multiparte di Amazon S3 da un database Oracle locale su Amazon RDS utilizzando Oracle Data Pump.](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/d8d6e00f-753e-4ecc-80e5-e60e279a699b/images/1bb6095a-0a95-4469-be0e-7b7bd59b35ae.png)


## Tools (Strumenti)
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-tools"></a>

**Servizi AWS**
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle. In questo modello, IAM viene utilizzato per creare i ruoli e le policy necessari per la migrazione dei dati da Amazon S3 ad Amazon RDS for Oracle.
+ [Amazon Relational Database Service (Amazon RDS) per](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) Oracle ti aiuta a configurare, gestire e scalare un database relazionale Oracle nel cloud AWS.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

**Altri strumenti**
+ [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) ti aiuta a spostare dati e metadati da un database all'altro a velocità elevate. In questo modello, Oracle Data Pump viene utilizzato per esportare il file di dump dei dati (.dmp) sul server Oracle e per importarlo in Amazon RDS for Oracle. Per ulteriori informazioni, consulta [Importazione di dati in Oracle su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3) nella documentazione di Amazon RDS.
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) è un ambiente di sviluppo integrato che semplifica lo sviluppo e la gestione dei database Oracle in implementazioni tradizionali e basate su cloud. Interagisce sia con il database Oracle locale che con Amazon RDS for Oracle per eseguire i comandi SQL necessari per l'esportazione e l'importazione dei dati.

## Epiche
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-epics"></a>

### Creare un bucket S3
<a name="create-an-s3-bucket"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il bucket. | Per creare il bucket S3, segui le istruzioni nella documentazione [AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | Amministratore di sistema AWS | 

### Crea il ruolo IAM e assegna le politiche
<a name="create-the-iam-role-and-assign-policies"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura le autorizzazioni IAM. | Per configurare le autorizzazioni, segui le istruzioni nella [documentazione di AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing). | Amministratore di sistema AWS | 

### Crea l'istanza database Amazon RDS for Oracle di destinazione e associa il ruolo di integrazione di Amazon S3
<a name="create-the-target-amazon-rds-for-oracle-db-instance-and-associate-the-amazon-s3-integration-role"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea l'istanza database Amazon RDS for Oracle di destinazione. | Per creare l'istanza Amazon RDS for Oracle, segui le istruzioni nella documentazione [AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html). | Amministratore di sistema AWS | 
| Associa il ruolo all'istanza DB. | Per associare il ruolo all'istanza, segui le istruzioni nella [documentazione AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing.instance). | DBA | 

### Crea l'utente del database sul database di destinazione
<a name="create-the-database-user-on-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Creare l’utente. | Connect al database Amazon RDS for Oracle di destinazione da Oracle SQL Developer o SQL\*Plus ed esegui il seguente comando SQL per creare l'utente in cui importare lo schema.<pre>create user SAMPLE_SCHEMA identified by <PASSWORD>;<br />grant create session, resource to <USER NAME>;<br />alter user <USER NAME> quota 100M on users;</pre> | DBA | 

### Crea il file di esportazione dal database Oracle di origine
<a name="create-the-export-file-from-the-source-oracle-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un file di dump dei dati. | Per creare un file di dump denominato `sample.dmp` nella `DATA_PUMP_DIR` directory per l'esportazione dell'`SAMPLE_SCHEMA`utente, utilizzare lo script seguente.<pre>DECLARE<br />    hdnl NUMBER;<br />BEGIN<br />    hdnl := dbms_datapump.open(operation => 'EXPORT', <br />                                job_mode => 'SCHEMA', <br />                                job_name => NULL);<br /><br />    dbms_datapump.add_file( handle => hdnl, <br />                            filename => 'sample.dmp', <br />                            directory => 'DATA_PUMP_DIR', <br />                            filetype => dbms_datapump.ku$_file_type_dump_file);<br /><br />    dbms_datapump.add_file(handle => hdnl, <br />                            filename => 'export.log', <br />                            directory => 'DATA_PUMP_DIR', <br />                            filetype => dbms_datapump.ku$_file_type_log_file);<br /><br />    dbms_datapump.metadata_filter(hdnl, 'SCHEMA_EXPR', 'IN (''SAMPLE_SCHEMA'')');  <br /><br />    dbms_datapump.start_job(hdnl);<br />END;<br />/</pre><br />Controlla i dettagli dell'esportazione esaminando il `export.log` file nella tua directory locale`DATA_PUMP_DIR`.  | DBA | 

### Carica il file di dump nel bucket S3
<a name="upload-the-dump-file-to-the-s3-bucket"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Carica il file di dump dei dati dall'origine al bucket S3. | Utilizzando AWS CLI, esegui il seguente comando.<pre>aws s3 cp sample.dmp s3://<bucket_created_epic_1>/</pre> | DBA | 

### Scarica il file di esportazione dal bucket S3 all'istanza RDS
<a name="download-the-export-file-from-the-s3-bucket-to-the-rds-instance"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Scarica il file di dump dei dati su Amazon RDS | Per copiare il file di dump `sample.dmp` dal bucket S3 al database Amazon RDS for Oracle, esegui il seguente comando SQL. In questo esempio, il `sample.dmp` file viene scaricato dal `my-s3-integration1` bucket S3 nella directory Oracle. `DATA_PUMP_DIR` Assicurati di disporre di spazio su disco sufficiente all'istanza RDS per ospitare sia il database che il file di esportazione.<pre>-- If you want to download all the files in the S3 bucket remove the p_s3_prefix line.<br /><br />SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(<br />      p_bucket_name    =>  'my-s3-integration',    <br />      p_s3_prefix => 'sample.dmp',<br />      p_directory_name =>  'DATA_PUMP_DIR') <br />   AS TASK_ID FROM DUAL;</pre><br />Il comando precedente restituisce un ID di attività. Per verificare lo stato del download esaminando i dati nell'ID dell'attività, esegui il comando seguente.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<task_id>.log'));<br /><br /></pre><br />Per visualizzare i file nella `DATA_PUMP_DIR` directory, esegui il comando seguente.<pre>SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp<br />FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;</pre> | Amministratore di sistema AWS | 

### Importa il file di dump nel database di destinazione
<a name="import-the-dump-file-into-the-target-database"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ripristina lo schema e i dati su Amazon RDS. | Per importare il file di dump nello schema del `sample_schema` database, esegui il seguente comando SQL da SQL Developer o SQL\*Plus.<pre>DECLARE<br />hdnl NUMBER;<br />BEGIN<br /><br />hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name=>null);<br /><br />DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file);<br /><br />DBMS_DATAPUMP.ADD_FILE( handle    => hdnl, filename  => 'import.log', directory => 'DATA_PUMP_DIR', filetype  => dbms_datapump.ku$_file_type_log_file);<br /><br />DBMS_DATAPUMP.METADATA_FILTER(hdnl,'SCHEMA_EXPR','IN (''SAMPLE_SCHEMA'')');<br /><br />DBMS_DATAPUMP.START_JOB(hdnl);<br /><br />END;<br />/</pre><br />Per visualizzare il file di registro dell'importazione, esegui il comando seguente.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));</pre> | DBA | 

### Rimuovi il file di dump dalla directory DATA\_PUMP\_DIR
<a name="remove-the-dump-file-from-the-data_pump_dir-directory"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Elenca e pulisci i file di esportazione. | Elenca e rimuovi i file di esportazione nella `DATA_PUMP_DIR` directory, esegui i seguenti comandi.<pre>-- List the files<br />SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;</pre><pre>-- Remove the files<br />EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample.dmp');<br />EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','import.log');</pre> | Amministratore di sistema AWS | 

## Risorse correlate
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-resources"></a>
+ [Integrazione con Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing)
+ [Crea un'istanza DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateDBInstance.html)
+ [Importazione di dati in Oracle su Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3)
+ [Documentazione Amazon S3](https://docs.aws.amazon.com/s3/index.html)
+ [Documentazione IAM](https://docs.aws.amazon.com/iam/index.html)
+ [Documentazione Amazon RDS](https://docs.aws.amazon.com/rds/index.html)
+ [Documentazione Oracle Data Pump](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html)
+ [Oracle SQL Developer](https://www.oracle.com/database/sqldeveloper/)