“Múltiples inquilinos”. La nueva arquitectura de Oracle12c.


¿Qué significa la “c” en Oracle 12c?

Tras el éxito de la anterior base de datos, Oracle11g (“g” identifica grid computing ‑red/rejilla), la versión más reciente de base de datos de Oracle (sobre la versa esta documentación) es Oracle12c, “c” representa cloud computing. Pero ¿qué significan estas denominaciones?

Grid Computing

El término grid computing se refiere a una infraestructura que permite la integración y el uso colectivo de ordenadores de alto rendimiento, redes y bases de datos que son propiedad y están administrados por diferentes instituciones.

Universidades, laboratorios de investigación o empresas se asocian para formar un grid para lo cual utilizan algún tipo de software que implemente este concepto.

La computación en grid ofrece muchas ventajas frente a otras tecnologías alternativas. La potencia que ofrecen multitud de ordenadores conectados en red usando grid es prácticamente ilimitada, además de que ofrece una perfecta integración de sistemas y dispositivos heterogéneos, por lo que las conexiones entre las diferentes máquinas no generarán ningún problema.

Se trata de una solución altamente escalable, potente y flexible, ya que evitarán problemas de falta de recursos (cuellos de botella) y nunca queda obsoleta, debido a la posibilidad de modificar el número y características de sus componentes.



 Cloud Computing

Cloud computing (computación en la nube) es una arquitectura donde los servicios (tales como bases de datos, aplicaciones, entornos de desarrollo, o incluso la infraestructura de servidores) están disponibles través de la red Internet para el uso por parte de los usuarios.

En este tipo de tecnología todo lo que permite un sistema informático se ofrece como servicio, de modo que los usuarios puedan acceder a los servicios disponibles “en la nube de Internet” sin conocimientos (o, al menos sin ser expertos) en la gestión de los recursos que usan.

Es un paradigma en el que la información se almacena de manera permanente en servidores de Internet y se envía a cachés temporales de cliente, lo que incluye equipos de escritorio, portátiles, tablets, etc.

Es un nuevo modelo de prestación de servicios de negocio y tecnología, que permite al usuario acceder a un catálogo de servicios estandarizados y responder con ellos a las necesidades de su negocio, de forma flexible y adaptativa, en caso de demandas no previsibles o de picos de trabajo, pagando únicamente por el consumo efectuado, o incluso gratuitamente en caso de proveedores que se financian mediante publicidad o de organizaciones sin ánimo de lucro.

El cambio que ofrece cloud computing es que permite aumentar el número de servicios basados en la red. Esto genera beneficios tanto para los proveedores, que pueden ofrecer, de forma más rápida y eficiente, un mayor número de servicios, como para los usuarios que tienen la posibilidad de acceder a ellos, disfrutando de la “transparencia” e inmediatez del sistema y de un modelo de pago por consumo. Así mismo, el consumidor ahorra los costes en inversión económica para infraestructuras (locales, material especializado, etc).

Oracle12c está diseñado para ejecutarse en la nube y que sea accesible como un servicio. A través de la virtualización y de la arquitectura multi-tenant, cada aplicación de base de datos se presenta como una base de datos privada, pero en realidad, el sistema es un entorno compartido de base de datos. El uso de los recursos compartidos y la virtualización es un método utilizado por las empresas y los proveedores de bases de datos para reducir costes.

Sin embargo, no hay ningún requisito obligatorio para que Oracle12c deba ejecutarse en la nube, puede ejecutarse perfectamente como en versiones anteriores de Oracle sin necesidad de utilizar esta tecnología.

Cloud computing

Oracle Multitenant

En la nueva versión del gestor de base de datos Oracle Database 12c han sido incorporadas más de 500 nuevas características, sin embargo el icono principal de la versión radica en la nueva arquitectura denominada Oracle Multitenant.

Oracle Multitenant es la nueva opción para Oracle12c Enterprise Edition, la cual ayuda a los clientes a reducir costes a través de la simplificación, aprovisionamiento, consolidación y actualización de la base de datos.

La nueva arquitectura está fundamentada en una base de datos contenedora Container Database (CDB) la cual puede albergar otras muchas bases de datos más pequeñas denominadas Pluggable Databases (PDB).

La base de datos contenedora (Container) actúa como una instancia de base de datos raíz y cada una de las Pluggable Databases funciona dentro de ese único contenedor como inquilinos. Cuando un CDB contenga varios PDB estamos ante una arquitectura multi‑tenancy  (cada uno de los contenedores contiene múltiples inquilinos).

Cada PDB contiene sólo los esquemas de bases de datos, tablas, índices y un mini diccionario de datos para seguir siendo autónomo dentro del soporte más amplio del contenedor CDB.

CDB Multi-Tenant

Esta arquitectura es escalable y aplicable de forma total a soluciones ya conocidas como RAC (Oracle Real Application Clusters) y Oracle Data Guard. Una base de datos no Pluggable Database o también llamada Non-CDB (Non Container Database) puede ser convertida fácilmente a una Pluggable Database sin afectar a su contenido, operación y manejo para las aplicaciones relacionadas con la misma.

Los principales beneficios de la arquitectura Oracle Multitenant pueden ser resumidos en cuatro grandes factores:

  • Alta posibilidad de consolidación: las distintas PDB (Pluggable Databases) poseen como base de operación la misma base de de datos contenedora CBD (Container Database) compartiendo la instancia (memoria y procesos background), esto conlleva una gran ventaja, cada PDB no tiene su propia SGA, solo existirá solo una memoria SGA para todas las bases de datos.

En esta nueva arquitectura existe la posibilidad de trabajar con más bases de datos en un mismo servidor o servidores respecto a las versiones anteriores. Esta técnica permite obtener un beneficio similar a la llamada concepción de consolidación de esquemas (schemas), pero son bien conocidas las barreras, dificultades e implicaciones al aplicar esta última consolidación en temas de seguridad.

  • Rápido aprovisionamiento y clonación utilizando sentencias SQL, una PDB puede ser desconectada de un CBD y ser conectada a otro. Alternativamente se puede duplicar una Pluggable Database en el mismo Container o clonar la misma de un CDB a otro CDB, estas operaciones pueden ser llevadas a cabo a en tan solo unos pocos minutos.

Aprovisionamiento y clonación

  • Nuevos paradigmas para un rápido parcheado (patching) o actualización (upgrade): la inversión de tiempo y esfuerzo para aplicar un patch en una CBD conlleva el resultado de aplicar el mismo parche a todas las PDB, si se desea aplicar el patch o upgrade solo un número limitado de Pluggable Databases el procedimiento es crear otro Database Containter, desconectar las PDBs del anterior CDB, incorporar las mismas al nuevo CDB y allí realizar el trabajo particular de parcheado o actualización en este nuevo Container.
  • Manejar varias bases de datos como una sola: consolidando las bases de datos existentes como Pluggable Databases, los administradores podrán manejar varias PDBs como si fueran una sola. Por ejemplo, las tareas de copia de seguridad y recuperación son llevadas a cabo desde del CBD, toda la administración podrá ser llevada a cabo de forma centralizada.
  • Gestión dinámica de los recursos entre Pluggable Databases: Oracle12c Resource Manager tiene funciones extendidas para controlar el consumo de recursos entre los distintos CDBs y PDBs.

 

Ventajas de Oracle Multitenant

Es común en tiempos actuales encontrar en las empresas bases de datos distribuidas a lo largo de varios servidores. Los costes asociados al mantenimiento, licencias y repetición de tareas en cada una de ellas, hacen que el área TIC estuviese en constante búsqueda de mecanismos para optimizar tareas evitando realizar varias veces la misma o que se pensase disminuir costes reduciendo la cantidad de servidores.

Oracle Multitenant es la respuesta a estas necesidades. Esto podría verse reflejado en las siguientes áreas:

  • Memoria: reducción de memoria global requerida por cada instancia de base de datos al consolidar la SGA de todas las instancias en una sola y poseer solo un conjunto de background processes en lugar de varios, uno por cada instancia.
  • Aprovisionamiento de bases de datos: para duplicar/clonar una base de datos por lo general se utilizan técnicas que requieren gran cantidad de tiempo, tales como: comando Duplicate de RMAN, operaciones de Restore/Recover, Cold Backups, utilidades Export/Import. Estas posibilidades requieren primeramente la creación de los archivos principales de una base de datos los cuales suelen ser realizados a través del DBCA (Database Configuration Assistant) o de forma manual. Oracle Multitenant posee la capacidad de crear y/o duplicar una base de datos con solo un comando.
  • Parcheo (patching): de forma convencional las tareas de parcheo deben de ser ejecutadas en cada base de datos, lo cual dificulta el proceso cuando se dispone de gran cantidad. Oracle Multitenant posee una arquitectura interna en la cual los metadatos de todas las Pluggable Databases se encuentran en la CDB contenedora. En este área se encuentra el diccionario de datos y estructura base de cada una de las base de datos. Entonces, esta zona es clave para hacer cambios en el diccionario de datos (upgrades) o de los binarios de Oracle afectados por patchings, de esta manera al realizar cualquier actualización del CBD el efecto se verá también reflejado en todas las Pluggable Databases conectadas con el correspondiente Container.
  • Upgrade: la tarea de upgrade/migración de una base de datos consiste en actualizar el catalogo/diccionario de la misma y por consiguiente el compilado de todos los objetos de los usuarios de la base de datos (procedimientos, vistas, funciones, …) que pudiesen haberse afectados en su validez a causa de invalidez temporales de otros objetos dependientes ( Catalogo de la BBDD ), para el caso de “Upgrades”, los objetos dependientes son aquellos pertenecientes al catalogo de la BBDD.

Hasta versiones previas a Oracle12c el realizar el upgrade/downgrade de una base de datos requería una ardua labor realizada en varias etapas, duplicar la base de datos original para realizar Manual Rolling Upgrade, uso del DBUA (Database Upgrade Assistant) y otras más.

Una de las tantas inquietudes de muchos clientes siempre ha radicado en si existe un método para realizar downgrades rápidos en caso de posibles problemas con la nueva versión implementada o como poder deshacer un patch de la manera más rápida posible en caso de problemas con el mismo sin tener que realizar operaciones de riesgo o sin tener que asegurar el estado anterior de los binarios a través de un backup de los binarios del gestor.

Todo el proceso de reversión radica en los cambios realizados en el núcleo (core) de la base de datos (catalogo de la base de datos y binarios), si ahora el centro de la base de datos son los CDBs y existe la posibilidad de poseer varias versiones de Containers entonces la arquitectura Oracle Multitenant hace posible que nuestro core sea tan dinámico y flexible para las bases de datos. Solo basta con desconectar una base de datos de un Container para conectarla a otro y así poder acceder a una Pluggable Database en versiones y/o patchs diversos casi de manera inmediata.

  • Backups y Recover: la gestión de copias de seguridad y recuperaciones hasta versiones anteriores a Oracle12c se tenía que realizar de forma local obligatoriamente en cada base de datos, con Oracle Multitenant la gestión se lleva a cabo desde el CDB correspondiente.

 

 Características de Oracle Multitenant

  • División del diccionario de datos: Cada PDB tendrá su propio diccionario de datos con la información de los metadatos y la CDB la información general del espacio denominado CDB$ROOT (Diccionario de los metadatos de la base de datos contenedora).
  • En arquitectura Multitenant el diccionario de datos esta virtualizado.
  • En Oracle 12.1 puede haber un máximo de 252 bases de datos por Container.
  • Después de un upgrade las nuevas bases de datos 12c pueden ser Pluggable Databases o Non-Pluggable Databases.
  • Total reconocimiento entre bases de datos Pluggable Databases y Non-Pluggable Databases, el funcionamiento para las aplicaciones es exactamente igual en ambas.
  • La conexión/desconexión (plug/unplug) de las PDBs de/a las CDBs se realiza internamente mediante una combinación de la operación de Transportable Tablespaces en conjunto con una 3ra generación de Data Pump.

El proceso unplug/plug se podrá realizar entre sistemas operativos de diferentes endian formats.

  • Las conexiones Oracle NET hacia las PDBs siguen siendo iguales.
  • Las herramientas SQL Developer y Enterprise Manager han sido ampliadas para poder manejar todo lo relacionado con la arquitectura Multitenant.
  • Las operaciones de Oracle Active Data Guard son realizadas a nivel de CDBs.
  • La desconexión y conexión a distintos CDBs puede ser llevada a cabo entre Containers de diversas versiones.
  • La nueva arquitectura Multitenant está disponible en las versiones Standard, Standard Edition One y Enterprise Edition del servidor de base de datos. Sin la licencia de opción Multitenant se tendrá derecho a solo una PDB.

 

Arquitectura física de un CDB

Desde el punto de vista físico, un CDB tiene básicamente la misma estructura que un Non‑CDB, a excepción de que cada PDB tiene su propio conjunto de espacios de tabla (incluyendo sus propios tablespaces SYSTEM y SYSAUX) y archivos de datos.

La siguiente figura muestra la arquitectura de almacenamiento física de un CDB con dos PDBs: pdb1 y pdb2.

14
feb 2014
POSTED BY
POSTED IN Sin categoría
DISCUSSION 0 Comments
TAGS