

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 PostgreSQL usando um Oracle bystander e o 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*

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

Este padrão descreve como você pode migrar um banco de dados Oracle on-premises para qualquer um dos seguintes serviços de banco de dados da AWS compatíveis com PostgreSQL com o mínimo de tempo de inatividade:
+ Amazon Relational Database Service (Amazon RDS) para PostgreSQL
+ Amazon Aurora Edição Compatível com PostgreSQL

A solução usa o AWS Database Migration Service (AWS DMS) para migrar os dados, o AWS Schema Conversion Tool (AWS SCT) para converter o esquema do banco de dados e um banco de dados da Oracle bystander para ajudar a gerenciar a migração. Nessa implementação, o tempo de inatividade é restrito ao tempo necessário para criar ou validar todas as chaves estrangeiras no banco de dados. 

A solução também usa instâncias do Amazon Elastic Compute Cloud (Amazon EC2) com um banco de dados de espectadores Oracle para ajudar a controlar o fluxo de dados por meio do AWS DMS. Você pode pausar temporariamente a replicação de transmissão do banco de dados on-premises da Oracle para a Oracle bystander para ativar o AWS DMS para acompanhar a validação de dados ou usar outra ferramenta de validação de dados. A instância de banco de dados Amazon RDS para PostgreSQL ou a instância de banco de dados compatível com o Aurora PostgreSQL e o banco de dados de bystander terão os mesmos dados quando o AWS DMS terminar de migrar as alterações atuais. 

## Pré-requisitos e limitações
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um banco de dados de origem Oracle em um datacenter on-premises com um banco de dados Active Data Guard configurado em espera
+ AWS Direct Connect configurado entre o datacenter on-premises e o AWS Secrets Manager para armazenar os segredos do banco de dados
+ Drivers de conectividade de banco de dados Java (JDBC) para conectores AWS SCT, instalados em uma máquina local ou na instância em que o AWS SCT EC2 está instalado
+ Familiaridade com [o uso de um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Familiaridade com [o uso de um banco de dados PostgreSQL como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)

**Limitações**
+ Limite de tamanho do banco de dados: 64 TB

**Versões do produto**
+ O AWS DMS oferece suporte a todas as edições do banco de dados Oracle para as versões 10.2 e versões posteriores (para versões 10.x), 11g e até 12.2, 18c e 19c. Para obter a lista mais recente de versões compatíveis, consulte [Usar um banco de dados Oracle como origem para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e atributos. Para obter informações sobre as versões do banco de dados Oracle suportadas pelo AWS SCT, consulte a [documentação do AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ O AWS DMS é compatível com o PostgreSQL versão 9.4 e posterior (para versões 9.x), 10.x, 11.x, 12.x e 13x. Para obter as informações mais recentes, consulte [Uso de um banco de dados PostgreSQL como destino para o AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) na documentação da AWS.

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

**Pilha de tecnologia de origem**
+ Um banco de dados Oracle on-premises
+ Uma EC2 instância que contém um espectador do banco de dados Oracle

**Pilha de tecnologias de destino**
+ Instância do Amazon RDS para PostgreSQL ou Aurora PostgreSQL, PostgreSQL 9.3 e versões posteriores

**Arquitetura de destino**

O diagrama a seguir mostra um exemplo de fluxo de trabalho para migrar um banco de dados Oracle para um banco de dados AWS compatível com PostgreSQL usando o AWS DMS e um bystander Oracle:

![Migração de um banco de dados Oracle local para o PostgreSQL na AWS.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/6f5d5500-8b09-4bd1-8ef9-e670d58d07f8/images/1de98abd-c143-481a-b55f-e8d00eb96a38.png)


## Ferramentas
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-tools"></a>
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.
+ A [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.
+ O [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) ajuda você a configurar, operar e escalar um banco de dados relacional na Nuvem AWS.

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

### Converta o esquema do banco de dados Oracle em PostgreSQL
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure o AWS SCT. | Crie um novo relatório e conecte-se ao Oracle como origem e ao PostgreSQL como destino. Em **Configurações do projeto**, vá até a guia **SQL Scripting**. Altere o **script SQL de destino** para **vários arquivos**. Esses arquivos serão usados posteriormente e nomeados da seguinte forma:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/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 | 
| Converta o esquema do banco de dados Oracle. | Na guia **Ação**, escolha **Gerar relatório**. Em seguida, escolha **Converter esquema** e escolha **Salvar como SQL**. | DBA | 
| Modifique os scripts. | Por exemplo, talvez você queira modificar o script se um número no esquema de origem tiver sido convertido para o formato numérico no PostgreSQL, mas você precise usar o **BIGINT** em vez disso para melhorar o desempenho. | DBA | 

### Crie e configure a instância de banco de dados do Amazon RDS
<a name="create-and-configure-the-amazon-rds-db-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar a instância de banco de dados do Amazon RDS | Na região da AWS correta, crie uma nova instância de banco de dados PostgreSQL. Para obter mais informações, consulte [Criar uma instância de banco de dados PostgreSQL e conectar a um banco de dados em uma instância de banco de dados PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html) na documentação do Amazon RDS. | AWS SysAdmin, DBA | 
| Configure as especificações da instância de banco de dados. | Especifique a versão do mecanismo de banco de dados, a classe da instância de banco de dados, a implantação Multi-AZ, o tipo de armazenamento e o armazenamento alocado. Insira o identificador da instância de banco de dados, um nome de usuário primária e uma senha primária. | AWS SysAdmin, DBA | 
| Configure rede e segurança. | Especifique a nuvem privada virtual (VPC), o grupo de sub-rede, a acessibilidade pública, a preferência da zona de disponibilidade e os grupos de segurança. | DBA, SysAdmin | 
| Configure as opções do banco de dados. | Especifique o nome do banco de dados, a porta, o grupo de parâmetros, a criptografia e a chave KMS. | AWS SysAdmin, DBA | 
| Configure os backups. | Especifique o período de retenção do backup, a janela do backup, a hora de início, a duração e se as tags devem ser copiadas para instantâneos. | AWS SysAdmin, DBA | 
| Configure opções de monitoramento. | Ative ou desative insights aprimorados de monitoramento e desempenho. | AWS SysAdmin, DBA | 
| Configure opções de manutenção. | Especifique a atualização automática da versão secundária, a janela de manutenção e o dia, a hora e a duração de início. | AWS SysAdmin, DBA | 
| Execute os scripts de pré-migração do AWS SCT. | Na instância do Amazon RDS, execute os seguintes scripts gerados pelo AWS SCT:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/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 | 

### Configurar o Oracle bystander na Amazon EC2
<a name="configure-the-oracle-bystander-in-amazon-ec2"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a rede para a Amazon EC2. | Crie a nova VPC, sub-redes, gateway da Internet, tabelas de rotas e grupos de segurança. | AWS SysAdmin | 
| Crie a EC2 instância. | Na região apropriada da AWS, crie uma nova EC2 instância. Selecione a imagem de máquina da Amazon (AMI), escolha o tamanho da instância e configure os detalhes da instância: número de instâncias (1), a VPC e a sub-rede que você criou na tarefa anterior, atribuição automática de IP público e outras opções. Adicione armazenamento, configure grupos de segurança e inicie. Quando solicitado, crie e salve um par de chaves para a próxima etapa. | AWS SysAdmin | 
| Conecte o banco de dados de origem Oracle à EC2 instância. | Copie o endereço IP IPv4 público e o DNS em um arquivo de texto e conecte-se usando SSH da seguinte forma: **ssh -i “your\_file.pem” EC2-user@<your-IP** - -DNS>. address-or-public | AWS SysAdmin | 
| Configure o host inicial para um espectador na Amazon. EC2 | Configure chaves SSH, perfil bash, ORATAB e links simbólicos. Crie diretórios Oracle. | AWS SysAdmin, administrador de Linux | 
| Configure a cópia do banco de dados para um espectador na Amazon EC2 | Use o RMAN para criar uma cópia do banco de dados, ativar o registro suplementar e criar o arquivo de controle em espera. Depois que a cópia estiver concluída, coloque o banco de dados no modo de recuperação. | AWS SysAdmin, DBA | 
| Configure o Oracle Data Guard. | Modifique seu arquivo **listener.ora** e inicie o receptor. Configure um novo destino de arquivamento. Coloque o espectador no modo de recuperação, substitua os arquivos temporários para evitar corrupção futura, instale um crontab, se necessário, para evitar que o diretório de arquivamento fique sem espaço e edite o **manage-trclog-files-oraclearquivo.cfg** para a origem e o modo de espera. | AWS SysAdmin, DBA | 
| Prepare o banco de dados Oracle para sincronizar o envio. | Adicione os arquivos de log em espera e altere o modo de recuperação. Altere o envio do log para **SYNC AFFIRM** na fonte primária e na fonte em espera. Ative os registros primários, confirme por meio do registro de alerta do EC2 espectador da Amazon que você está usando os arquivos de log em espera e confirme se o fluxo de redo está fluindo no SYNC. | AWS SysAdmin, DBA | 

### Migre dados com o AWS DMS
<a name="migrate-data-with-aws-dms"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma instância de replicação no AWS DMS. | Preencha os campos para nome, classe da instância, VPC (igual à EC2 instância da Amazon), Multi-AZ e acessibilidade pública. Em **Avançado**, especifique o armazenamento alocado, o grupo de sub-rede, a zona de disponibilidade, os grupos de segurança da VPC e a chave do AWS Key Management Service (AWS KMS). | AWS SysAdmin, DBA | 
| Crie o endpoint do banco de dados de origem. | Especifique o nome do endpoint, tipo, mecanismo de origem (Oracle), nome do servidor (nome DNS EC2 privado da Amazon), porta, modo SSL, nome de usuário, senha, SID, VPC (especifique a VPC que tem a instância de replicação) e instância de replicação. Para testar a conexão, escolha **Executar teste** e, em seguida, crie o endpoint. Você também pode definir as seguintes configurações avançadas: **maxFileSize**e **numberDataTypeEscala**. | AWS SysAdmin, DBA | 
| Conecte o AWS DMS ao Amazon RDS para PostgreSQL. | Crie um grupo de segurança de migração para conexões entre VPCs. | AWS SysAdmin, DBA | 
| Crie o endpoint do banco de dados de destino. | Especifique o nome do endpoint, o tipo, o mecanismo de origem (PostgreSQL), o nome do servidor (endpoint do Amazon RDS), a porta, o modo SSL, o nome do usuário, a senha, o nome do banco de dados, a VPC (especificar a VPC que tem a instância de replicação) e a instância de replicação. Para testar a conexão, escolha **Executar teste** e, em seguida, crie o endpoint. Você também pode definir as seguintes configurações avançadas: **maxFileSize **e **numberDataTypeEscala**. | AWS SysAdmin, DBA | 
| Crie a tarefa de replicação do AWS DMS. | Especifique o nome da tarefa, a instância de replicação, os endpoints de origem e destino e a instância de replicação. Para tipo de migração, escolha **Migrar dados existentes e replicar alterações contínuas**. Desmarque a caixa de seleção **Iniciar tarefa ao criar**. | AWS SysAdmin, DBA | 
| Defina as configurações da tarefa de replicação do AWS DMS. | Para o modo de preparação da tabela de destino, escolha **Não fazer nada**. Interrompa a tarefa após a conclusão do carregamento total (para criar chaves primárias). Especifique o modo LOB limitado ou completo e ative as tabelas de controle. Opcionalmente, você pode definir a configuração **CommitRate**avançada. | DBA | 
| Configure mapeamentos de tabelas. | Na seção **Mapeamentos de tabela**, crie uma regra de **inclusão** para todas as tabelas em todos os esquemas incluídos na migração e, em seguida, crie uma regra de **exclusão**. Adicione três regras de transformação para converter os nomes do esquema, da tabela e da coluna para letra minúscula e adicione quaisquer outras regras necessárias para essa migração específica. | DBA | 
| Iniciar a tarefa. | Iniciar a tarefa de replicação. Verifique se a carga total está em execução. Execute **ALTER SYSTEM SWITCH LOGFILE** no banco de dados Oracle primário para iniciar a tarefa. | DBA | 
| Execute os scripts de meio da migração do AWS SCT. | No Amazon RDS para PostgreSQL, execute os seguintes scripts gerados pelo AWS SCT: [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/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 | 
| Reinicie a tarefa para continuar a captura de dados de alteração (CDC). | Execute **VACUUM** na instância de banco de dados Amazon RDS para PostgreSQL e reinicie a tarefa do AWS DMS para aplicar as alterações do CDC em cache. | DBA | 

### Substitua para o banco de dados PostgreSQL
<a name="cut-over-to-the-postgresql-database"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verifique se há erros nos registros e nas tabelas de validação do AWS DMS. | Verifique e corrija quaisquer erros de replicação ou validação. | DBA | 
| Interrompa todas as dependências do Oracle. | Interrompa todas as dependências do Oracle, desligue os receptores no banco de dados Oracle e execute **ALTER SYSTEM SWITCH LOGFILE**. Interrompa a tarefa do AWS DMS quando ele não mostrar nenhuma atividade. | DBA | 
| Execute os scripts de pós-migração do AWS SCT. | No Amazon RDS para PostgreSQL, execute os seguintes scripts gerados pelo AWS SCT:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/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 | 
| Conclua etapas adicionais do Amazon RDS para PostgreSQL. | Incremente as sequências para corresponder ao Oracle, se necessário; execute **VACUUM** e **ANALYZE** e tire um instantâneo para fins de conformidade. | DBA | 
| Escolha conectar ao Amazon RDS para PostgreSQL. | Remova os grupos de segurança do AWS DMS do Amazon RDS para PostgreSQL, adicione grupos de segurança de produção e direcione seus aplicativos para o novo banco de dados. | DBA | 
| Limpe objetos do AWS DMS. | Remova os endpoints, as tarefas de replicação, as instâncias de replicação e a instância. EC2  | SysAdmin, DBA | 

## Recursos relacionados
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-resources"></a>
+ [Documentação do AWS DMS](https://docs.aws.amazon.com/dms/)
+ [Documentação do AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Preço do Amazon RDS para PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/) 