domingo, 25 de mayo de 2014

Oracle 12c : Métodos para crear Pluggable databases (PDBs) - Clonación



Me gustaría poder explicar los diferentes métodos que existen para poder crear bases de datos Pluggable (PDB).

¿Qué es un Pluggable Database?
Un Pluggable Database o PDB es una base de datos que se comporta como un contenedor mas dentro de la arquitectura Container Database (CDB).  Es una colección lógica de objetos: usuarios, tablas, índices, etc.; independiente de otros PDBs.
Para las aplicaciones un PDB se muestra como una base de datos individual, como si tuviera la arquitectura de versiones anteriores.


Como una base de datos, el PDB se compone de una estructura física de datafiles (solo utilizados por el PDB) que lógicamente componen los tablespaces.  El PDB está compuesto de tablespaces SYSTEM y SYSAUX que contienen la metadata asociada al PDB.

Cada PDB contiene información totalmente independiente de los otros PDBs y del CDB.  Esta característica hace que los PDBs puedan moverse fácilmente de un CDB a otro y clonar su información en otro PDB dentro de un CDB.

Existen dos métodos principales para crear un PDB
-  Clonado de una base de datos PDB ya existente.
-  Plug-in de un PDB a un nuevo CDB.


Para los métodos de clonado tenemos las siguientes opciones

Creación de un PDB basado en el SEED PDB
Para este método haremos uso de la funcionalidad principal del contendor SEED.  Creamos un PDB de forma rápida clonando en el contenedor SEED PDB; creado al momento de la creación de la base de datos CDB.

Las actividades que involucra la creación de un nuevo PDB a partir del Seed son:
-  Copiado de los datafiles, de los tablespaces del PDB Seed, en el directorio donde se crea el nuevo PDB.
-  Creación de los usuarios SYS y SYSTEM en el nuevo PDB.
-  Creación de un usuario local que tendrá el rol PDB_DBA.  Este usuario toma el rol de administrador del PDB.
-  Se crea un nuevo servicio con el nombre del PDB para poder realizar conexiones.

Creación por SQLPLUS
Para la creación del PDB por Sqlplus utilizamos el contenedor CDB1

 







Creamos la base de datos PDB1


El usuario admin01 es al que se le asigna el rol PDB_DBA.

Para verificar que se haya creado correctamente el PDB, revisamos una nueva vista del diccionario de datos V$PDBS












Como se puede observar la base de datos PDB1 se encuentra en estado MOUNTED.  
Para poder utilizarla es necesario colocarla en estado Open.

La primera vez que un PDB abre, realiza una sincronización con el contenedor principal ROOT. Durante la sincronización se realiza:
-  Creación de los usuarios comunes dentro del PDB (Ej.; sys y system).
-  Creación de los punteros a la metadata del tablespace SYSTEM del Root.  Esto se realiza para poder utilizar la metadata propia de una Base de datos, sin necesidad de copiarla al tablespaces SYSTEM del PDB.
-  Revisión de compatibilidad entre el CDB y el PDB. Si hubieran errores o alertas, es posible revisarlas en la vista PDB_PLUG_IN_VIOLATIONS









Ya tenemos una nueva PDB lista para ser utilizada.













Creación por DBCA
Para crear un PDB desde el SEED por el DBCA realizamos lo siguiente
Elegimos la opción Manage Pluggable Databases














Elegimos la opción Create a Pluggable Database












Seleccionamos el CDB donde se desea crear el nuevo PDB









Para crear el PDB a partir del SEED elegimos la primera opción


Definimos el nombre del PDB, el directorio donde se almacenaran los datafiles y creamos el usuario con el rol PDB_DBA.

















Cuando finaliza la creación del PDB












Procedemos a revisar si el PDB se encuentra lista para ser utilizado.














Creación de un PDB basado en otro PDB
El método es muy parecido a crear un PDB desde el SEED sin embargo, la creación de este nuevo PDB hereda todas las características que nosotros hayamos configurado en el PDB origen.

Revisamos los usuarios y tablespaces del PDB origen - PDB1.















Es necesario colocar la base de datos PDB1 en estado Read Only. 
Si PDB1 no se coloca en Read Only, la base de datos destino PDB3 se creará en estado Read Only y no se podrá modificar.











Procedemos a crear la base de datos PDB3 a partir de PDB1

Procedemos a regresar a la base de datos PDB1 a su estado original












Abrimos la base de datos PDB3 para poder revisar su configuración.








Revisamos si la base de datos PDB3 tiene la misma configuración que PDB1















Como se puede observar la creación de un nuevo PDB dentro de un Contenedor CDB es muy fácil y rápida gracias a los métodos de clonado.

En el siguiente post explicaré mas a detalle los métodos de Plug-in y Unplug para crear nuevos PDBs.

Espero les pueda servir de ayuda.

No hay comentarios.:

Publicar un comentario