DATAFILE e TABLESPACE

Per visualizzare tutti i datafile avviare i pdbs e posizionarsi sotto il Root Container.

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT

SQL> show pdbs

    CON_ID CON_NAME             OPEN MODE            RESTRICTED
---------- ------------------------------ ---------- ---------------------------------
         2 PDB$SEED                       READ ONLY             NO
         3 ORCLPDB                        READ WRITE           NO


SQL> select file_name,file_id,tablespace_name,con_id 
    from CDB_DATA_FILES;

Verranno visualizzati i data file e tablespace del container e dei pdb.


Se invece si usa la vista dba_data_files verranno solo visualizzati solo i datafile del container.

SQL> select file_name,file_id,tablespace_name 
    from DBA_DATA_FILES;


Se ci colleghiamoci come pdb ed è aperto le due query di prima restituiscono lo stesso risultato.


Se invece il pdb è spento, compare il seguente messaggio di errore:

SQL> alter pluggable database orclpdb close;
Pluggable database altered.

SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        MOUNTED

SQL> alter session set container=orclpdb;

Session altered.

SQL> select * from cdb_data_files;
select * from cdb_data_files
              *
ERROR at line 1:
ORA-01219: database or pluggable database not open: queries allowed on fixed
tables or views only


SQL> select * from dba_data_files;
select * from dba_data_files
              *
ERROR at line 1:
ORA-01219: database or pluggable database not open: queries allowed on fixed
tables or views only

In questo caso il db non legge il dizionario dati conenuto nel tablespace System, perchè il pdb è chiuso e quindi non possiamo interrogare le due viste. 
Allora in questo caso usare le Dynamic View come 

SQL> select * from v$datafile;



Veniamo ai Tablespace

SQL> show con_name

CON_NAME
------------------------------
ORCLPDB

SQL>  select tablespace_name, block_size, status, contents, con_id 
     from CDB_TABLESPACES;

Anche con il pdb chiuso la seguente vista restituisce un risultato.

SQL> select * from v$tablespace;

       TS# NAME                           INC BIG FLA ENC     CON_ID
---------- ------------------------------------------------------ --- --- --- --- ----------
         0 SYSTEM                         YES NO  YES              3
         1 SYSAUX                         YES NO  YES              3
         2 UNDOTBS1                    YES NO  YES              3
         3 TEMP                               NO  NO  YES              3
         5 USERS                            YES NO  YES              3

Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database