

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

# Migre o Amazon RDS for Oracle para o Amazon AWS SCT RDS for PostgreSQL com e usando e AWS DMS AWS CLI CloudFormation
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation"></a>

*Pinesh Singal, Amazon Web Services*

## Resumo
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-summary"></a>

Esse padrão mostra como migrar uma instância de banco de dados Amazon [Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) for Oracle de vários terabytes para uma instância de banco de dados [Amazon RDS for PostgreSQL usando](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) o (). AWS Command Line Interface AWS CLI A abordagem fornece tempo de inatividade mínimo e não requer login no Console de gerenciamento da AWS.

Esse padrão ajuda a evitar configurações manuais e migrações individuais usando os consoles AWS Schema Conversion Tool (AWS SCT) e AWS Database Migration Service (AWS DMS). A solução configura uma configuração única para vários bancos de dados e executa as migrações usando AWS SCT e AWS DMS no. AWS CLI

O padrão é usado AWS SCT para converter objetos do esquema de banco de dados do Amazon RDS para Oracle para o Amazon RDS for PostgreSQL e, em seguida, é usado para migrar os dados. AWS DMS Usando scripts Python em AWS CLI, você cria AWS SCT objetos e AWS DMS tarefas com um CloudFormation modelo.

## Pré-requisitos e limitações
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS.
+ Instância de banco de dados existente Amazon RDS para Oracle.
+ Uma instância existente de banco de dados do Amazon RDS para PostgreSQL. 
+ Uma instância do Amazon Elastic Compute Cloud (Amazon EC2) ou máquina local com sistema operacional Windows ou Linux para execução de scripts.
+ Uma compreensão dos seguintes tipos de tarefas de AWS DMS migração:`full-load`,`cdc`,`full-load-and-cdc`.  Para obter mais informações, consulte [Criação de uma tarefa](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) na AWS DMS documentação. 
+ O AWS SCT instalado e configurado com drivers Java Database Connectivity (JDBC) para os mecanismos de banco de dados da Oracle e do PostgreSQL. Para obter mais informações, consulte [Instalação e configuração AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure) na AWS SCT documentação. 
+ O `AWSSchemaConversionToolBatch.jar` arquivo da AWS SCT pasta instalada, copiado para o seu diretório de trabalho.
+ O arquivo `cli-sct-dms-cft.zip` (anexo), baixado e extraído em seu diretório de trabalho.
+ A versão mais recente do mecanismo AWS DMS de instância de replicação. Para obter mais informações, consulte [Como faço para criar uma instância de AWS DMS replicação](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/) na AWS Support documentação e nas [notas de AWS DMS versão](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReleaseNotes.html). 
+ AWS CLI versão 2, instalada e configurada com seu ID de chave de acesso, chave de acesso secreta e Região da AWS nome padrão para a EC2 instância ou sistema operacional em que os scripts são executados. Para obter mais informações, consulte [Instalando ou atualizando para a versão mais recente do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) e [Definindo as configurações do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) na AWS CLI documentação. 
+ Familiaridade com CloudFormation modelos. Para obter mais informações, consulte [Como CloudFormation funciona](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-overview.html) na CloudFormation documentação. 
+ Python versão 3, instalado e configurado na EC2 instância ou no sistema operacional em que os scripts são executados. Para obter mais informações, consulte a [documentação do Python](https://docs.python.org/3/). 

**Limitações**
+ Os requisitos mínimos para sua instância de banco de dados do Amazon RDS para Oracle de origem são: 
  + As versões da Oracle 12c (12.1.0.2, 12.2.0.1), 18c (18.0.0.0) e 19c (19.0.0.0) são compatíveis com as edições Enterprise, Standard, Standard One e Standard Two.
  + Embora o Amazon RDS ofereça suporte ao Oracle 18c (18.0.0.0), essa versão está em um caminho de descontinuação porque a Oracle não fornece mais patches para 18c após a data. end-of-support Para obter mais informações, consulte o [Amazon RDS para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.Deprecate.11204) na documentação do Amazon RDS.
  + O Amazon RDS para Oracle 11g não é mais compatível.
+ Os requisitos mínimos para sua instância de banco de dados do Amazon RDS para PostgreSQL de origem são: 
  + As versões do PostgreSQL incluem 9 (9.5 e 9.6), 10.x, 11.x, 12.x e 13.x.

**Versões do produto**
+ Instância do banco de dados Amazon RDS para Oracle versão 12.1.0.2 e posteriores
+ Instância do banco de dados Amazon RDS para PostgreSQL versão 11.5 e posteriores
+ AWS CLI versão 2 
+ A versão mais recente do AWS SCT
+ A versão mais recente do Python 3

## Arquitetura
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-architecture"></a>

**Pilha de tecnologia de origem**
+ Amazon RDS para Oracle

**Pilha de tecnologias de destino**
+ Amazon RDS para PostgreSQL

**Arquitetura de origem e destino **

O diagrama a seguir mostra a migração de uma instância de banco de dados Amazon RDS for Oracle para uma instância de banco de dados Amazon RDS for PostgreSQL AWS DMS usando scripts Python.

![Migração de uma instância de banco de dados do RDS para Oracle para uma instância de banco de dados do RDS para PostgreSQL usando o AWS DMS e o Python.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/5e041494-2e64-4f09-b6ec-0e0cba3a4972/images/77022e13-46fb-4aa8-ab49-85b0ca4c317a.png)


 

O diagrama mostra o seguinte fluxo de trabalho de migração:

1. O script Python é usado AWS SCT para se conectar às instâncias de banco de dados de origem e de destino.

1. O usuário começa AWS SCT com o script Python, converte o código Oracle em código PostgreSQL e o executa na instância de banco de dados de destino.

1. O script Python cria tarefas de AWS DMS replicação para as instâncias de banco de dados de origem e de destino.

1. O usuário implanta scripts Python para iniciar as tarefas e, em seguida, interrompe AWS DMS as tarefas após a conclusão da migração de dados.

**Automação e escala**

É possível automatizar esta migração adicionando parâmetros e alterações relacionadas à segurança ao script em Python a fim de fornecer funcionalidades adicionais. 

## Ferramentas
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-tools"></a>
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) é uma ferramenta de código aberto que ajuda você a interagir com os serviços da AWS por meio de comandos em seu shell de linha de comando.
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ajuda você a configurar recursos da AWS, provisioná-los de forma rápida e consistente e gerenciá-los em todo o seu ciclo de vida em todas Contas da AWS as regiões. Este padrão converte o arquivo de entrada `.csv` em um arquivo de entrada `.json` usando um script em Python. O `.json` arquivo é usado em AWS CLI comandos para criar uma CloudFormation pilha que cria várias tarefas de AWS DMS replicação com Amazon Resource Names (ARNs), tipos de migração, configurações de tarefas e mapeamentos de tabelas.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para Nuvem AWS ou entre combinações de configurações na nuvem e no local. Esse padrão é usado AWS DMS para criar, iniciar e interromper tarefas com um script Python executado na linha de comando e para criar o CloudFormation modelo.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) oferece suporte a migrações heterogêneas de bancos de dados convertendo automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino. Esse padrão requer o `AWSSchemaConversionToolBatch.jar` arquivo do AWS SCT diretório instalado.

**Código **

O arquivo `cli-sct-dms-cft.zip` (anexo) contém o código-fonte completo para esse padrão.

## Épicos
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-epics"></a>

### Configure AWS SCT e crie objetos de banco de dados no AWS CLI
<a name="configure-awssct-and-create-database-objects-in-the-cli"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure AWS SCT para ser executado a partir do AWS CLI. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html) | DBA | 
| Execute o script em Python `run_aws_sct.py`. | Execute o script `run_aws_sct.py` do Python usando o comando a seguir:<br />`$ python run_aws_sct.py database_migration.txt`<br />O script do Python converte os objetos do banco de dados do Oracle para o PostgreSQL e cria arquivos SQL no formato PostgreSQL. O script também gera o arquivo em PDF `Database migration assessment report`, que fornece recomendações detalhadas e estatísticas de conversão para os objetos de banco de dados. | DBA | 
| Crie objetos no Amazon RDS para PostgreSQL. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html) | DBA | 

### Configure e crie AWS DMS tarefas usando o AWS CLI e CloudFormation
<a name="configure-and-create-dms-tasks-by-using-the-cli-and-cfn"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância de AWS DMS replicação. | Faça login no Console de gerenciamento da AWS, abra o [AWS DMS console](https://console.aws.amazon.com/dms/v2/) e crie uma instância de replicação configurada de acordo com seus requisitos.<br />Para obter mais informações, consulte [Criação de uma instância de replicação](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html) na AWS DMS documentação e [Como faço para criar uma instância de AWS DMS replicação](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/) na AWS Support documentação. | DBA | 
| Crie um endpoint de origem. | No AWS DMS console, escolha **Endpoints** e, em seguida, crie um endpoint de origem para o banco de dados Oracle de acordo com seus requisitos. O atributo de conexão extra deve ser `numberDataTypeScale` com um valor `-2`.<br />Para obter mais informações, consulte [Criação de endpoints de origem e destino](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) na AWS DMS documentação. | DBA | 
| Crie um endpoint de destino. | No AWS DMS console, escolha **Endpoints** e, em seguida, crie um endpoint de destino para o banco de dados PostgreSQL de acordo com seus requisitos.  <br />Para obter mais informações, consulte [Criação de endpoints de origem e destino](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) na AWS DMS documentação. | DevOps engenheiro | 
| Configure os detalhes da AWS DMS replicação para serem executados a partir do AWS CLI. | Configure os endpoints de AWS DMS origem e de destino e os detalhes da replicação no `dms-arn-list.txt` arquivo com o ARN do endpoint de origem, o ARN do endpoint de destino e o ARN da instância de replicação usando o seguinte formato:<pre>#sourceARN,targetARN,repARN<br />arn:aws:dms:us-east-1:123456789012:endpoint:EH7AINRUDZ5GOYIY6HVMXECMCQ<br />arn:aws:dms:us-east-1:123456789012:endpoint:HHJVUV57N7O3CQF4PJZKGIOYY5<br />arn:aws:dms:us-east-1:123456789012:rep:LL57N77AQQAHHJF4PJFHNEDZ5G</pre> | DBA | 
| Execute o script `dms-create-task.py` Python para criar as AWS DMS tarefas. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html) | DBA | 
| Verifique se as AWS DMS tarefas estão prontas. | No AWS DMS console, verifique se suas AWS DMS tarefas estão em `Ready` status na seção **Status**. | DBA | 

### Inicie e interrompa as AWS DMS tarefas usando o AWS CLI
<a name="start-and-stop-the-dms-tasks-by-using-the-cli"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Inicie as AWS DMS tarefas. | Execute o script `dms-start-task.py` do Python usando o comando a seguir:<pre>$ python dms-start-task.py start '<cdc-start-datetime>'</pre>A data e o horário de início devem estar no formato `'DD-MON-YYYY'` ou `'YYYY-MM-DDTHH:MI:SS'` (por exemplo, `'01-Dec-2019'` ou `'2018-03-08T12:12:12'`).<br />Você pode revisar o status da AWS DMS tarefa na guia **Estatísticas da tabela** na página **Tarefas** do AWS DMS console. | DBA | 
| Valide os dados. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html)Para obter mais informações, consulte a [validação de AWS DMS dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) na AWS DMS documentação. | DBA | 
| Pare as AWS DMS tarefas. | Execute o script do Python usando o comando a seguir:<pre>$ python dms-start-task.py stop</pre>AWS DMS as tarefas podem parar com um `failed` status, dependendo do status de validação. Para obter mais informações, consulte a próxima seção. | DBA | 

## Solução de problemas
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| AWS SCT as conexões de teste de origem e destino falham. | Configure as versões do driver JDBC e as regras de entrada do grupo de segurança da VPC para aceitar o tráfego de entrada. | 
| A execução do teste de endpoint de origem ou de destino falha. | Verifique se as configurações do endpoint e a instância de replicação estão com status `Available`. Verifique se o status da conexão do endpoint é `Successful`. <br />Para obter mais informações, consulte [Como soluciono falhas de conectividade de endpoints do AWS DMS na documentação](https://aws.amazon.com/premiumsupport/knowledge-center/dms-endpoint-connectivity-failures/). AWS Support  | 
| A execução de carga máxima falha. | Verifique se os bancos de dados de origem e de destino têm tipos e tamanhos de dados correspondentes. <br />Para obter mais informações, consulte [Solução de problemas de tarefas de migração AWS DMS na](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html) AWS DMS documentação. | 
| Você encontra erros na execução de validação. | Verifique se a tabela tem uma chave primária porque as tabelas de chave não primária não estão validadas.<br />Se a tabela tiver uma chave primária, mas retornar erros, verifique o atributo de conexão extra no endpoint de origem tem `numberDataTypeScale=-2`.<br />Para obter mais informações, consulte [Configurações do endpoint ao usar o Oracle como fonte](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.ConnectionAttrib) e [Solução de problemas](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html#CHAP_Validating.Troubleshooting) na AWS DMS documentação. AWS DMS[OracleSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_OracleSettings.html) | 

## Recursos relacionados
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-resources"></a>
+ [Instalando e configurando AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure)
+ [Introduction to AWS DMS](https://www.youtube.com/watch?v=ouia1Sc5QGo) (vídeo)
+ [Exemplos de comandos de operação de CloudFormation pilha para e AWS CLI PowerShell](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-cli.html)
+ [Navegando pela interface do usuário do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Usando um banco de dados Oracle como fonte para AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Conectando-se aos bancos de dados Oracle com AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)
+ [Usando um banco de dados PostgreSQL como alvo para AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) 
+ [Origens para a migração de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)
+ [Destinos para a migração de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html)
+ [cloudformation (documentação](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/index.html))AWS CLI 
+ [create-stack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/create-stack.html) (documentação)AWS CLI  
+ [dms](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/dms/index.html) (AWS CLI documentação) 

## Anexos
<a name="attachments-5e041494-2e64-4f09-b6ec-0e0cba3a4972"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/5e041494-2e64-4f09-b6ec-0e0cba3a4972/attachments/attachment.zip)