Por Raúl Antonio Molina Alvarenga
07 de Octubre de 2022
Cuando Comenzó la tecnología de Multitenant, fue como un giro de timón, algo complejo de entender, y para mi existía una analogía que encontraba algo cierta, comparaba Multitenant como SQL Server, algo que un sostengo, aquí les explico mi analogía:
- la CDB$ROOT, es como la master y msdb del SQLSERVER,
- La instancia de la base de datos es como el motor en los Servicios de Windows ejecutandose si se apaga ninguna Base de Datos atachada se puede acceder
- Las bases de datos , pueden desconectarse y posteriormente pegarse o atacharse, a la misma Instancia Principal o otra en otro servidor
- Pueden crearse backups de las bases de datos
- No deben existir Objetos de usuario en la CDB$ROOT y/o la master o msdb.
Habiendo aclarado mi analogía, expongo el acceso.
Parecía complejo y tedioso el conectarse a una PDB en el mismo servidor de Base de datos al inicio, pues si no usábamos TNSNAMES o easy connect, solo podíamos cambiándonos de contenedor en la sesión así:
[oracle@nodo1 ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Fri Oct 7 15:57:33 2022 Version 19.15.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Connected to: Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production Version 19.15.0.0.0 SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 MYPLUGDB3_NEW READ WRITE NO SQL>
SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 MYPLUGDB3_NEW READ WRITE NO SQL> alter session set container=MYPLUGDB3_NEW; Session altered. SQL> show con_name CON_NAME ------------------------------ MYPLUGDB3_NEW SQL>
Ahora bien, desde 18c, es posible definir una nueva variable de ambiente, que permita conectarse directamente a una Base de Datos sin necesidad de pasar primero por el contenedor raíz, así:
[oracle@nodo1 ~]$ export ORACLE_PDB_SID=MYPLUGDB3_NEW
[oracle@nodo1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Oct 7 16:19:03 2022
Version 19.15.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to:
Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
Version 19.15.0.0.0
SQL> show con_name
CON_NAME
------------------------------
MYPLUGDB3_NEW
SQL>
Este formato permite, inclusive ejecutar expdp directamente en la PDB o Base de Datos pluggable sin necesidad de usar tnsnames.
Espero les sirva.
#OracleTipsSV
Saludos.