Provisionamiento de un RAC de 2 nodos en la nube de Oracle.
1. Alta disponibilidad de bases de datos en la nube de Oracle
Uno de los ítems más importantes en mantener un negocio que se basa en componentes de IT para su
operación es el proporcionar redundancia en sus componentes. El montar una aplicación con redundancia
implica una serie de tareas, esperas, y alto costo. Esto se transforma en importantes proyectos al interior
de los equipos de operaciones y la interacción con diferentes áreas operativas representa que lograr el
objetivo en el tiempo ofrecido sea un reto.
Por esta razón las áreas de IT con alto volumen de requerimientos y aplicaciones, tienen que tratar de
automatizar partes de los procesos al máximo posible para poder agilizar los proyectos que hacen los
pilares de las aplicaciones del negocio.
Además de la alta disponibilidad, la seguridad es otro ítem que debe satisfacer las necesidades de
confidencialidad y control de los datos del negocio. A cualquier empresa le gusta tener el control de sus
datos, por esto se blindan con data centers, aun sin ser su objetivo de negocio. Las aplicaciones core,
empresariales, críticas en alto volumen de datos y transaccionalidad operan en data centers que por su
cercanía al negocio (On Premises) dan una percepción de que la seguridad está controlada.
El tener estos ambientes On Premises, requiere una serie de procesos para provisionar, extender o
actualizar sus componentes, que implican tiempos largos. Uno de los puntos importantes que hablaremos
en este documento es como agilizar el provisionamiento de un cluster de bases de datos que provea alta
disponibilidad y seguridad para el negocio.
Hasta unos meses atrás el implementar un cluster de Oracle (Real Application Clusters - RAC) deja de ser
una tarea maratónica de esperas y muchos contribuyentes que podía llevarse hasta meses de
implementación, para convertirse en una tarea automatizada y de hora y media máximo de
implementación. Esto solo posible con la automatización y un habilitador común como la nube.
La nube de Oracle (Oracle Cloud) permite de forma segura provisionar en una hora y media o menos un
cluster de dos nodos de base de datos e inmediatamente tener un ambiente productivo para las
necesidades de cualquier aplicación que necesite persistencia en datos.
Entonces explicaré como serían los pasos, luego de una suscripción exitosa a la nube de Oracle, para
generar una instancia de 2 nodos RAC en una plataforma PaaS (Platform as a Service) en la nube de Oracle,
y además de esto las ventajas que tendría que no se observa en otras nubes como interacción rápida con
la base de datos e inclusive con el sistema operativo.
Esto es posible en la nube de Oracle, porque está pensada para poder desplegar los ambientes de bases
de datos Oracle más complejos, y el poder interactuar con el sistema operativo, aun siendo provisionado
en PaaS. Es una gran ventaja que ayuda en casos como por ejemplo el implementar cargas locales con SQL
Loader que necesitan rapidez de implementación.
Procederemos a conectarnos a la nube de Oracle suscrita:
2. Luego de darle clic en “Sign In” y escoger el territorio asignado de ubicación en la nube, nos pide las
credenciales:
Entonces podemos ver el dashboard de entrada:
3. Escogemos el menú hamburguesa en la esquina superior izquierda y escogemos “Database”:
Nos aparecerá entonces el dashboard de “Database Cloud Services” y podremos crear nuestra primera
instancia dándole clic al botón “Create Service”. Notaremos que aparecen links (video, manual) para ver
cómo se crea si no estamos seguros:
4. La primera pantalla a continuación es muy intuitiva y nos pide los datos mínimos necesarios para
comenzar. Escogeremos la opción “Enterprise Edition - Extreme Performance” y la opción de “Database
Clustering with RAC”:
Presionamos Next y otorgamos los siguientes datos, uno muy importante el de la seguridad con SSH:
5. Hacemos clic en el botón “Edit” al lado de SSH Public Key:
Esta es la clave pública de SSH que debemos generar con herramientas como puttygen (Ejemplo para
guiarse: https://www.ssh.com/ssh/putty/windows/puttygen ), u otras:
6. Copiamos la clave pública generada, y la pegamos en la pantalla de la nube de Oracle:
8. Entonces nos aparece la última pantalla de resumen, y le damos al botón “Create”:
Entonces aparecerá el dashboard nuevamente con el mensaje que se está creando el servicio “Creating
Service”:
9. Luego de creado el servicio o cluster RAC que creamos podemos ver que se creó en menos de una hora.
¡Estamos hablando de un clúster de RAC con 2 nodos en operación!
10. Luego de provisionado nuestro clúster nos conectaremos con putty para comprobar la operación:
Introducimos nuestra clave privada generada con puttygen:
11. Creamos el túnel para que otras aplicaciones se conecten a través de esta conexión:
Luego de esto salvamos nuestra sesión y le damos clic al botón “Open”:
12. Nos preguntara por el password del usuario que escojamos en este caso el usuario por defecto es “opc”
y el passphrase credo con puttygen:
¡Ya estamos interactuando con el sistema operativo de uno de los nodos del RAC! Y podemos hacer
sudo su al usuario oracle y verificar los servicios de nuestro clúster:
13. Podemos también hacer sudo al usuario grid que es el dueño del manejador de discos (ASM) que fue
creado automáticamente y del oracle restart:
Verificaremos los servicios del listener:
14. Nos damos cuenta que tenemos nuestro cluster con versión 12.2.0.1 y con 2 servicios creados como son
nuestro CDB (orcl) y nuestro PDB (pdb1)!
Nos conectamos igualmente al otro nodo para comprobar:
Nos damos cuenta que los servicios igualmente los podemos verificar desde este nodo:
15. Podemos inclusive ver en el archivo /etc/hosts nuestras direcciones privadas:
Y hacer ping entre ellos:
16. Procedamos a ver nuestros servicios en el tnsnames.ora:
También por el dashboard del portal podemos ver la dirección url de nuestro servicio:
17. Ahora procederemos a conectarnos con una aplicación instalada en nuestra máquina para comprobar
acceso de otras aplicaciones. En este caso SQL Developer.
Por defecto los accesos externos a puertos están bloqueados. Necesitamos habilitar que podamos
conectarnos a través del servicio de listener. Entonces le damos clic a la opción “Access Rules” en el
menú hamburguesa de nuestro servicio de base de datos:
Y habilitamos el servicio de listener a través del puerto 1522 creado:
20. Llenamos los datos de la conexión con el nombre del servicio que vimos en nuestro portal:
Ya conectados podemos interactuar con nuestro cluster y realizar las tareas necesarias:
22. Y ya podemos monitorear y a través de SQL Developer podemos desplegar nuestros modelos y acceder
desde las aplicaciones de la misma forma como nos conectamos a un ambiente On Premises.
Podemos revisar en el portal más detalles de nuestro servicio:
23. IPs publicas y privadas:
En conclusión, pudimos observar como en menos de una hora pudimos provisionar un clúster de RAC de
2 nodos, con todos sus servicios inmediatamente disponibles y productivos para poder satisfacer las
necesidades de cualquier proyecto. Además, pudimos interactuar con el sistema operativo sin
problemas algo que en el PaaS de otras nubes no se puede. Esto demuestra la flexibilidad y la rapidez de
la nube de Oracle para provisionar servicios de Clúster de Bases de Datos.