Application Containers and Seeds

O application container é um componente opcional do banco CDB. Ele pode armazenar tando dados com metadados. Cada CDB pode ter nenhum um ou mais application containers.

Dentro do application container, no root, podemos também criar ou plugar PDBs e até mesmo tem um SEED para cria rapidamente bancos PDBs.

A imagem abaixo ilustra bem o que seria um application container dentro de um CDB.

Podemos perceber no imagem acima que o nosso banco CDB, o CDB$ROOT tem um application containner. o CDB$ROOT tem apenas um PDB SEED e o application container tem 2 user PDB e o SEED, que nesse caso é chamado de Application Seed.

Mas, pode vir a pergunta agora. Por que podemos querer criar um Application Container?

Bem, fazer uso desse componente trás algumas vantagens, dependendo do caso de uso.

Por exemplo. Imagine que temos uma série de PDBs que tem o mesmo objetivo. Como suportar um aplicação de vendas por exemplo. Com esses PDBs estando no mesmo application container, eles podem compartilhar dados através do application container. Nesse componente podemos criar tabelas, views e etc e todos os PDBs que estão conectados neles poderão usar. Dessa foram podemos cadastrar uma única tabela de endereço e todos os PDBs poderão utilizar, e ela sempre esta atualizada e etc. É como se fosse CDB para uma aplicação específica dentro do CDB.

O Application root possibilita criamos também o que é chamado de application. Essa aplicação é um conjunto de dados e metadados versionados e nomeados. Que poderá incluir common users e common objects. Na imagem acima é como se no application root tivesse uma application com o nome sales_app.

Um caso de uso seria criar um data warehouse lógico. Onde cada PDB dentro do application container irá ter dados que representam apenas um trimestre de um determinado ano. Assim, podemos criar uma query que agrega dados dos trimestres desejados utilizando a cláusula CONTAINERS().

Fazendo isso, quando for executado um ETL, ele irá afetar apenas o PDB referente ao trimestre e também irá fazer melhores planos de execução.

O application root server como container para plugar PDBs assim como o CDB$ROOT. Mas diferentemente do cdb root, no application root podemos criar e armazenar common objects que servirão para todos os PDBs conectados nele.

Vejamos como criar um Application Container no código abaixo:

$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Mar 7 10:45:46 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> CREATE PLUGGABLE DATABASE terciocosta_ac AS APPLICATION CONTAINER ADMIN USER terciocostaadm IDENTIFIED BY oracle;

Pluggable database created.

SQL> ALTER PLUGGABLE DATABASE terciocosta_ac OPEN;

Pluggable database altered.

Pronto, agora temos o nosso primeiro application container. Mas, ainda não tem nada nele, vamos criar um PDB nele. Para criar no application container é somente fazer com que ele seja o container atual da sessão.

SQL> ALTER SESSION SET CONTAINER = terciocosta_ac;

Session altered.

SQL> CREATE PLUGGABLE DATABASE pdb1_terciocosta_ac ADMIN USER terciocosta IDENTIFIED BY oracle;

Pluggable database created.

SQL> ALTER PLUGGABLE DATABASE pdb1_terciocosta_ac OPEN READ WRITE;

Pluggable database altered.

Pronto, PDB criado no application container. Na imagem acima, e eu também disse, que é possível criar um application seed. Irei mostrar agora como fazer isso. Ele pode ser importante, pois podemos ter uma application no root, e dessa forma, criando o PDB com o appliation seed, ele já vai sincronizado com a application. Veja como é fácil criar o application seed a partir do PDB$SEED, e logo depois sincronizar ele com o root.

SQL> ALTER SESSION SET CONTAINER = terciocosta_ac;

Session altered.

SQL> CREATE PLUGGABLE DATABASE AS SEED ADMIN USER acseedadm IDENTIFIED BY oracle;

Pluggable database created.

SQL> ALTER PLUGGABLE DATABASE terciocosta_ac$SEED OPEN;

Pluggable database altered.

SQL> ALTER SESSION SET CONTAINER=terciocosta_ac$SEED;

Session altered.

SQL> ALTER PLUGGABLE DATABASE APPLICATION ALL SYNC;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;

Pluggable database altered.

SQL> ALTER PLUGGABLE DATABASE OPEN READ ONLY;

Pluggable database altered.

Conectamos no application container. Executamos o CREATE PLUGGABLE DATABE AS SEED. Depois abrimos o database, pois sabemos que um pluggable database precisa ser aberto logo depois de criado para ser usável. Abrimos ele em read write para logo depois mudar o nosso container diretamente para o SEED e assim sincronizar o que tiver na application. Fechamos o SEED e abrimos em READ ONLY, que é o modo normal de um SEED.

Caso a application sofra alguma atualização, devemos fazer o mesmo processo novamente, de abrir em read write e sincronizar novamente. Assim os bancos criados a partir de application seed já estão com a última versão da application.

Bem, foi visto até aqui uma introdução ao Application Container, o que ele é, como criar e para que serve. Criamos um application seed e e um application PDB também.

Próximos posts veremos um pouco mais sobre application container.

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação OCA 12c, Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Marcado com: , , ,
Publicado em Administração, Multitenant

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Esse Blog é reconhecido pela
Sou um
Certificações
Sou articulista

Clique para seguir este blog e receber notificações via email de novos posts.

Tércio Costa

Tércio Costa

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação OCA 12c, Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Links Pessoais

Serviços verificados

Visualizar Perfil Completo →

Total de Visualizações da Página
  • 175.432 Visualizações
%d blogueiros gostam disto: