Modernização e Migração Física/Multitenant com ZDM
- Andrey Schulz
- 15 de mai.
- 4 min de leitura
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 ~]$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
[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.
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.
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 \
-targetnode exacs-node01.oci.oraclecloud.com \
-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:
Validação de pré-requisitos finais.
Configuração do ambiente RMAN na origem e destino.
Backup do banco on-premises direto para o Object Storage da OCI (zdm-migration-bucket).
Restauração e recuperação do banco no Exadata de destino.
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 \
-targetnode exacs-node01.oci.oraclecloud.com \
-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