Para melhor visualização, recomendo resolução de no mínimo 1280 x 800 e navegador Mozilla Firefox


quinta-feira, 2 de maio de 2019

Oracle - Acessando a view V$SESSION em um ambiente Multitenant

Por Eduardo Legatti

Olá,

Nos ambientes de banco de dados Multitenant a partir do Oracle 12c podemos ter um ou mais bancos de dados plugáveis em uma instância CDB$ROOT. Utilizando o Oracle 18c a seguir, irei mostrar que a view dinâmica de desempenho V$SESSION retorna as sessões de todos os bancos de dados quando executada a partir do banco de dados CDB$ROOT e, quando executada a partir de um banco de dados PDB, irá ser retornado apenas as sessões conectadas apenas neste PDB.

Abaixo é possível perceber que ao conectar no banco de dados CDB$ROOT podemos visualizar todos os datafiles de todos os bancos de dados CDB e PDBs através da view CDB_DATA_FILES. Ao acessar a view V$SESSION também é possível visualizar todas as sessões de todos os bancos de dados.

C:\>sqlplus sys/manager@bdserver:1521/ORCLCDB as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Qui Mai 2 9:35:50 2019

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

Conectado a:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production


SQL> select sys_context('USERENV','CON_NAME') from dual;

SYS_CONTEXT('USERENV','CON_NAME')
---------------------------------
CDB$ROOT

SQL> select file_name,file_id,tablespace_name,bytes,status from CDB_DATA_FILES;

FILE_NAME                                                FILE_ID TABLESPACE_NAME            BYTES STATUS
----------------------------------------------------- ---------- ------------------- ------------ -----------
/opt/oracle/oradata/ORCLCDB/users01.dbf                        7 USERS                    5242880 AVAILABLE
/opt/oracle/oradata/ORCLCDB/undotbs01.dbf                      4 UNDOTBS1               319815680 AVAILABLE
/opt/oracle/oradata/ORCLCDB/system01.dbf                       1 SYSTEM                 891289600 AVAILABLE
/opt/oracle/oradata/ORCLCDB/sysaux01.dbf                       3 SYSAUX                 555745280 AVAILABLE
/opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf              9 SYSTEM                 283115520 AVAILABLE
/opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf             10 SYSAUX                 387973120 AVAILABLE
/opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf            11 UNDOTBS1               104857600 AVAILABLE
/opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf              12 USERS                    5242880 AVAILABLE

SQL> select sid,serial#,service_name,username,status,osuser,terminal,program
  2    from v$session
  3   where osuser='eduardo.legatti';

   SID      SERIAL# SERVICE_NAME     USERNAME      STATUS     OSUSER               TERMINAL          PROGRAM
------ ------------ ---------------- ------------- ---------- -------------------- ----------------- ---------------
      38         9924 orclpdb1       SCOTT         INACTIVE   eduardo.legatti      SRVNOT001         sqlplus.exe
     262        16107 ORCLCDB        SYS           INACTIVE   eduardo.legatti      SRVNOT001         sqlplus.exe
     265        28378 orclpdb1       ADAM          INACTIVE   eduardo.legatti      SRVNOT001         sqlplus.exe
     273         7253 orclpdb1       SYS           INACTIVE   eduardo.legatti      SRVNOT001         sqlplus.exe
     275        59715 ORCLCDB        SYS           ACTIVE     eduardo.legatti      SRVNOT001         sqlplus.exe


Ao conectar em um banco de dados PDB específico as views irão mostrar apenas informações do banco de dados PDB específico. 

C:\>sqlplus sys/manager@bdserver:1521/ORCLPDB1 as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Qui Mai 2 9:48:54 2019

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

Conectado a:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production

SQL> select sys_context('USERENV','CON_NAME') from dual;

SYS_CONTEXT('USERENV','CON_NAME')
---------------------------------
ORCLPDB1

SQL> select file_name,file_id,tablespace_name,bytes,status from CDB_DATA_FILES;

FILE_NAME                                             FILE_ID TABLESPACE_NAME           BYTES STATUS
--------------------------------------------------- --------- ------------------ ------------ -----------
/opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf           9 SYSTEM                283115520 AVAILABLE
/opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf          10 SYSAUX                387973120 AVAILABLE
/opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf         11 UNDOTBS1              104857600 AVAILABLE
/opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf           12 USERS                   5242880 AVAILABLE


SQL> select sid,serial#,service_name,username,status,osuser,terminal,program
  2    from v$session
  3   where osuser='eduardo.legatti';

   SID     SERIAL# SERVICE_NAME    USERNAME     STATUS     OSUSER             TERMINAL      PROGRAM
------ ----------- --------------- ------------ ---------- ------------------ ------------- --------------
    38       9924 orclpdb1         SCOTT        INACTIVE   eduardo.legatti    SRVNOT001     sqlplus.exe
   265      28378 orclpdb1         ADAM         INACTIVE   eduardo.legatti    SRVNOT001     sqlplus.exe
   273       7253 orclpdb1         SYS          ACTIVE     eduardo.legatti    SRVNOT001     sqlplus.exe



Nenhum comentário:

Postagens populares