Migre o Amazon RDS para Oracle para o Amazon RDS para PostgreSQL no modo SSL usando o AWS DMS - Recomendações da AWS

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 para Oracle para o Amazon RDS para PostgreSQL no modo SSL usando o AWS DMS

Criado por Pinesh Singal (AWS)

Ambiente: PoC ou piloto

Origem: Amazon RDS para Oracle

Destino: Amazon RDS PostgreSQL

Tipo R: redefinir arquitetura

Workload: Oracle; código aberto

Tecnologias: migração, segurança, identidade, conformidade, bancos de dados

Serviços da AWS: AWS DMS; Amazon RDS

Resumo

Este padrão fornece orientação para migração de uma instância do banco de dados Amazon Relational Database Service (Amazon RDS) para Oracle para um banco de dados do Amazon RDS para PostgreSQL na nuvem da Amazon Web Services (AWS). Para criptografar conexões entre os bancos de dados, o padrão usa autoridade de certificação (CA) e modo SSL no Amazon RDS e no AWS Database Migration Service (AWS DMS).

O padrão descreve uma estratégia de migração on-line com pouco ou nenhum tempo de inatividade para um banco de dados de origem Oracle de vários terabytes com um grande número de transações. Visando à segurança dos dados, o padrão usa SSL ao transferir os dados.

Esse padrão usa o AWS Schema Conversion Tool (AWS SCT) para converter o esquema de banco de dados Amazon RDS para Oracle em um esquema do Amazon RDS para PostgreSQL. Em seguida, o padrão usa o AWS DMS para migrar dados do banco de dados Amazon RDS para Oracle para o banco de dados Amazon RDS para PostgreSQL.

Pré-requisitos e limitações

Pré-requisitos

  • Uma conta AWS ativa 

  • Autoridade de certificação (CA) do banco de dados Amazon RDS configurada somente com rds-ca-2019 (o certificado rds-ca-2015 expirou em 5 de março de 2020)

  • AWS SCT

  • AWS DMS

  • pgAdmin

  • Ferramentas SQL (por exemplo, SQL Developer ou SQL*Plus)

Limitações

  • Banco de dados Amazon RDS para Oracle – O requisito mínimo é para as versões 19c da Oracle para as edições Enterprise e Standard Two.

  • Banco de dados Amazon RDS para PostgreSQL – O requisito mínimo é para o PostgreSQL versão 12 e posterior (para versões 9.x e posteriores).

Versões do produto

  • Instância do banco de dados Amazon RDS para Oracle versão 12.1.0.2

  • Instância do banco de dados Amazon RDS para PostgreSQL versão 11.5

Arquitetura

Pilha de tecnologia de origem

  • Instância de banco de dados Amazon RDS para Oracle versão 12.1.0.2.v18.

Pilha de tecnologias de destino

  • AWS DMS

  • Instância de banco de dados Amazon RDS para PostgreSQL versão 11.5.

Arquitetura de destino

O diagrama a seguir mostra a arquitetura da arquitetura de migração de dados entre os bancos de dados Oracle (origem) e PostgreSQL (destino). A arquitetura inclui o seguinte:

  • Uma nuvem privada virtual (VPC)

  • Uma zona de disponibilidade

  • Uma sub-rede privada

  • Um banco de dados Amazon RDS para Oracle

  • Uma instância de replicação do AWS DMS

  • Um banco de dados RDS para PostgreSQL

Para criptografar conexões para bancos de dados de origem e destino, os modos CA e SSL devem estar habilitados no Amazon RDS e no AWS DMS.

Em uma sub-rede privada, os dados se movem entre o Amazon RDS para Oracle e o AWS DMS, bem como entre o AWS DMS e o Amazon RDS para PostgreSQL.

Ferramentas

Serviços da AWS

Outros serviços

  • O pgAdmin é uma ferramenta de gerenciamento de código aberto para PostgreSQL. Ele fornece uma interface gráfica que ajuda você a criar, manter e usar objetos de banco de dados.

Épicos

TarefaDescriçãoHabilidades necessárias

Crie a instância do banco de dados Oracle.

Faça login em sua conta AWS, abra o Console de Gerenciamento da AWS e navegue até o console do Amazon RDS. No console, escolha Criar banco de dados e, em seguida, Oracle.

AWS, DBA geral

Configurar grupos de segurança.

Configurar grupos de segurança: regras de entrada e saída.

AWS Geral

Crie um grupo de opções.

Crie um grupo de opções na mesma VPC e no mesmo grupo de segurança do banco de dados Amazon RDS para Oracle. Em Opção, escolha SSL. Em Porta, escolha 2484 (para conexões SSL).

AWS Geral

Defina as configurações da opção.

Use as seguintes configurações:

  • SQLNET.CIPHER_SUITE: SSL_RSA_WITH_AES_256_CBC_SHA

  • SQLNET.SSL_VERSION: 1.2 or 1.0

AWS Geral

Modifique a instância do banco de dados RDS para Oracle.

Defina o certificado CA como rds-ca-2019. Em Grupo de opções, anexe o grupo de opções criado anteriormente.

AWS, DBA geral

Confirme se a instância do banco de dados RDS para Oracle está disponível.

Certifique-se de que a instância do banco de dados Amazon RDS para Oracle esteja em execução e que o esquema do banco de dados esteja acessível.

Para se conectar ao banco de dados RDS para Oracle, use o comando sqlplus da linha de comando.

$ sqlplus orcl/****@myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com:1521/ORCL SQL*Plus: Release 12.1.0.2.0 Production on Tue Oct 15 18:11:07 2019 Copyright (c) 1982, 2016, Oracle. All rights reserved. Last Successful login time: Mon Dec 16 2019 23:17:31 +05:30 Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL>
DBA

Crie objetos e dados no banco de dados RDS para Oracle.

Crie objetos e insira dados no esquema.

DBA
TarefaDescriçãoHabilidades necessárias

Crie o banco de dados RDS para PostgreSQL.

Na página Criar banco de dados do console do Amazon RDS, escolha PostgreSQL para criar uma instância do banco de dados Amazon RDS para PostgreSQL.

AWS, DBA geral

Configurar grupos de segurança.

Configurar grupos de segurança: regras de entrada e saída.

AWS Geral

Criar um grupo de parâmetros.

Se você estiver usando a versão 11.x do PostgreSQL, crie um grupo de parâmetros para definir os parâmetros SSL. Na versão 12 do PostgreSQL, o grupo de parâmetros SSL é ativado por padrão.

AWS Geral

Edite os parâmetros.

Altere o parâmetro rds.force_ssl para 1 (ativado).

Por padrão, o parâmetro ssl é 1 (ativado). Ao definir o parâmetro rds.force_ssl como 1, você força todas as conexões a se conectarem somente pelo modo SSL.

AWS Geral

Modifique a instância de banco de dados do RDS para PostgreSQL.

Defina o certificado CA como rds-ca-2019. Anexe o grupo de parâmetros padrão ou o grupo de parâmetros criado anteriormente, dependendo da sua versão do PostgreSQL.

AWS, DBA geral

Confirme se a instância do banco de dados RDS para Oracle está disponível.

Certifique-se de que o banco de dados Amazon RDS para PostgreSQL esteja em execução.

O comando psql estabelece uma conexão SSL com sslmode definido na linha de comando.

Uma opção é definir sslmode=1 no grupo de parâmetros e usar uma conexão psql sem incluir o parâmetro sslmode no comando.

O resultado a seguir mostra que a conexão SSL foi estabelecida.

$ psql -h mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com -p 5432 "dbname=pgdb user=pguser" Password for user pguser: psql (11.3, server 11.5) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. pgdb=>

Uma segunda opção é definir sslmode=1 no grupo de parâmetros e incluir o parâmetro sslmode no comando psql.

O resultado a seguir mostra que a conexão SSL foi estabelecida.

$ psql -h mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com -p 5432 "dbname=pgdb user=pguser sslmode=require" Password for user pguser: psql (11.3, server 11.5) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. pgdb=>
DBA
TarefaDescriçãoHabilidades necessárias

Instale a AWS SCT.

Instale a versão mais recente do aplicativo AWS SCT.

AWS Geral

Configure o AWS SCT com drivers JDBC.

Baixe os drivers Java Database Connectivity (JDBC) para Oracle (ojdbc8.jar) e PostgreSQL (postgresql-42.2.5.jar).

Para configurar os drivers no AWS SCT, escolha Configurações, Configurações globais e Drivers.

AWS Geral

Crie um projeto AWS SCT.

Crie o projeto e o relatório do AWS SCT usando o Oracle como o mecanismo de banco de dados de origem e o Amazon RDS para PostgreSQL como o mecanismo de banco de dados de destino:

  1. Teste as conexões com o banco de dados Oracle de origem e o banco de dados Amazon RDS para PostgreSQL de destino fornecendo detalhes da conexão.

    Para o banco de dados Oracle de origem, as permissões ou os privilégios a seguir são necessários:

    • CONNECT

    • SELECT_CATALOG_ROLE

    • SELECT ANY DICTIONARY

    • SELECT on SYS.USER$ TO <sct_user>

    Para obter mais informações, consulte Uso de um banco de dados Oracle como para AWS SCT.

    As conexões de origem e de destino devem ser bem-sucedidas antes que o AWS SCT possa iniciar o relatório de migração.

  2. Depois do relatório, insira o esquema a ser convertido e escolha Finalizar.

AWS Geral

Valide objetos do banco de dados.

  1. Escolha Carregar esquema.

    O AWS SCT exibe os objetos da origem e do destino convertidos, incluindo objetos com erros. Atualize os objetos incorretos no banco de dados de destino.

  2. Analise os erros e elimine-os por meio de intervenção manual.

  3. Depois que todos os erros forem eliminados, escolha Carregar esquema novamente.

  4. Escolha Aplicar ao banco de dados.

  5. Conecte-se ao pgAdmin ou a qualquer ferramenta que ofereça suporte a uma conexão do banco de dados PostgreSQL e verifique o esquema e os objetos.

AWS, DBA geral
TarefaDescriçãoHabilidades necessárias

Criação de uma instância de replicação.

  1. Faça login em sua conta, abra o Console de Gerenciamento da AWS e navegue até o console do Amazon DMS.

  2. Crie uma instância de replicação com configurações válidas para VPC, grupo de segurança, zona de disponibilidade e atributos extras de conexão.

AWS Geral

Importar o certificado CA.

  1. Baixe o certificado rds-ca-2019-root.pem.

  2. Na página Certificados, importe o certificado como rds-ca-2019-root.

AWS Geral

Crie um endpoint de origem.

  1. Crie um endpoint de origem para o Amazon RDS para Oracle escolhendo Selecionar instância do banco de dados RDS e, em seguida, selecionando a instância do banco de dados RDS para Oracle que você criou. Os detalhes da configuração do endpoint serão preenchidos automaticamente.

  2. Escolha Fornecer informações de acesso manualmente. Em Porta, certifique-se de inserir 2484.

  3. No modo Secure Socket Layer (SSL), escolha verificar CA, e, em seguida, escolha o certificado CA que você criou anteriormente.

  4. Em Configurações do endpoint, adicione o atributo NumberDataTypeScale=-2 de conexão extra para fornecer suporte ao tipo de dados NUMBER sem restrição de tamanho.

Para obter mais informações, consulte Uso de um banco de dados do Oracle como origem do AWS Database Migration Service.

AWS Geral

Crie um endpoint de destino.

  1. Crie um endpoint de destino para o Amazon RDS para PostgreSQL escolhendo Selecionar instância do banco de dados RDS e, em seguida, selecionando a instância do banco de dados RDS para PostgreSQL. Os detalhes da configuração do endpoint serão preenchidos automaticamente.

  2. Escolha Fornecer informações de acesso manualmente. Em Porta, certifique-se de inserir 2484.

Para obter mais informações, consulte Uso de um banco de dados do PostgreSQL como destino do AWS Database Migration Service.

AWS Geral

Testar os endpoints.

  1. Teste os endpoints de origem e de destino para confirmar se ambos foram bem-sucedidos e estão disponíveis.

  2. Se um teste falhar, verifique se as regras de entrada do grupo de segurança são válidas.

AWS Geral

Criar uma tarefa de migração.

Para criar uma tarefa de migração para carga total e captura de dados de alteração (CDC) ou para validação de dados, faça o seguinte:

  1. Para criar uma tarefa de migração de banco de dados, escolha a instância de replicação, o endpoint do banco de dados de origem e o endpoint do banco de dados de destino. Especifique o tipo de migração como uma das seguintes opções:

    • Migrar dados existentes (carga total)

    • Replicação somente de alterações de dados (CDC)

    • Migração de dados existentes e replicação de alterações contínuas (carga total e CDC)

  2. Em Mapeamentos de tabela, você pode configurar regras de seleção e de transformação nos formatos GUI ou JSON:

    • Em Regras de seleção, selecione o esquema, insira o nome da tabela e selecione a ação (incluir ou excluir) a ser configurada; por exemplo, Esquema ORCL, Nome da tabela %, Inclusão da ação.

    • Em Regras de transformação, siga um destes procedimentos:

      • Selecione o esquema e escolha a ação (minúscula/maiúscula, prefixo, sufixo); por exemplo, Esquema de destino ORCL, Ação fazer minúscula.

      • Selecione o esquema, insira o nome da tabela e escolha a ação (minúscula/maiúscula, prefixo, sufixo); por exemplo, Esquema de destino ORCL, Tabela %, Ação fazer minúscula.

  3. Ative o monitoramento do Amazon CloudWatch Logs.

  4. Para as regras de mapeamento, adicione o código JSON a seguir.

    { "rules": [ { "rule-type": "transformation", "rule-id": "1", "rule-name": "1", "rule-target": "table", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "convert-lowercase", "value": null, "old-value": null }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-target": "schema", "object-locator": { "schema-name": "ORCL", "table-name": "%" }, "rule-action": "convert-lowercase", "value": null, "old-value": null }, { "rule-type": "selection", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "ORCL", "table-name": "DEPT" }, "rule-action": "include", "filters": [] } ] }
AWS Geral

Planeje a execução da produção.

Confirme o tempo de inatividade com as partes interessadas, como proprietários de aplicativos, para executar o AWS DMS em sistemas de produção.

Líder de migração

Pare a tarefa de migração.

  1. Inicie a tarefa do AWS DMS que tem o status Pronto e monitore os registros da tarefa de migração na Amazon em CloudWatch busca de erros.

    Se você escolheu Migrar dados existentes e replicar alterações contínuas como o tipo de migração e o status for Carga completa, replicação contínua, a carga total com a migração de dados da CDC será concluída e a validação é contínua.

  2. Depois de iniciar a migração, você pode obter informações adicionais sobre a conexão SSL em. CloudWatch Para Oracle, CloudWatch mostra a seguinte cadeia de conexão.

    2019-12-17T09:15:11 [SOURCE_UNLOAD ]I: Connecting to Oracle: Beginning session (oracle_endpoint_conn.c:834)

    A string de conexão PostgreSQL será semelhante ao exemplo a seguir.

    2019-12-17T09:15:11 [TARGET_LOAD ]I: Going to connect to ODBC connection string: PROTOCOL=7.4-0;DRIVER={PostgreSQL};SERVER=mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com;DATABASE=pgdb;PORT=5432;sslmode=require;UID=pguser; (odbc_endpoint_imp.c:2218)

AWS Geral

Valide os dados.

Analise os resultados e os dados da tarefa de migração nos bancos de dados Oracle de origem e PostgreSQL de destino:

  1. Conecte-se ao pgAdmin e verifique os dados em seu banco de dados PostgreSQL com o esquema ORCL.

  2. Para a CDC, verifique as alterações contínuas inserindo ou atualizando dados no banco de dados Oracle de origem.

DBA

Pare a tarefa de migração.

Depois de concluir com êxito a validação dos dados, interrompa a tarefa de migração.

AWS Geral
TarefaDescriçãoHabilidades necessárias

Exclua as tarefas do AWS DMS.

  1. No console do AWS DMS, navegue até Tarefas de migração do banco de dados e interrompa qualquer tarefa do AWS DMS em andamento ou em execução.

  2. Selecione as tarefas, escolha Ações e escolha Excluir.

AWS Geral

Exclua os endpoints do AWS DMS.

Selecione os endpoints de origem e de destino que você criou, escolha Ações e, em seguida, Excluir.

AWS Geral

Exclua a instância de replicação do AWS DMS.

Escolha a instância de replicação, Ações e, em seguida, escolha Excluir.

AWS Geral

Exclua o banco de dados PostgreSQL.

  1. No console do Amazon RDS, escolha Bancos de dados.

  2. Selecione a instância do banco de dados PostgreSQL que você criou, escolha Ações e, em seguida, Excluir.

AWS Geral

Exclua o banco de dados Oracle.

No console do Amazon RDS, selecione a instância do banco de dados Oracle, escolha Ações e, em seguida, Excluir.

AWS Geral

Solução de problemas

ProblemaSolução

As conexões de teste de origem e de destino do AWS SCT estão falhando.

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 do endpoint de origem Oracle falha.

Verifique as configurações do endpoint e se a instância de replicação está disponível.

A execução de carga total da tarefa do AWS DMS falha.

Verifique se os bancos de dados de origem e de destino têm tipos e tamanhos de dados correspondentes.

A tarefa de migração de validação do AWS DMS retorna erros.

  1. Verifique se a tabela tem uma chave primária. Tabelas sem chave primária não são validadas.

  2. Se a tabela tiver uma chave primária, mas retornar erros, verifique o atributo de conexão extra no endpoint de origem. O atributo de conexão extra deve ter numberDataTypeScale=-2 para fornecer suporte dinamicamente ao tipo de dados NUMBER sem restrição de tamanho, com base nos dados disponíveis na tabela.

Recursos relacionados

Bancos de dados

Conexões de bancos de dados SSL

AWS SCT

AWS DMS

Anexos

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip