Migrando o Amazon Redshift para o Autonomous Database

O Assistente de Migração do SQL Developer Amazon Redshift, disponível com o SQL Developer 18.3 e versões mais recentes, fornece um framework para fácil migração de ambientes Amazon Redshift por esquema.

Esta seção descreve as etapas e o workflow para uma migração on-line do Amazon Redshift e para a geração de scripts de uma migração programada e manual que você executa posteriormente.

Visão Geral da Migração do Autonomous Database Redshift

Usando o SQL Developer, você pode migrar arquivos de banco de dados do Amazon Redshift para o Autonomous Database.

  • Capturar: Captura esquemas e tabelas de Metadados do banco de dados de origem e armazena no Repositório de Migração.

  • Converter: Os tipos de dados Redshift são mapeados para tipos de dados Oracle. Os nomes de Objeto Redshift são convertidos em nomes Oracle baseados na Convenção de Nomeação da Oracle. Os Padrões de Coluna que usam funções Redshift são substituídos por seus equivalentes Oracle.

  • Gerar: Gere esquemas e DDLs com base nos metadados convertidos.

  • Disponibilizar: Implante os esquemas e DDLs gerados.

  • Copiar Dados: Faça upload de tabelas do Redshift para o Amazon Storage S3 e copie dados do Amazon Storage para tabelas do Autonomous Database (em esquemas) implantadas anteriormente.

Estabelecer conexão com o Amazon Redshift

Usando o SQL Developer, você pode migrar Esquemas e Tabelas do banco de dados do Amazon Redshift para o Autonomous Database. Para extrair metadados e dados do Amazon Redshift para uma migração, conecte-se ao Amazon Redshift com o SQL Developer.

Fazer download do driver JDBC do Amazon Redshift e adicionar o driver de terceiros

  1. Faça download de um driver JDBC do Amazon Redshift para acessá-lo. Consulte a documentação do Amazon Redshift para saber o local do driver JDBC mais recente. Para obter mais informações, consulte Configurar uma Conexão JDBC.

    Observação

    Use o driver compatível com JDBC 4.2 do Amazon Redshift.
  2. Armazenar o driver JDBC do Amazon Redshift em um diretório local no qual o SQL Developer possa acessar o driver JDBC do Amazon Redshift.

  3. Adicione o driver JDBC do Amazon Redshift como terceiro ao SQL Developer antes de estabelecer uma conexão. No SQL Developer, vá para Ferramentas > Preferências > Banco de Dados > Drivers JDBC de Terceiros (no Mac, é Oracle SQL Developer > Drivers JDBC de Terceiros).

  4. Clique em Adicionar Entrada e selecione o caminho para o Driver JDBC do Amazon Redshift que você baixou.


    Veja a seguir a descrição da ilustração dwcs_aws_migration_jdbc_add1.png
    Descrição da ilustração dwcs_aws_migration_jdbc_add1.png
  5. Clique em OK para adicionar o driver JDBC do Amazon Redshift que você baixou.


Veja a seguir a descrição da ilustração dwcs_aws_migration_jdbc_add2.png
Descrição da ilustração dwcs_aws_migration_jdbc_add2.png

Adicionar Conexão ao Banco de Dados Amazon Redshift

Conecte-se ao banco de dados Amazon Redshift.

  1. No painel Conexões, clique com o botão direito do mouse em Conexões e selecione Nova Conexão....

  2. Selecione a guia Amazon Redshift e digite as informações de conexão do Amazon Redshift.

    Se você estiver planejando migrar vários esquemas, é recomendável conectar-se com o nome de usuário Principal ao seu sistema Amazon Redshift.


    Veja a seguir a descrição da ilustração adw_migrate_aws_connect1.png
    Descrição da ilustração adw_migrate_aws_connect1.png

Teste a conexão antes de salvá-la.

Informações adicionais para Autenticação e Controle de Acesso da Amazon

Estabelecer Conexão com o Autonomous Database

Usando o SQL Developer, você cria uma conexão com o Autonomous Database

Obtenha o arquivo zip da wallet de credenciais do cliente. Para obter mais informações, consulte Fazer Download das Credenciais do Cliente (Wallets).
  1. No painel Conexões, clique com o botão direito do mouse em Conexões e selecione Nova Conexão....
  2. Selecione a guia Oracle e especifique as informações de conexão do Autonomous Database.
  3. Para a conexão de Migração do AWS Redshift, selecione a conexão _low com seu banco de dados.

    Para obter mais informações, consulte Nomes de Serviço de Banco de Dados do Autonomous Database para obter mais informações.

  4. Adicione uma conexão ao Autonomous Database.


    Veja a seguir a descrição da ilustração adb_connect_sqldev_17.4.png
    Descrição da ilustração adb_connect_sqldev_17.4.png

    Consulte Conectar o Oracle SQL Developer a uma Wallet para obter mais informações.

    Teste a conexão antes de salvá-la.

Iniciar o Assistente de Migração da Nuvem

Chame o Assistente de Migração da Nuvem no menu Ferramentas do SQL Developer para iniciar a migração do Amazon Redshift para o Autonomous Database.

O assistente de Migração da Nuvem é iniciado quando você clica em Migrações da Nuvem em Migração no menu Ferramentas. O assistente de Migrações da Nuvem permite migrar esquemas, objetos (tabelas) e dados de um banco de dados do Amazon Redshift para o Autonomous Database.

O Assistente de Migração da Nuvem é um conjunto de etapas fácil. O Assistente de Migração da Nuvem orienta você nos seguintes procedimentos:

  • Identifique os esquemas no banco de dados do Amazon Redshift que você deseja migrar.

  • Identifique o Autonomous Database de destino.

  • Defina se você deseja migrar os metadados (DDL) e/ou os dados.

  • Escolha migrar o sistema on-line e/ou gerar scripts.

Identificar o Banco de Dados do Amazon Redshift

Identifique os esquemas no banco de dados do Amazon Redshift a serem migrados. Todos os objetos, principalmente as tabelas, no esquema serão migrados. A migração para o Autonomous Database é feita por esquema. Os esquemas não podem ser renomeados como parte da migração.

  1. Na Migração do AWS Redshift, especifique a Conexão.


    Veja a seguir a descrição da ilustração adw_migrate_redshift_step1of3.png
    Descrição da ilustração adw_migrate_redshift_step1of3.png
  • Conexão: Nome da conexão do banco de dados do Redshift.

  • Esquemas Disponíveis: Esquemas disponíveis para a conexão específica.

  • Programas Selecionados: Clique no ícone Adicionar para selecionar os esquemas que você deseja migrar entre os Programas Disponíveis.

  • Incluir Dados: DDL e DATA migram os esquemas e dados selecionados.

Ao migrar dados, forneça a chave de acesso da AWS, a Chave de Acesso Secreta da AWS e um URI do bucket S3 existente no qual os dados do Redshift serão descarregados e preparados. As credenciais de segurança exigem determinados privilégios para armazenar dados em S3. É recomendável criar novas chaves de acesso separadas para a migração. A mesma chave de acesso é usada mais tarde para carregar os dados no Autonomous Database usando solicitações REST seguras.

Formato de URI do Bucket do Amazon S3

Para os arquivos de origem que residem no Amazon S3, consulte a seguir uma descrição do formato do URI para acessar seus arquivos: Acessando um Bucket. Por exemplo, o exemplo a seguir se refere à pasta de arquivos 'folder_name' no bucket adwc da região us-west-2.

https://s3-us-west-2.amazonaws.com/adwc/folder_name

S3 Exemplo 1 de Configuração do Bucket

Se você fornecer o seguinte URI do Bucket do S3:

https://s3-us-west-2.amazonaws.com/my_bucket

O assistente verifica todo o caminho, incluindo my_bucket. Será feita uma tentativa de gravar um arquivo de teste; se ele não estiver acessível, haverá um prompt. No caso de my_bucket não existir, um erro será reportado:

Validation Failed

Em seguida, a geração de código cria o seguinte caminho para a função DBMS_CLOUD.COPY_DATA:

file_uri_list => "https://s3-us-west-2.amazonaws.com/my_bucket/oracle_schema_name/oracle_table_name/*.gz"

O assistente de migração cria estas pastas: oracle_schema_name/oracle_table_name dentro do bucket: my_bucket.

Exemplo 2 de Bucket do S3

Se você fornecer o seguinte URI do Bucket do S3:

https://s3-us-west-2.amazonaws.com/my_bucket/another_folder

O assistente verifica todo o caminho, incluindo my_bucket. Será feita uma tentativa de gravar um arquivo de teste; se ele não estiver acessível, haverá um prompt. No caso de my_bucket não existir, um erro será reportado:

Validation Failed

Nesse caso, o another_folder não precisa existir. A migração cria o bucket another_folder dentro de my_bucket.

Em seguida, a geração de código cria o seguinte caminho para a função DBMS_CLOUD.COPY_DATA:

file_uri_list => ‘https://s3-us-west-2.amazonaws.com/my_bucket/another_folder/oracle_schema_name/oracle_table_name/*.gz

Etapa 2 de 3: Autonomous Data Warehouse Cloud

Primeiro criar uma conexão para o seu Autonomous Database de destino Consulte Estabelecer Conexão com o Autonomous Database. O usuário dessa conexão deve ter os privilégios administrativos; a conexão é usada em toda a migração para criar esquemas e objetos.

Observação

Use o usuário ADMIN ou um usuário com atribuição de administrador.

O Assistente de Migração do Amazon Redshift permite que você faça uma migração on-line imediatamente, gere todos os scripts necessários para uma migração ou ambos. Se optar por armazenar os scripts em um diretório local, especifique o diretório local (deve ser gravável pelo usuário).

  • Conexão: Nome da conexão do Autonomous Data Warehouse Cloud. Crie uma conexão para o Autonomous Database, se necessário. O usuário deve ter privilégios administrativos, pois essa conexão é usada em toda a migração para criar esquemas e objetos.

  • Senha do Repositório de Migração: instalada no Autonomous Database como parte da migração de esquemas. Use a senha pré-preenchida ou digite uma nova senha.

  • Remover repositório em caso de migração bem-sucedida: Selecione essa opção para remover o repositório após a conclusão da migração. O repositório não é necessário após a migração.

  • Migrar Agora: Selecione essa opção para executar uma migração on-line imediatamente.

    Observação

    • Se a opção Incluir Dados da Etapa 1 e Migrar Agora estiverem desmarcadas, você optará pela apenas geração de todos os Scripts SQL obrigatórios para migração manual.

    • Se a opção Incluir Dados da Etapa 1 estiver desmarcada e a opção Migrar Agora estiver marcada, todos os esquemas selecionados e suas tabelas serão implantados no Autonomous Database, mas os dados não serão carregados nas tabelas.

    • Se Incluir Dados da Etapa 1 e Migrar Agora estiverem selecionados, todos os esquemas selecionados e suas tabelas serão implantados no Autonomous Database e os dados serão carregados nas tabelas.

  • Diretório: Especifique o diretório para armazenar os scripts gerados necessários para a migração; isso salva os scripts em um diretório local.

Definições Avançadas (Opcional)

As definições padrão deverão funcionar, a menos que você queira controlar as opções de formato ao Descarregar para o armazenamento S3 ou Copiar do armazenamento S3 para o Autonomous Database. Para obter mais informações sobre Opções de Formato, consulte DBMS_CLOUD Opções de Formato do Pacote. Para usar opções avançadas, clique em Definições Avançadas.

Diretório de Saída: Digite o caminho ou clique em Selecionar Diretório para selecionar o diretório ou a pasta da migração.

Número Máximo de Threads: Digite o número de threads paralelos a serem ativados ao carregar dados para tabelas no Autonomous Database.

Usar Scheduler: Selecione essa opção para ativar o scheduler para migração. Você pode programar jobs para operações de migração de carga de dados do bucket do AWS S3 para o Autonomous Database. Você tem a opção de executar os jobs programados imediatamente ou em uma data e hora futuras. Para monitorar os jobs programados de carga de dados, use o nó Scheduler no navegador de Conexões.

Opção de Execução da Migração:

  • Imediato executa o programador assim que a migração do Redshift é acionada.

  • Uma vez executa o scheduler em uma data futura. Você especifica a Data Inicial e o Fuso Horário. Por padrão, Data Inicial exibe a data e a hora atuais do sistema local. Para alterar a data inicial, use o ícone de calendário para clicar duas vezes e selecionar a data ou use o botão giratório para destacar a data e, em seguida, clique no campo para defini-la.

Opções de Carga do Redshift: Permitir Substituição: Se essa opção estiver ativada, o processo de descarga substituirá os arquivos existentes, incluindo o arquivo de manifesto (lista os arquivos de dados criados pelo processo de descarga). Por padrão, o descarregamento falhará se houver arquivos que possam ser substituídos.

Opções de formato ADWC: Limite de Rejeição: Informe o número de linhas a serem rejeitadas ao carregar dados em tabelas no Autonomous Database. A operação de migração resultará em erro após o número especificado de linhas ser rejeitado. O padrão é 0.

Revisar e Finalizar a Migração do Amazon Redshift

O resumo mostra as informações especificadas.

Para alterar qualquer informação, pressione Voltar conforme necessário.


Veja a seguir a descrição da ilustração adw_migrate_aws_summary.png
Descrição da ilustração adw_migrate_aws_summary.png

Se você tiver escolhido uma migração imediata, a caixa de diálogo do assistente de migração permanecerá aberta até que a migração seja concluída. Se você selecionar gerar scripts, o processo de migração gerará os scripts necessários no diretório local especificado e não executará os scripts.

Para executar a migração, clique em Finalizar

Se o nome do esquema selecionado no AWS Redshift já existir no Autonomous Database, o processo de migração excluirá a implantação desses esquemas selecionados e exibirá uma caixa de diálogo:


Veja a seguir a descrição da ilustração adw_migrate_aws_schema_exists.png
Descrição da ilustração adw_migrate_aws_schema_exists.png

Resumo: O que o Assistente de Migração Cria

  • Cria um novo usuário do Autonomous Database usando o schema_name do Redshift.

  • Cria um novo bucket em S3 com base no nome do esquema.

  • Cria subpastas no S3 para cada tabela.

Usar os Scripts Gerados de Migração do Amazon Redshift

Quando você opta por gerar scripts de migração, um novo subdiretório é criado no diretório local especificado no Assistente de migração. É possível executar esses scripts em tempo real ou usá-los no processamento programático.

O diretório contém os seguintes scripts:

  • redshift_s3unload.sql

  • adwc_ddl.sql

  • adwc_dataload.sql

  • adwc_dataload_scheduler.sql

Esses scripts contêm todos os comandos necessários para migrar seu sistema Amazon Redshift para o Autonomous Database. É possível executar esses scripts em tempo real ou usá-los no processamento programático.

Descarregar os Dados do Amazon Redshift em S3

A primeira etapa de uma migração bem-sucedida é descarregar os dados do Amazon Redshift no Amazon S3, que age como área de preparação. O script redshift_s3unload.sql tem todos os comandos de descarga do Amazon Redshift para descarregar os dados usando as credenciais de acesso e o bucket S3 que foram especificados no workflow do Assistente de Migração.

Conecte-se ao seu ambiente do Amazon Redshift para executar esse script.

Criar os Objetos do Data Warehouse

Para preparar o Autonomous Database, crie o esquema de data warehouse vazio antes de carregar dados. O Assistente de Migração do Amazon Redshift converteu todas as estruturas de esquema do Amazon Redshift em estruturas Oracle no script adwc_ddl.sql.

O script deverá ser executado enquanto você estiver conectado ao seu Autonomous Database como usuário privilegiado; por exemplo, ADMIN.

Por padrão, o esquema criado para a migração tem o mesmo nome do esquema no Amazon Redshift. Altere a senha válida do usuário especificado no script ou após a execução do script. Se quiser alterar o nome do esquema, altere o nome e todas as referências a ele.

Carregar os Seus Dados do Amazon Redshift para o Seu Oracle Autonomous Database

O script adwc_dataload.sql contém todos os comandos de carga necessários para carregar os dados do Amazon Redshift descarregados diretamente de S3 para o Autonomous Database.

Execute o script enquanto conectado ao seu Autonomous Database como usuário privilegiado; por exemplo, ADMIN.

Se quiser alterar o nome do esquema de destino ao criar seus objetos de data warehouse, ajuste os nomes do esquema de destino desse modo.

Uso do JOB SCHEDULER

O SQL Developer fornece uma interface gráfica para usar o pacote PL/SQL DBMS_SCHEDULER para trabalhar com objetos do Oracle Scheduler. Para usar os recursos de programação do SQL Developer, consulte o tópico 'Scheduling Jobs Using SQL Developer' do SQL Developer User Guide e o Oracle Database Administrator's Guide para entender os conceitos e as tarefas essenciais para a programação de jobs.

O nó Scheduler de uma conexão aparece no navegador de Conexões e no navegador do DBA. Utilize o usuário "admin" do ADWC para navegar, que exibe objetos do Scheduler pertencentes ao status de monitoramento "admin" dos jobs de carga de dados.

Em Conexão 'admin' do ADWC → Scheduler → Jobs, você verá que os jobs de carga de dados do AWS Redshift para o ADWC são criados com o nome <schema_name>_<table_name>. 

Para ver o status de conclusão de cada carga de dados, expandir cada job programado e verificar o status.

Além disso, para obter informações mais detalhadas sobre a operação de carga de dados, consulte a tabela MD_REPORT no esquema SQLDEV_MIGREPOS que armazena informações sobre colunas de tabela: e

 OPERATION_ID, LOGFILE_TABLE, BADFILE_TABLE, SOURCE_SCHEMA_NAME, TARGET_SCHEMA_NAME, SOURCE_TABLE_NAME, 

e

 TARGET_TABLE_NAME, SOURCE_TABLE_ROWS, TARGET_TABLE_ROWS_LOADED, ERROR MESSAGE, 

e

STATUS (COMPLETED or FAILED)

Arquivos de Log e Relatório de Migração do Redshift

Após a Migração do Redshift, você encontrará três arquivos:

  • MigrationResults.log : Arquivo de log da migração do Redshift

  • readme.txt : arquivo explica como usar os Scripts de Migração Gerados do Amazon Redshift.

  • redshift_migration_reportxxx.txt : Contém informações sobre Migração; aqui está um exemplo:

    ______________________________________________________________
    OPERATION ID : 8566
    LOGFILE TABLE : COPY$8566_LOG
    BADFILE TABLE : COPY$8566_BAD
    SOURCE SCHEMA : sample
    TARGET SCHEMA : SAMPLE
    SOURCE TABLE : listing
    TARGET TABLE : LISTING
    SOURCE TABLE ROWS : 192497
    TABLE ROWS LOADED : 192497
    ERROR MESSAGE : null
    STATUS : COMPLETED
    START TIME : 2018-09-27 17:25:18.662075
    END TIME : 2018-09-27 17:25:25.012695
    ______________________________________________________________

Executar Tarefas Após Migração

Após a migração bem-sucedida do ambiente do Redshift, você considere as seguintes tarefas pós-migração:

  • Eliminar esquema SQLDEV_MIGREPOS

  • Eliminar o bucket do Amazon S3 usado para preparação

  • Proteger a conta da Amazon usada para acessar S3

  • Eliminar a credencial de banco de dados usada para carga de dados em S3

  • Proteger suas contas no Autonomous Database

  1. Eliminar esquema SQLDEV_MIGREPOS

    Como parte da migração de esquemas, o Assistente de Migração instala um repositório de migração mínimo no Autonomous Database de destino. Após a migração, essa conta não é mais necessária e pode ser eliminada ou, se preferir, bloqueada.

  2. Eliminar o Bucket do Amazon S3 Usado para Preparação

    A menos que deseje usar os dados do Redshift descarregados, você poderá eliminar o bucket que contém os dados descarregados.

  3. Proteger a Conta da Amazon Usada para Acessar o S3

    Desative a chave de acesso de segurança usada para acesso a S3, a menos que seja necessária para outros fins.

  4. Eliminar a credencial de banco de dados usada para carga de dados em S3

    As credenciais de segurança da Amazon para acessar S3 são armazenadas criptografadas como credencial de banco de dados REDSHIFT_DWCS_CREDS no Autonomous Database, no esquema de usuário privilegiado que foi usado para a migração. A Oracle recomenda que você elimine essa credencial após a migração bem-sucedida, a menos que ela seja necessária para outros fins. Para obter mais informações, consulte DROP_CREDENTIAL Procedure.

  5. Proteger suas Contas no Seu Autonomous Database

    Para o novo esquema criado como parte da migração com o Assistente de Migração, certifique-se de alterar as senhas dessas contas ou bloqueá-las e expirá-las se elas forem usadas exclusivamente para armazenamento de dados.