Sua pesquisa não corresponde a nenhum resultado.
Sugerimos que você tente o seguinte para ajudar a encontrar o que procura:
Com a introdução da arquitetura multitenantna versão 12c do Oracle Database, passamos a ter múltiplos pluggabledatabases (PDBs) abaixo de um único container database (CDB). Anterior a versão 12.1.0.2, sempre que um container database era iniciado todos os pluggabledatabases associados permaneciam por padrão no estado MOUNT (com exceção do pluggable database SEED que fica em READ-ONLY).
Um mecanismo muito utilizado até então para se iniciar os pluggabledatabases eram triggers de startup. Quando o container era iniciado a trigger era disparada e todos os pluggabledatabases configurados abaixo da trigger eram automaticamente alterados para READ WRITE ou READ ONLY.
create or replace trigger startup_pdbs
after startup on database
begin
execute immediate 'alter pluggable database DBHMG1 open';
end;
/
Em um container database (CDB) com vários pluggabledatabases (PDBs) associados a solução começava a se tornar mais complexa, pois cada PDB poderia ter seu OPEN MODE diferente dos demais (MOUNTED, READ WRITE, READ ONLY). A cada necessidade de se disponibilizar um PDB em outro modo se tornava necessário também alterar a trigger manualmente ajustando o novo estado do PDB.
Iniciando na versão 12.1.0.2, a Oracle disponibilizou a featurepdb_save_or_discard_state junto ao comando ALTER PLUGGABLE DATABASE onde permite que o estado (state) de um PDB seja salvo ou descartado, agora sempre que o CDB é iniciado os pluggabledatabases (PDBs) voltam ao seu estado em que foram salvos (READ WRITE/READ ONLY).
Se um PDB não possui estado salvo ou ele foi descartado, então por default o estado dele será MOUNT quando o CDB for novamente iniciado.
SAVE: Salva o atual estado de OPEN MODE do(s) PDB(s) de modo que seja mantido após o restart do CDB;
DISCARD: Descarta o estado salvo do(s) PDB(s) resultando no retorno ao padrão MOUNTED;
INSTANCES_CLAUSE: Adicionado ao comando, permite salvar/descartar o estado de uma instance específica ou para todas as instances (RAC) - instances = ('cdb1','cdb2'). Se omitido, modifica o estado do PDB apenas para a instance corrente;
ALL: Salva/descarta o estado para todos pluggable database;
ALL EXCEPT: Salva/descarta o estado para todos pluggabledatabases exceto pelos listados na cláusula EXCEPT;
Demonstrações de uso:
-- Verificando o estado corrente dos pluggabledatabases
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DBHMG1 READ WRITE NO
4 DBHMG2 READ ONLY NO
5 DBHMG3 READ WRITE YES
Existem diferentes estados (open mode) para os pluggabledatabases, incluindo o DBHMG3 em modo restrito.
-- Verificando o estado salvo dos pluggabledatabases
SQL> select con_name, instance_name, state, restricted from dba_pdb_saved_states; norowsselected
Neste momento nenhum PDB possuía seu estado salvo, ou seja, se o container database (CDB) for reiniciado, todos os pluggabledatabases irão ficar em estado MOUNT.
-- Salvando o estado de apenas um pluggable database
SQL> alter pluggable database DBHMG1 save state; Pluggable database altered.
-- Salvando o estado de todos os pluggabledatabases exceto o DBHMG3
SQL> alter pluggable database ALL EXCEPT DBHMG3 save state; Pluggable database altered.
-- Salvando o estado de todos os pluggabledatabases
SQL> alter pluggable database ALL save state; Pluggable database altered.
-- Verificando o estado salvo dos pluggabledatabases
SQL> select con_name, instance_name, state, restricted from dba_pdb_saved_states;
CON_NAME INSTANCE_NAME STATE RES
------------------------ --------------- -------------- -----
DBHMG3 cdb OPEN YES
DBHMG1 cdb OPEN NO
DBHMG2 cdb OPEN READ ONLY NO
O retorno da DBA_PDB_SAVED_STATES representa o estado salvo de cada PDB, se um outro PDB existir e o mesmo não for listado significa que ele não possui nenhum estado salvo até o momento, desta forma, um restart do container resultaria no retorno dele ao estado default, MOUNT.
-- Forçando um restat do container
SQL> startup force
ORACLE instance started.
Total System Global Area 629145600 bytes
Fixed Size 2927528 bytes
Variable Size 281019480 bytes
Database Buffers 339738624 bytes
Redo Buffers 5459968 bytes
Database mounted.
Database opened.
-- Verificando o estado corrente dos pluggabledatabases
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DBHMG1 READ WRITE NO
4 DBHMG2 READ ONLY NO
5 DBHMG3 READ WRITE YES
Com o restart do CBD, todos os pluggabledatabases voltaram ao seu estado salvo.
Sempre que o estado de um PDB for alterado e este precise ser persistido após um restart do container, execute um novo SAVE STATE, sem o SAVE STATE ele voltara ao antigo estado salvo.
-- Descartando o estado salvo de um pluggalbe database
SQL> alter pluggable database DBHMG3 discard state; Pluggable database altered.
-- Verificando o estado salvo dos pluggabledatabases
SQL> select con_name, instance_name, state, restricted from dba_pdb_saved_states;
CON_NAME INSTANCE_NAME STATE RES
------------------------------ --------------- -------------- ---
DBHMG1 cdb OPEN NO
DBHMG2 cdb OPEN READ ONLY NO
-- Forçando um restat do container
SQL> startup force
ORACLE instance started.
Total System Global Area 629145600 bytes
Fixed Size 2927528 bytes
Variable Size 281019480 bytes
Database Buffers 339738624 bytes
Redo Buffers 5459968 bytes
Database mounted.
Database opened.
-- Verificando o estado corrente dos pluggabledatabases
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DBHMG1 READ WRITE NO
4 DBHMG2 READ ONLY NO
5 DBHMG3 MOUNTED
A mudança proporcionada através da featurepdb_save_or_discard_state, embora pequena, representa uma melhoria significativa no mecanismo de gerenciamento dos pluggabledatabases(PDBs) principalmente aosDBAs que possuem muitos pluggabledatabases para gerenciar abaixo de um único container database (CDB).
https://docs.oracle.com/database/121/NEWFT/chapter12102.htm#NEWFT514 https://docs.oracle.com/database/121/SQLRF/statements_2008.htm#CCHGJJHH
Anderson Graf, Bacharel em Sistemas de Informação e MBA em Gestão de Banco de Dados Oracle. Trabalha com banco de dados Oracle desde 2009, é Oracle OCP 10g/11g/12c, OCS Linux, Database e Cloud Control. OCE Performance Tuning; OPNCS. É um entusiasta da tecnologia Oracle e autor dos blogs andersondba.com.br e oraclehome.com.br.
Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.