Observação:

Migre de um Banco de Dados Não Contêiner Local 19c para o Banco de Dados Contêiner do Oracle Database 23ai

Introdução

O Zero Downtime Migration (ZDM) 21.5 introduz a migração física com um upgrade em andamento, permitindo transições contínuas para bancos de dados Oracle. Esse recurso suporta a migração de bancos de dados Oracle 11.2.0.4 e 12c para bancos de dados Oracle 19c, bem como migrações de bancos de dados de origem 19c para o Oracle Database 23ai.

Este tutorial descreve como o ZDM facilita a migração e a conversão de um banco de dados 19c não contêiner (CDB) de origem em um CDB ao executar um upgrade no nível de destino. O ZDM executa uma migração inicial usando um banco de dados de destino não CDB temporário para que os clientes migrem e atualizem um banco de dados não CDB. Ao concluir essa fase inicial, o ZDM aproveita o upgrade automático para converter em multilocatário e fazer upgrade do banco de dados para a versão desejada.

Este tutorial foi desenvolvido especificamente para migrar bancos de dados não CDB locais que executam a versão 19c de uma plataforma Linux para o CDB do Oracle Database 23ai.

Veja a seguir as propriedades e os detalhes dos ambientes de origem e destino.

Imagem mostrando os Detalhes da Origem e do Destino

Objetivos

Pré-requisitos

Tarefa 1: Preparar e Instalar o Servidor ZDM

  1. Provisione um host de computação dedicado para a instalação do software ZDM. O host no qual o software ZDM está instalado é chamado de host de serviço ZDM. Os pré-requisitos a seguir devem ser atendidos no host:

    • Oracle Linux 8 e tamanho do volume de inicialização de 200 GB.
    • 100 GB de espaço de armazenamento livre.
    • Nenhum Oracle Grid Infrastructure em execução nele.
    • Possível conexão com o banco de dados de origem e destino (servidores).
  2. Conecte-se ao host ZDM usando putty.

  3. Execute o comando a seguir para estender o sistema de arquivos para disponibilizar os 200 GB.

    [opc@zdm ~]$ sudo su -
    [root@zdm ~]# df -h /
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        39G  3.2G   36G   9% /
    [root@zdm ~]# /usr/libexec/oci-growfs -y
    [root@zdm ~]# df -h /
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3       192G  3.2G  189G   2% /
    
  4. Crie um novo grupo, usuário e os diretórios necessários como usuário root usando o comando a seguir.

    [root@zdm ~]# groupadd zdm
    [root@zdm ~]# useradd -g zdm zdmuser
    [root@zdm ~]# mkdir -p /home/zdmuser/zdminstall
    [root@zdm ~]# mkdir /home/zdmuser/zdmhome
    [root@zdm ~]# mkdir /home/zdmuser/zdmbase
    [root@zdm ~]# chown -R zdmuser:zdm /home/zdmuser/
    
  5. Instale os pacotes de software necessários como um usuário root usando o comando a seguir.

    [root@zdm ~]# yum install oraclelinux-developer-release-el8 libnsl perl unzip glibc-devel expect libaio ncurses-compat-libs ncurses-devel numactl-libs openssl mlocate bind-utils
    
  6. Faça download do software ZDM versão 21.5 e copie o arquivo zip para o host ZDM para o diretório /home/zdmuser/zdminstall/. Altere o proprietário do arquivo zip para zdmuser como usuário raiz usando o comando a seguir.

    [root@zdm ~]# chown zdmuser:zdm /home/zdmuser/zdminstall/zdm21.5.zip
    
  7. Instale o software ZDM como zdmuser usando o comando a seguir.

    [zdmuser@zdm ~]$ cd /home/zdmuser/zdminstall/
    [zdmuser@zdm zdminstall]$ unzip zdm21.5.zip
    
    [zdmuser@zdm zdminstall]$ ZDMHOME=/home/zdmuser/zdmhome
    [zdmuser@zdm zdminstall]$ ZDMBASE=/home/zdmuser/zdmbase
    
    [zdmuser@zdm zdminstall]$ /home/zdmuser/zdminstall/zdm21.5/zdminstall.sh setup oraclehome=/home/zdmuser/zdmhome oraclebase=/home/zdmuser/zdmbase ziploc=/home/zdmuser/zdminstall/zdm21.5/zdm_home.zip -zdm
    ZDM service setup finished successfully...
    
  8. Execute o comando a seguir para iniciar o ZDM e verificar o status como zdmuser.

    [zdmuser@zdm ~]$ $ZDMHOME/bin/zdmservice start
    Return code is 0
    Server started successfully.
    [zdmuser@zdm ~]$ $ZDMHOME/bin/zdmservice status
    ---------------------------------------
    		Service Status
    ---------------------------------------
    Running:       true
    
  9. Execute o comando a seguir para criar um par de chaves SSH para zdmuser. Isso será usado posteriormente para fazer log-in no servidor de banco de dados de origem e destino usando SSH. Mantenha os padrões.

    [zdmuser@zdm ~]$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/zdmuser/.ssh/id_rsa):
    Created directory '/home/zdmuser/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/zdmuser/.ssh/id_rsa.
    Your public key has been saved in /home/zdmuser/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:giU7jz/8Z1VPiS9Ds/gfokHdevpm0dk59fPYEHRChs4
    zdmuser@zdmhost
    The key's randomart image is:
    
  10. Crie um token de autenticação para seu usuário do OCI, na página Detalhes do Usuário.

    Clique em Tokens de Autenticação, Gerar Token, digite Descrição e clique em Gerar Token.

    Observação: copie este token de seus registros, pois ele não será mostrado novamente.

    Imagem mostrando a Criação do token de Autenticação

  11. Execute o comando a seguir para instalar a ferramenta CLI do OCI (Interface de Linha de Comando) do Oracle Cloud Infrastructure como zdmuser, que será usada para acessar os recursos do OCI. Por exemplo, copie o arquivo de dump do data pump para o OCI Object Storage.

    [zdmuser@zdm ~]$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
    

    Observação: A instalação da CLI do OCI requer OCID do Usuário, OCID da Tenancy, Região Home, use esses valores de acordo com sua tenancy na nuvem e mantenha os outros valores de parâmetro como padrão.

    [zdmuser@zdm ~]$ oci setup config
    
  12. Execute o comando a seguir para fazer upload da chave pública de assinatura de API para o usuário do OCI na tenancy da nuvem em zdmhost.

    [zdmuser@zdmhost ~]$ cat /home/zdmuser/.oci/oci_api_key_public.pem
    -----BEGIN PUBLIC KEY-----
    **********
    -----END PUBLIC KEY-----
    

    Vá para a Console do OCI, navegue até a página Detalhes do Usuário, clique em Chaves de API e Adicionar Chave de API. Selecione Colar Chave Pública, informe a saída do comando acima e clique em Adicionar.

    Imagem mostrando Adicionando Chave de API

  13. Execute o comando a seguir para criar um bucket padrão do OCI Object Storage na tenancy do OCI usando a CLI do OCI ou a Console do OCI.

    [zdmuser@zdm ~]$ oci os bucket create --compartment-id ocid1.compartment.oc1.....lh4lfamxdrpuxg3x……… --name zdmbucket
    
  14. Conectividade de zdmhost para servidores de banco de dados de origem e destino: Copie a chave SSH do zdmhost como zdmuser para a origem e o destino conforme criados na Tarefa 1.9.

    #on ZDM host as zdmuser
    [zdmuser@zdm ~]$ cat .ssh/id_rsa.pub
    #on the source database host as user opc
    [opc@sourcedb ~]$ vi .ssh/authorized_keys
    #insert the public key and save the changes
    [opc@targetdb ~]$ vi .ssh/authorized_keys
    #insert the public key and save the changes
    
  15. Resolva os nomes de host do banco de dados de origem e do banco de dados de destino para zdmhost copiando o nome do host, IP e FQDN para /etc/hosts no zdmhost como usuário raiz.

Tarefa 2: Executar Pré-verificações no Banco de Dados de Origem e de Destino

  1. Execute os comandos a seguir para criar o ORACLE_HOME na instância de destino do Oracle Base Database Service com a mesma versão da origem.

    [root@tgtzdm ~]# dbcli list-dbhomes
    
    ID                                       Name                 DB Version                               Home Location                                 Status
    ---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ----------
    c548b052-64b7-4257-bfdc-d7c201a430ab     OraDB23000_home1     23.5.0.24.07                             /u01/app/oracle/product/23.0.0.0/dbhome_1     Configured
    
    [root@tgt23ai ~]# dbcli create-dbhome -v 19.23
    
    Job details
    ----------------------------------------------------------------
    					ID:  a63db258-7ffc-4dee-b8e5-5accf223e39b
    			Description:  Database Home creation with Id : db1b4bb8-2ed0-4c0f-ade9-a656f21cf808
    				Status:  Created
    				Created:  September 19, 2024 at 3:22:48 PM IST
    			Progress:  0%
    				Message:  Create Database Home
    			Error Code:
    
  2. Execute o seguinte comando para validar a criação do home do banco de dados.

    [root@tgt23ai ~]# dbcli describe-job --jobid a63db258-7ffc-4dee-b8e5-5accf223e39b
    
    Job details
    ----------------------------------------------------------------
    					ID:  a63db258-7ffc-4dee-b8e5-5accf223e39b
    			Description:  Database Home creation with Id : db1b4bb8-2ed0-4c0f-ade9-a656f21cf808
    				Status:  Success
    				Created:  September 19, 2024 at 3:22:48 PM IST
    			Progress:  100%
    				Message:  Create Database Home
    			Error Code:
    
    Task Name                                                                Start Time                          End Time                            Status
    ------------------------------------------------------------------------ ----------------------------------- ----------------------------------- ----------
    Database home creation                                                   September 19, 2024 at 3:22:49 PM IST September 19, 2024 at 3:27:40 PM IST Success
    
    
    [root@test23ai ~]# dbcli list-dbhomes
    
    ID                                       Name                 DB Version                               Home Location                                 Status
    ---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ----------
    43247858-4ff6-4fcb-85f2-09d453d863bf     OraDB23000_home1     23.5.0.24.07                             /u01/app/oracle/product/23.0.0.0/dbhome_1     Configured
    a63db258-7ffc-4dee-b8e5-5accf223e39b     OraDB19000_home1     19.23.0.0.0                              /u01/app/oracle/product/19.0.0.0/dbhome_1     Configured
    

Tarefa 3: Preparar o Arquivo de Resposta

  1. Copie o arquivo de resposta do modelo em zdmhost colocado em $ZDM_HOME/rhp/zdm/template/ para outro diretório.

  2. Modifique o arquivo de resposta copiado de acordo com a configuração do ambiente de origem e destino. Veja a seguir um exemplo de arquivo de resposta compartilhado com parâmetros mínimos usados para concluir a migração com upgrade.

    TGT_DB_UNIQUE_NAME=tgt23ai_ai
    MIGRATION_METHOD=OFFLINE_PHYSICAL
    DATA_TRANSFER_MEDIUM=OSS
    PLATFORM_TYPE=VMDB
    SRC_DB_LISTENER_PORT=1521
    HOST=https://swiftobjectstorage.eu-frankfurt-1.oraclecloud.com/v1/frrudica1wgd
    OPC_CONTAINER=ZDM
    NONCDBTOPDB_CONVERSION=TRUE
    TGT_SKIP_DATAPATCH=FALSE
    ZDM_NONCDBTOPDB_PDB_NAME=newpdb23
    ZDM_PRE_UPGRADE_TARGET_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
    

Tarefa 4: Avaliar a Migração

Avalie a migração modificando os parâmetros de acordo com os detalhes de origem e destino.

./zdmcli migrate database -rsp /home/zdmuser/response_files/zdm_phyupg.rsp \
-sourcedb test \
-sourcenode test23ai1 \
-srcauth zdmauth \
-srcarg1 user:opc \
-srcarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-srcarg3 sudo_location:/usr/bin/sudo \
-targetnode tgt23ai \
-tgtauth zdmauth \
-tgtarg1 user:opc \
-tgtarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-tgtarg3 sudo_location:/usr/bin/sudo \
-tdekeystorepasswd \
-tgttdekeystorepasswd \
-backupuser oracleidentitycloudservice/s****aik@oracle.com \
-eval

Observação: Você pode monitorar o job usando o comando a seguir.

$ZDM_HOME/bin/zdmcli query job -jobid <jobid>

Tarefa 5: Executar a Migração Real

Execute a migração real usando o comando a seguir. Modifique os valores de acordo com o ambiente de origem e destino.

./zdmcli migrate database -rsp /home/zdmuser/response_files/zdm_phyupg.rsp \
-sourcedb test \
-sourcenode test23ai1 \
-srcauth zdmauth \
-srcarg1 user:opc \
-srcarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-srcarg3 sudo_location:/usr/bin/sudo \
-targetnode tgt23ai \
-tgtauth zdmauth \
-tgtarg1 user:opc \
-tgtarg2 identity_file:/home/zdmuser/.ssh/id_rsa \
-tgtarg3 sudo_location:/usr/bin/sudo \
-tdekeystorepasswd \
-tgttdekeystorepasswd \
-backupuser oracleidentitycloudservice/s***aik@oracle.com

Confirmações

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.