Migre um banco de dados Oracle local para a Amazon RDS for Oracle usando o Oracle Data Pump - 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 um banco de dados Oracle local para a Amazon RDS for Oracle usando o Oracle Data Pump

Criado por Mohan Annam (AWS) e Brian motzer () AWS

Ambiente: PoC ou piloto

Origem: bancos de dados: relacionais

Alvo: Amazon RDS para Oracle

Tipo R: redefinir a plataforma

Workload: Oracle

Tecnologias: migração; bancos de dados

AWSserviços: Amazon RDS

Resumo

Esse padrão descreve como migrar um banco de dados Oracle de um datacenter local para uma instância de banco de dados do Amazon Relational Database Service (AmazonRDS) para Oracle usando o Oracle Data Pump. 

O padrão envolve a criação de um arquivo de despejo de dados do banco de dados de origem, o armazenamento do arquivo em um bucket do Amazon Simple Storage Service (Amazon S3) e a restauração dos dados em uma instância de banco de dados Amazon for Oracle. RDS Esse padrão é útil quando você encontra limitações usando o AWS Database Migration Service (AWSDMS) para a migração.

Pré-requisitos e limitações

Pré-requisitos

  • Uma AWS conta ativa

  • As permissões necessárias para criar funções no AWS Identity and Access Management (IAM) e para um upload de várias partes do Amazon S3

  • As permissões necessárias para exportar dados do banco de dados de origem

  • AWSInterface de linha de comando (AWSCLI) instalada e configurada

Versões do produto

  • O Oracle Data Pump está disponível somente para o banco de dados Oracle 10g Release 1 (10.1) e versões posteriores.

Arquitetura

Pilha de tecnologia de origem

  • Bancos de dados Oracle on-premises

Pilha de tecnologias de destino

  • Amazon RDS para Oracle

  • SQLcliente (Oracle SQL Developer)

  • Um bucket do S3

Arquitetura de origem e destino

Upload de várias partes do Amazon S3 de um banco de dados Oracle local para a Amazon RDS usando o Oracle Data Pump.

Ferramentas

AWSserviços

Outras ferramentas

  • O Oracle Data Pump ajuda você a mover dados e metadados de um banco de dados para outro em alta velocidade. Nesse padrão, o Oracle Data Pump é usado para exportar o arquivo de despejo de dados (.dmp) para o servidor Oracle e importá-lo para a Amazon RDS for Oracle. Para obter mais informações, consulte Importação de dados para o Oracle na Amazon RDS na RDS documentação da Amazon.

  • 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. Ele interage com o banco de dados Oracle local e com o Amazon RDS for Oracle para executar os SQL comandos necessários para exportar e importar dados.

Épicos

TarefaDescriçãoHabilidades necessárias

Crie o bucket.

Para criar o bucket do S3, siga as instruções na AWSdocumentação.

AWSadministrador de sistemas
TarefaDescriçãoHabilidades necessárias

Configure IAM as permissões.

Para configurar as permissões, siga as instruções na AWSdocumentação.

AWSadministrador de sistemas
TarefaDescriçãoHabilidades necessárias

Crie a instância de banco de dados Amazon RDS for Oracle de destino.

Para criar a instância Amazon RDS for Oracle, siga as instruções na AWSdocumentação.

AWSadministrador de sistemas

Associe o perfil à instância de banco de dados.

Para associar a função à instância, siga as instruções na AWSdocumentação.

DBA
TarefaDescriçãoHabilidades necessárias

Criar o usuário

Conecte-se ao banco de dados Amazon RDS for Oracle de destino do Oracle SQL Developer ou SQL *Plus e execute o SQL comando a seguir para criar o usuário para o qual importar o esquema.

create user SAMPLE_SCHEMA identified by <PASSWORD>; grant create session, resource to <USER NAME>; alter user <USER NAME> quota 100M on users;
DBA
TarefaDescriçãoHabilidades necessárias

Criar um arquivo de despejo de dados.

Para criar um arquivo de despejo nomeado sample.dmp no diretório DATA_PUMP_DIR para exportar o usuário SAMPLE_SCHEMA, use o script a seguir.

DECLARE hdnl NUMBER; BEGIN hdnl := dbms_datapump.open(operation => 'EXPORT', job_mode => 'SCHEMA', job_name => NULL); dbms_datapump.add_file( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file); dbms_datapump.add_file(handle => hdnl, filename => 'export.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); dbms_datapump.metadata_filter(hdnl, 'SCHEMA_EXPR', 'IN (''SAMPLE_SCHEMA'')'); dbms_datapump.start_job(hdnl); END; /

Revise os detalhes da exportação revisando o arquivo export.log em seu diretório local DATA_PUMP_DIR.

DBA
TarefaDescriçãoHabilidades necessárias

Carregue o arquivo de despejo de dados da origem para o bucket do S3.

Usando AWSCLI, execute o seguinte comando.

aws s3 cp sample.dmp s3://<bucket_created_epic_1>/
DBA
TarefaDescriçãoHabilidades necessárias

Baixe o arquivo de despejo de dados na Amazon RDS

Para copiar o arquivo sample.dmp de despejo do bucket do S3 para o banco de dados Amazon RDS for Oracle, execute o comando a seguirSQL. Neste exemplo, o arquivo sample.dmp é baixado do bucket do S3 my-s3-integration1 para o diretório Oracle DATA_PUMP_DIR. Verifique se você tem espaço em disco suficiente alocado à sua RDS instância para acomodar o banco de dados e o arquivo de exportação.

-- If you want to download all the files in the S3 bucket remove the p_s3_prefix line. SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => 'my-s3-integration', p_s3_prefix => 'sample.dmp', p_directory_name => 'DATA_PUMP_DIR') AS TASK_ID FROM DUAL;

O comando anterior gera um ID da tarefa. Para revisar o status do download analisando os dados no ID da tarefa, execute o comando a seguir.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<task_id>.log'));

Para ver os arquivos no diretório DATA_PUMP_DIR, execute o seguinte comando.

SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;
AWSadministrador de sistemas
TarefaDescriçãoHabilidades necessárias

Restaure o esquema e os dados na AmazonRDS.

Para importar o arquivo de despejo para o esquema do sample_schema banco de dados, execute o seguinte SQL comando do SQL Developer ou SQL do *Plus.

DECLARE hdnl NUMBER; BEGIN hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name=>null); DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file); DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'import.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER(hdnl,'SCHEMA_EXPR','IN (''SAMPLE_SCHEMA'')'); DBMS_DATAPUMP.START_JOB(hdnl); END; /

Para ver o arquivo de log da importação, execute o comando a seguir.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));
DBA
TarefaDescriçãoHabilidades necessárias

Listar e limpar os arquivos de exportação.

Para listar e remover os arquivos de exportação no diretório DATA_PUMP_DIR, execute os comandos a seguir.

-- List the files SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;
-- Remove the files EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample.dmp'); EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','import.log');
AWSadministrador de sistemas

Recursos relacionados