Criação e Gerenciamento de PDBs: um mergulho técnico e prático no coração do Oracle Multitenant

Exploração prática e aprofundada da criação e gestão de PDBs na arquitetura multitenant do Oracle, com foco técnico e experiência real como DBA.

Criação e Gerenciamento de PDBs: um mergulho técnico e prático no coração do Oracle Multitenant

Como profissional com larga vivência na administração de bancos de dados Oracle, especialmente em ambientes corporativos de missão crítica, é impossível não reconhecer a revolução trazida pela arquitetura multitenant do Oracle Database. E no centro dessa transformação estão os PDBs (Pluggable Databases), estruturas versáteis, seguras e cada vez mais indispensáveis para quem busca escalabilidade, isolamento lógico e gerenciamento eficiente de múltiplas aplicações em um mesmo CDB (Container Database).

A criação de um PDB é mais do que apenas executar um comando, é entender o ecossistema técnico por trás da arquitetura multitenant e suas implicações no armazenamento, na segurança e na performance do ambiente Oracle. Ao longo da minha jornada como DBA Oracle, enfrentei diversas situações em que o conhecimento aprofundado das nuances dos PDBs foi o diferencial entre um ambiente estável e um cenário de colapso técnico iminente.

Compreendendo os tipos de PDBs

No contexto de ambientes multitenant, cada PDB funciona como uma instância independente dentro do CDB. Podemos ter diversos tipos de PDBs: os tradicionais, criados diretamente a partir do PDB$SEED; os Application PDBs, conectados a um Application Root, permitindo compartilhamento de objetos entre aplicações; os Proxy PDBs, que redirecionam comandos via DBLink para um PDB remoto; e ainda os templates como o Application Seed, além do próprio PDB$SEED, que é inviolável e serve de modelo base para novas criações.

Cada um desses tipos tem seu propósito, seus limites e suas boas práticas de uso. Saber escolhê-los e manipulá-los corretamente exige, mais do que leitura de documentação, vivência em ambientes de produção com requisitos reais.

Criando PDBs na prática: comandos e parâmetros

A criação de um novo PDB é feita, em sua forma mais básica, com o comando:

CREATE PLUGGABLE DATABASE nome ADMIN USER admin IDENTIFIED BY senha;

Esse comando copia os arquivos do PDB$SEED para uma nova localização, definindo o novo PDB em estado MOUNTED. A partir daí, basta executarmos um ALTER PLUGGABLE DATABASE nome OPEN para torná-lo acessível.

Entretanto, a realidade é sempre mais complexa. É necessário avaliar se o ambiente está com OMF (Oracle Managed Files) habilitado, pois isso influencia diretamente o uso das cláusulas FILE_NAME_CONVERT e CREATE_FILE_DEST, que definem o caminho e a convenção de nomes dos arquivos do PDB.

Em ambientes sem OMF, a cláusula FILE_NAME_CONVERT é essencial para redirecionar os caminhos dos arquivos copiados. Já a cláusula CREATE_FILE_DEST permite definir um local padrão para o armazenamento dos arquivos no PDB recém-criado, mesmo quando o CDB root não possui OMF habilitado. E quando essas duas cláusulas são usadas em conjunto, há uma ordem de precedência bem definida que impacta diretamente o resultado final.

Segurança e papéis administrativos

Durante a criação, o usuário ADMIN é automaticamente vinculado à role PDB_DBA, que possui os privilégios básicos, como CREATE PLUGGABLE DATABASE e CREATE SESSION. Caso seja necessário ampliar os acessos, devemos adicionar roles adicionais à PDB_DBA, e não diretamente ao usuário. Essa separação é fundamental para manter a segurança e a governança das permissões dentro dos PDBs.

Além disso, a cláusula STORAGE nos permite definir limites de utilização de espaço no PDB. Com ela, é possível estipular valores para MAXSIZE, MAX_AUDIT_SIZE e MAX_DIAG_SIZE, controlando não apenas os dados armazenados pelos usuários, mas também os arquivos de auditoria e diagnósticos.

Table Spaces: boas práticas e isolamento

Outro ponto crítico é definir uma default tablespace para o novo PDB. Por padrão, caso essa cláusula não seja definida, a tablespace padrão será a SYSTEM, o que é uma má prática. Dados de usuários e dados administrativos devem estar separados. Ao definirmos uma TBS_DEFAULT, por exemplo, garantimos que todos os novos usuários criados no PDB utilizarão essa tablespace como destino padrão, promovendo organização, segurança e desempenho.

Gerenciando e excluindo PDBs

Com o crescimento do ambiente, é natural que surja a necessidade de remover PDBs não utilizados. Para isso, utilizamos o comando:

DROP PLUGGABLE DATABASE nome INCLUDING DATAFILES;

Essa instrução garante que todos os arquivos do PDB serão removidos, liberando espaço e mantendo a integridade do ambiente. Quando queremos manter os arquivos (para um possível unplug e posterior plug em outro CDB), podemos usar a cláusula KEEP DATAFILES.

Considerações finais

Gerenciar PDBs em ambientes multitenant exige mais do que dominar comandos. Exige entender a lógica por trás da arquitetura Oracle, saber interpretar erros oriundos de conflitos entre parâmetros e cláusulas, e principalmente, dominar o cenário real de produção, onde cada decisão pode impactar centenas de usuários e aplicações críticas.

Como DBA Oracle, testemunhei a importância dessa arquitetura para a consolidação de bancos, para ambientes com alta demanda por isolamento de dados, e para projetos que requerem flexibilidade sem abrir mão de performance. A criação, o gerenciamento e a remoção de PDBs são tarefas diárias, e dominá-las é parte essencial da maturidade técnica que todo administrador de banco de dados deve buscar.

Essa é a essência do nosso trabalho: transformar complexidade em controle, caos em estrutura, e dados em valor.

Reinaldo Rodrigues
Administrador de Banco de Dados, Especialista em Oracle e Sistemas Corporativos