Migrando banco de dados On Premises para o Cloud Oracle

Revisado por Mauricio Parrado

Por Skant Gupta, Joel Pérez , Franky Weber Faust
Publicado em Março 2018

“Além das restrições comuns para consumir serviços da nuvem, os teams do TI precisam de garantir um processo de migração limpo para os bancos de dados para que o negócio perceba o valor que a nuvem está entregando hoje. ”

Introdução

Este documento propõe uma série de passos para fazer uma migração simples do banco de dados Oracle para o serviço de plataforma em nuvem, sem importar se a plataforma de processamento origem é x86 o RISC. Isto dá para o team de TI uma avantajem muito clara para fazer migrações com um risco menor e controlado.

Vista geral

Para migrar um banco de dados On-Premises, tablespace, schema ou simplesmente uma tabela para um banco de dados Oracle Database Cloud Service utilizando Data Pump Export e Import, veja os passos a seguir:

  1. No host do banco de dados on-premises execute o Data Pump Export e faça a exportação dos dados do banco de dados.
  2. Use um utilitário seguro para realizar a transferência do arquivo de dump para a VM do Oracle Database Cloud Service.]
  3. Na VM do Oracle Database Cloud Service utilize o Data Pump Import para importar os dados no banco de dados a partir do arquivo de dump.
  4. Depois de verificar que os dados foram importados com sucesso você pode remover o arquivo de dump.

Figura 1. Proposta de migração de banco de dados.

Data Pump Conventional Export/Import: Exemplo

O exemplo abaixo mostra uma demonstração passo-a-passo das tarefas necessárias para migrar um banco de dados Oracle On-Premises para um banco de dados Oracle Database Cloud Service.

Neste exemplo, o banco de dados On-premises está num servidor Linux.
No servidor do banco de dados On-premises vamos executar o Data Pump Export para exportar os dados.

  1. No servidor do banco de dados On-premises, crie um diretório no sistema operacional para armazenar os arquivos que serão gerados no procedimento de exportação.

    [oracle@cloud ~]$ mkdir -p /u01/app/dbpump

  2. No servidor do banco de dados On-premises, conecte-se ao SQL*Plus com o usuário SYS.
    
    
    
    [oracle@cloud ~]$ sqlplus sys@PDB_PREM as sysdba
          SQL*Plus: Release 12.1.0.2.0 Production on Sun May 21 16:05:26 2017
          Copyright (c) 1982, 2014, Oracle. All rights reserved.
          Enter Password:
          Connected to:
          Oracle Database12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
          With the partitioning, OLAP, Advanced Analytics and Real Application Testing options 
    
    
  3. Crie um objeto de diretório no banco de dados On-premises para fazer referência ao diretório criado no sistema operacional.
    
    
    
    SQL> create directory prem_to_cloud as '/u01/app/dpdump';
          Directory created 
    
    
    
  4. Saia do SQL*Plus.
  5. No servidor do banco de dados On-premises e execute o Data Pump Export com o usuário SYSTEM ou outro usuário que tenha a role DATAPUMP_EXP_FULL_DATABASE realize a exportação dos dados. Forneça a senha quando for solicitado.
    
    
    
      [oracle@cloud ]$ expdp system@PDB_PREM full=y  directory=prem_to_cloud
          Export: Release 12.1.0.2.0 - Production on Sun May 21 16:05:26 2017
          Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
          Password:
          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
          ...
          ... 
    

Agora você precisa de um utilitário seguro para transferir o arquivo de dump para o Oracle Database Cloud Service, mas primeiro é necessário ter um Oracle Database Cloud Service disponível.

Crie um novo Oracle Database Cloud Service

1. Efetue login na sua conta da Oracle Cloud, acesse a página “Oracle Database Cloud Service” e crie um novo serviço.

  • Para o Service Name, defina Cloud-Mig.
  • No campo Service Level, selecione Oracle Database Cloud Service.
  • Do campo Metering Frequency, selecione de acordo com sua preferência.
  • No campo Software Release, selecione Oracle Database 12c Release1.
  • No campo Software Edition, selecione Enterprise Edition.
  • No campo Database Type, selecione Single Instance.
  • Clique em Next para continuar.

Figura 2. Criando um novo serviço (Cloud-Mig).

2. Na tela Service Details, faça o seguinte:

  • Para o DB Name (SID), insira MIGORCL.
  • Defina uma senha administrativa e confirme-a na sequência.
  • Para Usable Database Storage (GB), insira 25.
  • No campo Compute Shape, selecione OC3 -1 OCPU, 7.5GB RAM.
  • Para a SSH Public Key, insira rsa-key-20170111.pub (ou sua chave de preferência).

Clique em Next para continuar.

Figura 3. Especificando os detalhes do serviço

3. Por fim, revise a configuração e clique em Create para criar o banco de dados na Cloud

Figura 4. Criando a instância de banco de dados na nuvem

Depois de alguns minutos, a sua instância de banco de dados estará criada.

Figura 5. A instância de banco de dados foi criada com sucesso

4. Clique no nome do serviço (Cloud-Mig) para abrir a página principal do banco de dados.

Figura 6. A instância de banco de dados foi criada com sucesso

5. Antes de tentar se conectar à instância de banco de dados, você deve configurar a regras de acesso. Faça o seguinte:

  • Abra o menu do serviço e acesse Access Rules.

    Figura 7. Selecionando o item Access Rules no menu

  • Para a regra ora_p2_dblistener, clique em Enable a partir do menu Actions

    Figura 8. Habilitando a regra ora_p2_dblistener

Conecte-se ao Cloud Database

  1. Conecte-se ao Oracle Database Cloud Service utilizando a chave SSH

    Figura 9. Conectando ao Oracle Database Cloud Service utilizando o PuTTY

  2. No servidor do Oracle Database Cloud Service verifique os PDBs e o processo pmon.
    
    
    
     [oracle@Cloud-Mig ~]$ ps -ef|grep pmon
    
          oracle        311 32724 0 10:31 pts/1     00:00:00 grep pmon
    
          oracle         7695      1 0 07:57 ?      00:00:00 ora_pmon_MIGORCL
    
          [oracle@Cloud-Mig ~]$ sqlplus sys as sysdba
    
          SQL*Plus: Release 12.1.0.2.0 Production on Sun May 21 10:31:42 2017
    
          Copyright (c) 1982, 2014, Oracle. All rights reserved.
    
          Enter Password:
    
          Connected to:
    
          Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
    
          With the Partitioning, Oracle Label Security, OLAP, Advanced Analytics 
    
          and Real Application Testing options
    
          SQL> show pdbs
    
            CON_ID     CON_NAME        OPEN MODE      RESTRICTED
    
          ----------  ----------      -----------    ------------
    
               2       PDB$SEED        READ ONLY          NO
    
               3       PDB1            READ WRITE         NO
    
  3. Use um utilitário seguro para realizar a transferência do arquivo de dump para o servidor do Oracle Database Cloud Service Neste exemplo o arquivo de dump é copiado para o diretório /u01. Escolha o local apropriado baseado no tamanho do arquivo que será transferido.
    • No servidor do Oracle Database Cloud Service, crie o diretório que irá armazenar o arquivo de dump.
    • Antes de usar o comando scp para copiar o arquivo, certifique-se de que a chave privada que possui acesso ao servidor do Oracle Database Cloud Service está disponível no servidor On-premises
    • No servidor do banco de dados On-premises, use o utilitário SCP para realizar a cópia para o servidor do Oracle Database Cloud Service
    
    
    
    [oracle@cloud dpdump]$ ls
          expdat.dmp   export.log
          
          [oracle@cloud dpdump]$ scp -i /home/oracle/rsa-key-20170111.ssh expdat.dmp    
          oracle@129.144.152.30:/u01/app/dump
          
          Enter passphrase for key '/home/oracle/rsa-key-20170111.ssh':
          expdat.dmp              4%  2704KB 856.1KB/s   01:12 ETA 
    
    
    
  4. No servidor do Oracle Database Cloud Service, execute o Data Pump Import para importar os dados no banco de dados:
    • No servidor do Oracle Database Cloud Service, conecte-se ao banco de dados com o usuário SYSTEM usando o SQL*Plus
    • 
      
      [oracle@Cloud-Mig admin]$ sqlplus sys@pdprem2 as sysdba
            SQL*Plus: Release 12.1.0.2.0 Production on Sun May 21 11:56:53 2017
            Copyright (c) 1982, 2014, Oracle. All rights reserved.
            Enter Password:
            Connected to:
            Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
            With the Partitioning, Oracle Label Security, OLAP, Advanced Analytics and 
            Real Application Testing options 
      
      
    • Crie o diretório no banco de dados
    • 
      
      
      
      SQL> create directory cloud_mig as '/u01/app/dpump';
            Directory created.
      
      
      
    • Se ainda não existir, crie a tablespace na qual os objetos serão importados.
    • Saia do SQL*Plus.
    • No servidor do Oracle Database Cloud Service, execute o Data Pump Import e conecte-se ao banco de dados para importar os dados
    • 
      
      
       [oracle@Cloud-Mig admin] $ impdp system@pdbprem2 full=y directory=cloud_mig
            Import: Release 12.1.0.1.0 - Production on Sun May 21 12:24:39 2017
            Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.
            Password:
            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
            ...
            ... 
            
      
      
  5. Depois de validar que os dados foram importados com sucesso, você pode remover o arquivo de dump Esperamos que este artigo seja útil e convidamos a continuar acompanhando os conteúdos focados em Oracle Cloud.

Skant Gupta é um Oracle Certified Cloud Professional 12c, OCE RAC 11g and Oracle Certified Professional (10g, 11g, 12c). Atualmente trabalha na Vodafone no Reino Unido e trabalhava anteriormente como DBA Sênior na Etisalat em Dubai. Tem 6 anos de experiência em diferentes tecnologias Oracle, focando principalmente em banco de dados, nuvem, soluções de alta disponibilidade, WebLogic e GoldenGate. Elejá esteve presente em vários grupos de usuários Oracle ao redor do mundo e maisrecentemente nos EUA, Emirados Árabes e Índia. Perfil de Skant Gupta no LinkedIn - https://www.linkedin.com/in/ skantali, Blog: http://oracle-help.com/

Joel Pérez é umDBA (Oracle ACE Director, Maximum Availability OCM, OCM Cloud Admin. & OCM12c/11g) Especialista com mais de 17 anos de experiência real no mundo da tecnologia Oracle, especializada na concepção e implementação de soluções: Nuvem, alta disponibilida de, recuperação de desastres, Upgrades, replicação e toda a área relacionada com bancos de dados Oracle. Joel serve como "Senior Database Cloud Architect" para en.Enmotech.com Yunhe ENMO (Beijing) Technology Co. Ltd. Beijing, China. Conectar com Joel: Conecte-se com Joel’s Linkedin para ser atualizado com as informações mais notáveis relacionadas ao Oracle Cloud: https://www.linkedin.com/in/sir-joel-pérez-oracle-ace-director-ocm-cloud-99530555/

Franky Weber Faust atua como administrador de banco de dados Oracle e MySQL no PagSeguro, tem 26 anos, é graduado em Tecnologia em Bancos de Dados e iniciou sua carreira trabalhando num projeto internacional da Volkswagen com os bancos de dados DB2 da IBM, SQL Server da Microsoft e tambémcom o Oracle e desde o início direcionou seus estudos para as tecnologias Oracle. É especialista em tecnologias de Alta Disponibilidade como RAC, Dataguard e GoldenGate e compartilha seus conhecimentos no blog loredata.com.br. Possui as certificações OCE SQL, OCA 11g, OCP 12c, OCS RAC 12c e OCS Linux 6.

Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.