Mostrando entradas con la etiqueta PDB. Mostrar todas las entradas
Mostrando entradas con la etiqueta PDB. Mostrar todas las entradas

29 noviembre 2017

Oracle 12C, ¿Que es Multitenant?

Introducción a las bases de datos de contenedores (CDB) y bases de datos conectables (PDB)

Este artículo se va a centrar en repasar los conceptos básicos de as novedades que Oracle 12c ha introducido desde su liberación de la release 1. Oracle 12c R1 (12.1) introdujo la opción Multitenant. Este artículo proporciona una descripción general básica de la opción multiusuario, con enlaces a otros artículos más detallados sobre dicha funcionalidad, que serán elaborados más adelante.

Introducción

La opción Multitenant representa uno de los mayores cambios arquitectónicos en la historia de la base de datos Oracle. Con esta novedad se  presentaron los conceptos de la base de datos de contenedores (CDB) y la base de datos conectable (PDB).

¿Que entendemos por CDB?

CDB  es el acrónimo de Base de Datos de Contenedores, en apariencia esto parece muy similar a una base de datos Oracle convencional, ya que contiene la mayoría de las partes funcionales con las que ya estará familiarizado (archivos de control, archivos de datos, deshacer, archivos temporales, registros de rehacer, etc.) esto es:
  • Controlfiles
  • Datafiles
  • Undo files
  • Tempfiles

También alberga el diccionario de datos para aquellos objetos que son propiedad del contenedor raíz y aquellos que son visibles para todos los PDB.

¿Que entendemos por CDB?


PDB es el acrónimo de Base de datos conectable, dado que el CDB contiene la mayoría de las partes que funcionan para la base de datos, el PDB solo necesita contener información específica para sí misma. No necesita preocuparse por los archivos de control, rehacer registros y deshacer, etc. En su lugar, está compuesto de archivos de datos y archivos temporales para manejar sus propios objetos. Esto incluye su propio diccionario de datos, que contiene información sobre solo aquellos objetos que son específicos del PDB. Desde Oracle 12.2 en adelante, un PDB debería, tener un tablespace undo local.

Esta división del diccionario de datos entre objetos comunes, en el contenedor raíz, y objetos específicos de PDB, en el diccionario de datos del PDB, es muy importante, porque esta separación es lo que le da a la opción multiusuario su flexibilidad. Desde la perspectiva del PDB, el diccionario de datos es la unión de los diccionarios de datos raíz y PDB, por lo que internamente el PDB se parece mucho a una base de datos Oracle normal. Por ejemplo, las vistas DBA_% y ALL_% dentro del PDB aparecen igual que cualquier base de datos que no sea CDB.

Oracle Managed Files (OMF) y Multitenant

Oracle recomienda el uso de Oracle Managed Files (OMF) cuando se usa la arquitectura Multitenant, ya que simplifica varias funciones. Parece que el uso de OMF es obligatorio para algunas funcionalidades, como la funcionalidad de Contenedores de aplicaciones en Oracle 12.2.

Creación de bases de datos conectables (PDB)

Dado que la mayor parte de las piezas de trabajo ya están presentes en el contenedor raíz, la creación de un nuevo PDB es una tarea comparativamente rápida y sencilla. Al crear un PDP completamente nuevo, el PDB se crea como una copia de un PDB inicial, por lo que solo toma el tiempo que los archivos tarden en copiarse.

Creación

En lugar de crear un nuevo PDB desde la semilla, puede clonar desde un PDB ya existente.

Clonación
También es posible crear clones en un CDB remoto.

Clonación remota


Esto no solo permite que las bases de datos se muevan fácilmente, sino que también proporciona una forma alternativa de parchear y actualizar a versiones futuras. Aquí puede encontrar un ejemplo del uso de desenchufar / complemento para realizar un parche. Aquí se describe una discusión general del mecanismo de desconexión / complemento.
La conversión de una base de datos que no es de CDB a una base de datos conectable implica obtener una descripción de la base de datos que no es de CDB y usarla para conectarla a un CDB como un nuevo PDB. Este método se describe aquí.

Reubicar una base de datos conectable (PDB)

Desde Oracle 12.2 en adelante, es posible reubicar un AP, moviéndolo de un CDB a otro. Esto es significativamente más simple que hacer un unplug / plugin convencional.


Actualizar una base de datos conectable (PDB)

Desde Oracle 12.2 en adelante, es posible actualizar un PDB clonado desde el PDB de origen, siempre que solo se haya abierto en modo de solo lectura.



Base de datos proxy conectable (PDB)

Desde Oracle 12.2 en adelante, es posible crear un servidor proxy PDB, que es un esqueleto PDB que envía SQL a un PDB remoto para ser procesado. Esto le permite tener un punto final local para una base de datos remota.


Contenedores de aplicaciones

Oracle 12.2 presenta el concepto de contenedores de aplicaciones, que actúan como un contenedor mini-raíz. Se pueden usar para centralizar la configuración y las aplicaciones compartidas, que son utilizadas por sus PDB de aplicaciones dependientes.


Novedades en las vistas del diccionario de datos

La introducción de la opción multiusuario trae consigo una capa adicional de vistas de diccionario de datos, lo que permite generar informes a través del contenedor raíz y las bases de datos conectables (PDB). Ignorando las ediciones por el momento, las versiones anteriores tenían la siguiente jerarquía.

DBA_: todos los objetos en la base de datos.
|
--ALL_: Objetos accesibles para el usuario actual, incluidos los que posee el usuario actual.
  |
  --USER_: objetos propiedad del usuario actual.


Con Oracle 12c, se agrega una capa adicional a la jerarquía.

CDB_: todos los objetos en todos los contenedores * (root y todos los PDB).
|
--DBA_: todos los objetos en el contenedor actual (root o PDB).
  |
  --ALL_: objetos accesibles por el usuario actual en el contenedor actual (root o PDB), incluidos los que posee el usuario actual.
    |
    --USER_: objetos propiedad del usuario actual en el contenedor actual (root o PDB).


El resultado de las vistas CDB_ depende del contenedor desde el que se accede. Cuando se accede desde el contenedor raíz, de hecho presentan toda la información de todos los contenedores. Cuando se accede desde un AP, actúan efectivamente como las vistas DBA desde dentro del contenedor. Esto puede ser un poco confuso al principio.