Oracle Database 12c – Multitenant: Creación de una Pluggable DataBase
03/09/2014 -
La creación de una base de datos “plugable” es el siguiente paso natural posterior a la creación de una base de datos “Container”, que ya explicábamos en este otro post. A continuación se explican los pasos para su creación. ¿Cómo se crean las bases de datos “plugables”? Para poder crear este tipo de base de datos, al ejecutar el dbca sería necesario elegir la opción “Manage Plugglabe Database” que aparece en el menú inicial.
Posteriormente “Create Pluggable Database”.
Y seguiría con la elección del contenedor o “CDB” donde se quiere crear.
Los pasos posteriores son prácticamente idénticos a versiones anteriores.
¿Y ahora qué?
Una vez que se ha finalizado con la creación de la PDB no se puede acceder a ella. Si nos fijamos en la última pantalla veremos que nos dice que se ha “enchufado” satisfactoriamente.
Si nos conectamos a la CDB que la contiene, SEED1 en nuestro caso, veremos que está en estado mount.
[oracle@localhost init.d]$ . oraenv
ORACLE_SID = [oracle] ? SEED1
The Oracle base has been changed from /u03/app2/oracle to /u01/app2/oracle
[oracle@localhost init.d]$ sqlplus /nologSQL*Plus: Release 12.1.0.1.0 Production on Mon Jun 9 15:34:56 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected.
SQL> SELECT NAME,OPEN_MODE FROM V$PDBS WHERE CON_ID > 2;NAME OPEN_MODE
—————————— ———-
PDB1 MOUNTED
Para poder conectar a “PDB1” es necesario abrirla de forma manual.
SQL> alter pluggable database PDB1 open;
Pluggable database altered.
SQL> SELECT NAME,OPEN_MODE FROM V$PDBS WHERE CON_ID > 2;
NAME OPEN_MODE
—————————— ———-
PDB1 READ WRITE
Ahora sí nos podemos conectar a “PDB1”:
SQL> alter session set container = pdb1;
Session altered.
No se puede configurar un autostart/autostop de las PDBs con dbstart/dbshut, sólo de las CDBs.
Para iniciarlas, se podría ejecutar la sentencia “alter pluggable database all open;”
- Desde el script del servicio oracle en /etc/init.d en la sección “start”.
- Con un trigger “AFTER STARTUP ON DATABASE”.
Para pararlas, se podría hacer lo mismo con “alter pluggable database all close;”
- Desde el script del servicio oracle en /etc/init.d en la sección “stop”.
- Con un trigger “BEFORE SHUTDOWN ON DATABASE”.
Seguramente haya más formas, y mejores, de realizarlo, pero es una buena forma de comenzar.