Changing the state of all PDBs and saving their states

Consultando o status dos PDBs:

[oracle@oel8 ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 18.0.0.0.0 - Production on Tue Mar 9 05:52:11 2021
Version 18.3.0.0.0
 
Copyright (c) 1982, 2018, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
 
SQL> col name format a10
SQL> SELECT NAME, OPEN_MODE FROM V$PDBS ORDER BY 1;
 
NAME       OPEN_MODE
---------- ----------
HIPOFISE1  READ WRITE
HIPOFISE2  MOUNTED
PDB$SEED   READ ONLY
 
SQL>

Alterando todos os PDBs:

SQL> ALTER PLUGGABLE DATABASE ALL CLOSE;
 
Pluggable database altered.
 
SQL> SELECT NAME, OPEN_MODE FROM V$PDBS ORDER BY 1;
 
NAME       OPEN_MODE
---------- ----------
HIPOFISE1  MOUNTED
HIPOFISE2  MOUNTED
PDB$SEED   READ ONLY

Por padrão, quando inicializamos um root container, os seus PDBs ficam no estado MOUNT. É possível alterar isso mudando os PDBs conforme exemplo abaixo:

SQL> ALTER PLUGGABLE DATABASE ALL OPEN;
 
Pluggable database altered.
 
SQL> ALTER PLUGGABLE DATABASE ALL SAVE STATE;
 
Pluggable database altered.
 
SQL> SELECT NAME, OPEN_MODE FROM V$PDBS ORDER BY 1;
 
NAME       OPEN_MODE
---------- ----------
HIPOFISE1  READ WRITE
HIPOFISE2  READ WRITE
PDB$SEED   READ ONLY
 
SQL> col con_name format a10
SQL> SELECT CON_NAME, STATE FROM CDB_PDB_SAVED_STATES;
 
CON_NAME   STATE
---------- --------------
HIPOFISE1  OPEN
HIPOFISE2  OPEN
 
SQL>

Desse modo, ao fazer o restart do root container, os PDBs serão abertos automaticamente:

SQL> SHOW CON_ID CON_NAME;
 
CON_ID
------------------------------
1
 
CON_NAME
------------------------------
CDB$ROOT
SQL> SHU IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP;
ORACLE instance started.
 
Total System Global Area 2466249080 bytes
Fixed Size                  8898936 bytes
Variable Size             671088640 bytes
Database Buffers         1778384896 bytes
Redo Buffers                7876608 bytes
Database mounted.
Database opened.
SQL> col name format a10
SQL> SELECT NAME, OPEN_MODE FROM V$PDBS ORDER BY 1;
 
NAME       OPEN_MODE
---------- ----------
HIPOFISE1  READ WRITE
HIPOFISE2  READ WRITE
PDB$SEED   READ ONLY
 
SQL>

Obs: Este procedimento foi criado pelo senhor Ahmed Baraka (www.ahmedbaraka.com) e foi apenas reproduzido por mim em um laboratório pessoal para fins de aprendizado.

Leave a Comment

Your email address will not be published.