

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Migrar um banco de dados Oracle on-premises para o Amazon RDS para Oracle usando o 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, da Amazon Web Services*

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

Esse padrão descreve como migrar um banco de dados Oracle de um datacenter on-premises para um Amazon Relational Database Service (Amazon RDS) para instância de banco de dados Oracle usando o Oracle Data Pump. 

O padrão envolve criar um arquivo de despejo de dados do banco de dados de origem, armazenar o arquivo em um bucket do Amazon Simple Storage Service (Amazon S3) e restaurar os dados em uma instância de banco de dados do Amazon RDS para Oracle. Esse padrão é útil quando você encontra limitações ao usar o AWS Database Migration Service (AWS DMS) para a migração. 

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ As permissões necessárias para criar perfis no AWS Identity and Access Management (IAM) e para um upload de várias partes do Amazon S3
+ As permissões necessárias para exportar dados do banco de dados de origem
+ AWS Command Line Interface (AWS CLI), [instalado](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) e [configurado](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

**Versões do produto**
+ O Oracle Data Pump está disponível somente para o banco de dados Oracle 10g Release 1 (10.1) e versões posteriores.

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

**Pilha de tecnologia de origem**
+ Banco de dados Oracle on-premises.

**Pilha de tecnologias de destino**
+ Amazon RDS para Oracle
+ Cliente SQL (desenvolvedor Oracle SQL)
+ Um bucket do S3

**Arquitetura de origem e destino**

![\[Upload de várias partes do Amazon S3 de um banco de dados Oracle local para o Amazon RDS usando o Oracle Data Pump.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/d8d6e00f-753e-4ecc-80e5-e60e279a699b/images/1bb6095a-0a95-4469-be0e-7b7bd59b35ae.png)


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

**Serviços da AWS**
+ O [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus recursos da AWS, controlando quem está autenticado e autorizado a usá-los. Nesse padrão, o IAM é usado para criar os perfis e as políticas necessárias para migrar dados do Amazon S3 para o Amazon RDS para Oracle.
+ O [Amazon Relational Database Service (Amazon RDS) para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) ajuda você a configurar, operar e escalar um banco de dados relacional Oracle na Nuvem AWS.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

**Outras ferramentas**
+ O [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) ajuda você a mover dados e metadados de um banco de dados para outro em alta velocidade. Nesse padrão, o Oracle Data Pump é usado para exportar o arquivo de despejo de dados (.dmp) para o servidor Oracle e importá-lo para o Amazon RDS para Oracle. Para obter mais informações, consulte [Como importar dados no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3) na documentação do Amazon RDS.
+ O [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) é um ambiente de desenvolvimento integrado que simplifica o desenvolvimento e o gerenciamento de bancos de dados Oracle em implantações tradicionais e baseadas em nuvem. Ele interage com o banco de dados Oracle on-premises e com o Amazon RDS para Oracle para executar os comandos SQL necessários para exportar e importar dados.

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

### Criar um bucket do S3.
<a name="create-an-s3-bucket"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o bucket. | Para criar um bucket do S3, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | Administrador de sistemas AWS | 

### Criar o perfil do IAM e atribuir políticas
<a name="create-the-iam-role-and-assign-policies"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configurar permissões do IAM | Para configurar as permissões, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing). | Administrador de sistemas AWS | 

### Criar a instância de destino do banco de dados do Amazon RDS para Oracle e associar o perfil de integração do Amazon S3
<a name="create-the-target-amazon-rds-for-oracle-db-instance-and-associate-the-amazon-s3-integration-role"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a instância de destino do banco de dados do Amazon RDS para Oracle. | Para criar a instância do Amazon RDS para Oracle, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html). | Administrador de sistemas AWS | 
| Associe o perfil à instância de banco de dados. | Para associar o perfil à instância, siga as instruções na [documentação da AWS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing.instance). | DBA | 

### Criar o usuário do banco de dados no banco de dados de destino
<a name="create-the-database-user-on-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o usuário. | Conecte-se ao banco de dados Amazon RDS para Oracle de destino a partir do Oracle SQL Developer ou SQL\$1Plus e execute o seguinte comando SQL para criar o usuário para o qual importar o esquema.<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 | 

### Criar o arquivo de exportação do banco de dados Oracle de origem
<a name="create-the-export-file-from-the-source-oracle-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um arquivo de despejo de dados. | Para criar um arquivo de despejo nomeado `sample.dmp` no diretório `DATA_PUMP_DIR` para exportar o usuário `SAMPLE_SCHEMA`, use o script a seguir.<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>Revise os detalhes da exportação revisando o arquivo `export.log` em seu diretório local `DATA_PUMP_DIR`.  | DBA | 

### Faça upload do arquivo de despejo no bucket do S3.
<a name="upload-the-dump-file-to-the-s3-bucket"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Carregue o arquivo de despejo de dados da origem para o bucket do S3. | Quando usar a AWS CLI, execute o comando a seguir.<pre>aws s3 cp sample.dmp s3://<bucket_created_epic_1>/</pre> | DBA | 

### Baixe o arquivo de exportação do bucket do S3 para a instância do RDS
<a name="download-the-export-file-from-the-s3-bucket-to-the-rds-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Baixe o arquivo de despejo de dados para o Amazon RDS | Para copiar o arquivo de despejo `sample.dmp` do bucket do S3 no banco de dados do Amazon RDS para Oracle, execute o seguinte comando SQL. Neste exemplo, o arquivo `sample.dmp` é baixado do bucket do S3 `my-s3-integration1` para o diretório Oracle `DATA_PUMP_DIR`. Verifique se você tem espaço em disco suficiente alocado para sua instância do RDS para acomodar o banco de dados e o arquivo de exportação.<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>O comando anterior gera um ID da tarefa. Para revisar o status do download analisando os dados no ID da tarefa, execute o comando a seguir.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<task_id>.log'));<br /><br /></pre>Para ver os arquivos no diretório `DATA_PUMP_DIR`, execute o seguinte comando.<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> | Administrador de sistemas AWS | 

### Importe o arquivo de despejo para o banco de dados de destino.
<a name="import-the-dump-file-into-the-target-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Restaure o esquema e os dados no Amazon RDS. | Para importar o arquivo de despejo para o esquema do banco de dados `sample_schema`, execute o seguinte comando SQL do SQL Developer ou do SQL\$1Plus.<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>Para ver o arquivo de log da importação, execute o comando a seguir.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));</pre> | DBA | 

### Remova o arquivo de despejo do diretório DATA\$1PUMP\$1DIR
<a name="remove-the-dump-file-from-the-data_pump_dir-directory"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Listar e limpar os arquivos de exportação. | Para listar e remover os arquivos de exportação no diretório `DATA_PUMP_DIR`, execute os comandos a seguir.<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> | Administrador de sistemas AWS | 

## Recursos relacionados
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-resources"></a>
+ [Integração do Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing)
+ [Criar uma instância de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateDBInstance.html)
+ [Importar dados para o Oracle no Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3)
+ [Documentação do Amazon S3](https://docs.aws.amazon.com/s3/index.html)
+ [Documentação do IAM](https://docs.aws.amazon.com/iam/index.html)
+ [Documentação do Amazon RDS](https://docs.aws.amazon.com/rds/index.html)
+ [Documentação do 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/)