top of page

Modernização e Migração Física/Multitenant com ZDM

Por Andrey Schulz– Especialista em Arquiteturas de Missão Crítica e Cloud


Modernização e Migração fícica /Multitenant com ZDM: do On-Premises para o Exadata na OCI (passo a passo oficial) exige precisão.


Quando migramos bancos de dados locais (muitas vezes em arquiteturas legadas Non-CDB) para instâncias modernas na nuvem com conversão automática para  Multitenant (CDB/PDB), o uso do  Oracle Zero Downtime Migration (ZDM) poderá apoia-lo neste jornada para a Cloud. 

Abaixo, detalhamos a execução prática baseada diretamente no laboratório de referência oficial da Oracle para migração de bases locais para o ecossistema de nuvem. 


Módulo de Arquitetura: Visão Geral do Fluxo


Antes de iniciar a execução no terminal, o processo oficial de migração via ZDM segue uma esteira rigorosa de dependências entre o ambiente de origem (On-Premises), a OCI (Object Storage e Destino) e o host orquestrador do ZDM.


Passo 1: Preparação e Instalação do Servidor ZDM (ZDM Server)


O ZDM não é executado diretamente no banco de dados. Ele requer um host dedicado (geralmente uma VM com Oracle Linux 8) para atuar como o motor de controle. 


1.1 Configuração do S.O. e Armazenamento no Host ZDM 


Acesse a VM que será o seu ZDM Server via SSH e ajuste o espaço do sistema de arquivos de boot, adicione os grupos e crie a árvore de diretórios padrão: 


codeBash 

# Expandindo o volume de boot do Oracle Linux 

[root@zdm ~]# /usr/libexec/oci-growfs -y 

 

# Criando usuário, grupo e estrutura de diretórios do ZDM 

[root@zdm ~]# groupadd zdm 

[root@zdm ~]# useradd -g zdm zdmuser 

[root@zdm ~]# mkdir -p /home/zdmuser/zdminstall /home/zdmuser/zdmhome /home/zdmuser/zdmbase 

[root@zdm ~]# chown -R zdmuser:zdm /home/zdmuser/ 

 

# Instalando pacotes e dependências essenciais de S.O. 

[root@zdm ~]# yum install -y oraclelinux-developer-release-el8 libnsl perl unzip glibc-devel expect libaio ncurses-compat-libs ncurses-devel numactl-libs openssl mlocate bind-utils 


1.2 Executando o Setup do ZDM 


Com os pacotes instalados, mude para o usuário zdmuser, descompacte o software do ZDM dentro de /home/zdmuser/zdminstall e execute o script de instalação automatizada (zdminstall.sh): 


codeBash 

[root@zdm ~]# su - zdmuser 

[zdmuser@zdm ~]$ cd /home/zdmuser/zdminstall 

# Descompacte o binário do ZDM fornecido pela Oracle 

[zdmuser@zdm zdminstall]$ unzip zdm_home.zip 

 

# Executando o instalador em modo de configuração do serviço 

[zdmuser@zdm zdminstall]$ ./zdminstall.sh setup \ 

  oraclehome=/home/zdmuser/zdmhome \ 

  oraclebase=/home/zdmuser/zdmbase \ 

  ziploc=/home/zdmuser/zdminstall/zdm_home.zip

  -zdm 


1.3 Validação do Serviço ZDM 


Para confirmar que o orquestrador está ativo e pronto para receber comandos via CLI (zdmcli): 

codeBash 

[zdmuser@zdm ~]$ $ZDMHOME/bin/zdmservice status 


Passo 2: Configuração da Conectividade e Ferramentas OCI no ZDM 


Para que o ZDM consiga mover os arquivos de backup via nuvem, precisamos configurar o OCI CLI e criar um repositório de armazenamento (Object Storage). 


2.1 Configurando o OCI CLI 


No host do ZDM, execute a ferramenta de configuração interativa do CLI para apontar sua tenancy, usuário e região: 

codeBash 

[zdmuser@zdm ~]$ oci setup config 

(Durante o assistente, informe o seu User OCID, Tenancy OCID e região da OCI. Insira também a criação automática de chaves de API). 


2.2 Criando o Bucket de Trânsito no Object Storage 


Crie o container na nuvem que servirá de "ponte" temporária para os arquivos RMAN: 

codeBash 

[zdmuser@zdm ~]$ oci os bucket create \ 

  --compartment-id <seu_compartment_ocid> \ 

  --name zdm-migration-bucket \ 

  --storage-tier Standard 


Passo 3: Preparação do Destino (ExaCS / Database System na OCI) 


No lado do destino (seja um DB System em VM ou um Exadata Database Service), a infraestrutura lógica de banco precisa estar preparada para receber o container. 


  1. Criação do Database Home: No console da OCI, certifique-se de que o Database Home de destino (ex: versão 19c ou 23ai) esteja devidamente provisionado e com as mesmas opções de patch da origem ou superior. 


  2. Validação de Portas de Rede: Abra as regras de segurança (Security Lists e Network Security Groups) na VCN da OCI para liberar as portas de Listener (1521 ou customizada) e SSH (22) vindas do IP do ZDM Server e do Servidor On-Premises. 


Passo 4: Construção do Response File (Arquivo de Resposta do ZDM) 


O ZDM centraliza as regras de migração em um arquivo de parâmetros (.rsp). Para uma migração física com conversão de Non-CDB para PDB (Multitenant), criamos o arquivo zdm_physical_pdb.rsp: 


codeIni 

# Configurações do Banco de Destino na OCI 

TGT_DB_UNIQUE_NAME=EXADB_PDB 

TGT_DB_SYS_PASSWORD=<senha_do_sys_admin_destino> 

 

# Método de Migração e Transporte 

MIGRATION_METHOD=OFFLINE_PHYSICAL 

DATA_TRANSFER_MEDIUM=OSS 

PLATFORM_TYPE=EXACS 

 

# Credenciais e Endpoints do Object Storage (OCI) 

OPC_CONTAINER=zdm-migration-bucket 

 

# Parâmetros de Conversão Arquitetural (O Pulo do Gato) 

NONCDBTOPDB_CONVERSION=TRUE 

ZDM_NONCDBTOPDB_PDB_NAME=MIG_PDB


Passo 5: Executando a Avaliação Pré-Migração (Dry Run) 


Antes de disparar a cópia de dados, o ZDM executa rotinas automatizadas de Prechecks para certificar que o ambiente está 100% íntegro. Rode o comando com a tag -eval: 


codeBash 

[zdmuser@zdm ~]$ $ZDMHOME/bin/zdmcli migrate database \ 

  -rsp /home/zdmuser/zdm_physical_pdb.rsp \ 

  -sourcedb orcl_onprem \ 

  -sourcenode onprem-db01.empresa.local \ 

  -srcauth zdmauth \ 

  -srcarg1 user:opc \ 

  -srcarg2 identity_file:/home/zdmuser/.ssh/id_rsa \ 

  -srcarg3 sudo_location:/usr/bin/sudo \ 

  -tgtauth zdmauth \ 

  -tgtarg1 user:opc \ 

  -tgtarg2 identity_file:/home/zdmuser/.ssh/id_rsa \ 

  -tgtarg3 sudo_location:/usr/bin/sudo \ 

  -eval 


Caso todos os testes retornem PASSED, o ambiente está validado para a execução real. 


Passo 6: Execução Real da Migração com ZDM


Para iniciar a migração de fato, remova a flag -eval e execute o comando definitivo. 

O ZDM vai automaticamente executar as fases de: 


  1. Validação de pré-requisitos finais. 

  2. Configuração do ambiente RMAN na origem e destino. 

  3. Backup do banco on-premises direto para o Object Storage da OCI (zdm-migration-bucket). 

  4. Restauração e recuperação do banco no Exadata de destino. 

  5. Execução automática da rotina de conversão de Non-CDB para Pluggable Database (PDB) no ambiente Multitenant. 

codeBash 

[zdmuser@zdm ~]$ $ZDMHOME/bin/zdmcli migrate database \ 

  -rsp /home/zdmuser/zdm_physical_pdb.rsp \ 

  -sourcedb orcl_onprem \ 

  -sourcenode onprem-db01.empresa.local \ 

  -srcauth zdmauth \ 

  -srcarg1 user:opc \ 

  -srcarg2 identity_file:/home/zdmuser/.ssh/id_rsa \ 

  -srcarg3 sudo_location:/usr/bin/sudo \ 

  -tgtauth zdmauth \ 

  -tgtarg1 user:opc \ 

  -tgtarg2 identity_file:/home/zdmuser/.ssh/id_rsa \ 

  -tgtarg3 sudo_location:/usr/bin/sudo 


Monitoramento do Progresso: 


Para acompanhar o andamento de cada fase da migração em tempo real, utilize o ID do job retornado pelo comando anterior: 

codeBash 

[zdmuser@zdm ~]$ $ZDMHOME/bin/zdmcli query job -jobid <numero_do_job> 



Comentários


bottom of page