Converter o tipo de dados VARCHAR2(1) para Oracle em tipo de dados booleano para Amazon Aurora PostgreSQL - 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á.

Converter o tipo de dados VARCHAR2(1) para Oracle em tipo de dados booleano para Amazon Aurora PostgreSQL

Criado por Naresh Damera (AWS)

Ambiente: PoC ou piloto

Origem: Oracle

Destino: Amazon Aurora PostgreSQL

Tipo R: redefinir arquitetura

Workload: Oracle

Tecnologias: migração DevelopmentAndTesting; armazenamento e backup; bancos de dados

Serviços da AWS: Amazon Aurora; Amazon AWS DMS; Amazon RDS; AWS SCT

Resumo

Durante uma migração do Amazon Relational Database Service (Amazon RDS) para Oracle para o Amazon Aurora Edição Compatível com PostgreSQL, você pode encontrar uma incompatibilidade de dados ao validar a migração no Amazon Web Services (AWS) Database Migration Service (AWS DMS). Para evitar essa incompatibilidade, você pode converter o tipo de dados VARCHAR2(1) em tipo de dados booleano.

O tipo de dados VARCHAR2 armazena strings de texto de tamanho variável e VARCHAR2(1) indica que a string tem 1 caractere de comprimento ou 1 byte. Para obter mais informações sobre VARCHAR2, consulte Tipos de dados integrados da Oracle (documentação da Oracle).

Neste padrão, na coluna da tabela de dados de origem de amostra, os dados VARCHAR2(1) são Y para Sim ou N para Não.  Este padrão inclui instruções para usar o AWS DMS e o AWS Schema Conversion Tool (AWS SCT) para converter esse tipo de dados dos valores Y e N em VARCHAR2(1) em valores verdadeiros ou falsos em booleano.

Público-alvo

Este padrão é recomendado para quem tem experiência na migração de bancos de dados Oracle para o Aurora PostgreSQL-Compatible usando o AWS DMS. Ao concluir a migração, siga as recomendações em Conversão do Oracle em Amazon RDS para PostgreSQL ou Amazon Aurora PostgreSQL (documentação do AWS SCT).

Pré-requisitos e limitações

Pré-requisitos

Versões do produto

Arquitetura

Pilha de tecnologia de origem

Instância de banco de dados do Amazon RDS para Oracle

Pilha de tecnologias de destino

Instância de banco de dados Amazon Aurora PostgreSQL-Compatible

Arquitetura de origem e destino

Alteração dos tipos de dados de VARCHAR2(1) para booleano

Ferramentas

Serviços da AWS

Outros serviços

  • O Oracle SQL Developer é 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. Nesse padrão, você usa essa ferramenta para se conectar à instância do banco de dados Amazon RDS para Oracle e consultar os dados.

  • 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. Neste padrão, você usa essa ferramenta para se conectar à instância do banco de dados Aurora e consulta os dados.

Épicos

TarefaDescriçãoHabilidades necessárias

Crie um relatório de migração do banco de dados.

  1. No AWS SCT, criar um relatório de avaliação de migração do banco de dados. Para obter mais informações, consulte Criação de relatórios de avaliação da migração.

  2. Revise e execute as ações indicadas no relatório de avaliação da migração. Para obter mais, consulte o https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.ActionItems.htmlÍtens de ação do relatório de avaliação.

DBA, Desenvolvedor

Elimine restrições de chave externa no banco de dados de destino.

No PostgreSQL, as chaves estrangeiras são implementadas usando gatilhos. Durante a fase de Carregamento total, o AWS DMS carrega uma tabela por vez. Recomendamos que você desative as restrições de chave externa durante um carregamento total, usando um dos seguintes métodos:

  • Desative temporariamente todos os triggers da instância e conclua o carregamento total.

  • Use o parâmetro session_replication_role no PostgreSQL.

Se não for possível desativar as restrições de chaves estrangeiras, crie uma tarefa de migração do AWS DMS para os dados primários que seja específica para a tabela principal e a tabela secundária.

DBA, Desenvolvedor

Coloque chaves primárias e chaves exclusivas no banco de dados de destino.

Usando os comandos a seguir, desative as chaves primárias e as restrições no banco de dados de destino. Isso ajuda a melhorar o desempenho da tarefa de carregamento inicial.

ALTER TABLE <table> DISABLE PRIMARY KEY;
ALTER TABLE <table> DISABLE CONSTRAINT <constraint_name>;
DBA, Desenvolvedor

Crie a tarefa de carregamento inicial.

Crie uma tarefa de migração para a carga inicial no AWS DMS. Para obter instruções, consulte Criação de uma tarefa. Para método de migração, escolha Migrar dados existentes. Esse método de migração é chamado Full Load na API. Não inicie essa tarefa ainda.

DBA, Desenvolvedor

Edite as configurações da tarefa de carregamento inicial.

Edite as configurações da tarefa para adicionar a validação de dados. Essas configurações de validação devem ser criadas em um arquivo JSON. Para obter instruções e exemplos, consulte Especificação das configurações da tarefa. Adicione as seguintes validações:

  • Para validar se os dados VARCHAR2(1) foram convertidos com precisão em booleanos no banco de dados de destino, adicione o código no Script de validação de dados na seção Informações adicionais deste padrão. O script de validação converte os valores booleanos de 1 para Y e de 0 para N na tabela de destino e, em seguida, compara os valores na tabela de destino com a tabela de origem.

Para validar o restante da migração de dados, habilite a validação de dados na tarefa. Para obter mais informações, consulte Configuração da tarefa de validação de dados.

Administrador da AWS, DBA

Criar uma tarefa de replicação contínua.

No AWS DMS, crie a tarefa de migração que mantém o banco de dados de destino sincronizado com o banco de dados de origem. Para obter instruções, consulte Criação de uma tarefa. Em método de migração, escolha Replicar somente alterações de dados. Não inicie essa tarefa ainda.

DBA
TarefaDescriçãoHabilidades necessárias

Crie dados de amostra para testes.

No banco de dados de origem, crie uma tabela de amostra com dados para fins de teste.

Desenvolvedor

Confirme se não há atividades conflitantes.

Use pg_stat_activity para verificar se há alguma atividade no servidor que possa afetar a migração. Para obter mais informações, consulte Coletor de estatísticas (documentação do PostgreSQL).

Administrador da AWS

Inicie a tarefa de migração do AWS DMS.

No console do AWS DMS, na página Painel, comece o carregamento inicial e as tarefas de replicação contínua que você criou no tópico anterior.

Administrador da AWS

Monitore as tarefas e os estados de carregamento da tabela.

Durante a migração, monitore o status da tarefa e os estados da tabela. Quando a tarefa de carregamento inicial estiver concluída, na guia Estatísticas da tabela:

  • O Estado de carregamento deve ser Tabela concluída.

  • O Estado de validação deve ser Validado.

Administrador da AWS

Verifique os resultados da migração.

Usando pgAdmin, consulte a tabela no banco de dados de destino. Uma consulta bem-sucedida indica que os dados foram migrados com êxito.

Desenvolvedor

Adicione as chaves primárias e estrangeiras ao banco de dados de destino.

Crie as chaves primárias e estrangeiras ao banco de dados de destino. Para obter mais informações, consulte ALTER TABLE (site do PostgreSQL).

DBA

Limpe os dados do teste.

Nos bancos de dados de origem e destino, limpe os dados que foram criados para teste de unidade.

Desenvolvedor
TarefaDescriçãoHabilidades necessárias

Concluir a migração.

Repita o tópico anterior, Testar as tarefas de migração, usando os dados de origem reais. Essa ação migra os dados do banco de dados de origem para o banco de dados de destino.

Desenvolvedor

Valide se os bancos de dados de origem e de destino estão em sincronia.

Valide se os bancos de dados de origem e de destino estão em sincronia. Para obter mais informações e instruções, consulte Validação de dados do AWS DMS.

Desenvolvedor

Interrompa o banco de dados de origem.

Interrompa o banco de dados Amazon RDS para Oracle. Para instruções, consulte Interrupção temporária de uma instância de banco de dados do Amazon RDS. Quando você interrompe o banco de dados de origem, a carga inicial e as tarefas de replicação contínua no AWS DMS são automaticamente interrompidas. Nenhuma ação adicional é necessária para interromper essas tarefas.

Desenvolvedor

Recursos relacionados

Referências da AWS

Outras referências

Tutoriais e vídeos

Mais informações

Script de validação de dados

O script de validação de dados a seguir converte 1 em Y e 0 em N. Isso ajuda a tarefa do AWS DMS a ser concluída e aprovada com sucesso na validação da tabela.

{ "rule-type": "validation", "rule-id": "5", "rule-name": "5", "rule-target": "column", "object-locator": { "schema-name": "ADMIN", "table-name": "TEMP_CHRA_BOOL", "column-name": "GRADE" }, "rule-action": "override-validation-function", "target-function": "case grade when '1' then 'Y' else 'N' end"         }

A instrução case no script executa a validação. Se a validação falhar, o AWS DMS insere um registro na tabela public.awsdms_validation_failures_v1 na instância do banco de dados de destino. Esse registro inclui o nome da tabela, o horário do erro e detalhes sobre os valores incompatíveis nas tabelas de origem e de destino.

Se você não adicionar esse script de validação de dados à tarefa do AWS DMS e os dados forem inseridos na tabela de destino, a tarefa do AWS DMS mostrará o estado de validação como Registros incompatíveis.

Durante a conversão do AWS SCT, a tarefa de migração do AWS DMS altera o tipo de dados de VARCHAR2(1) para booleano e adiciona uma restrição de chave primária na coluna "NO".