Manual - Entorno Oracle sobre Docker PDF

Title Manual - Entorno Oracle sobre Docker
Author Cristian pelegrin
Course Informática
Institution Universidad de Sevilla
Pages 63
File Size 5.1 MB
File Type PDF
Total Downloads 4
Total Views 127

Summary

Manual sobre como montar un entorno Oracle en contenedores Docker sobre Linux y/o Windows, incluyendo un sistema de monitorización....


Description

1

ÍNDICE 1.INTRODUCCIÓN 1.1 Justificación del proyecto 1.2. Tecnologías a usar y de qué forma 1.3. ¿Qué es Oracle? 1.4. ¿Que es Docker?

3 3 5 7 8

2. MANUALES DE INSTALACIÓN 2.1 Instalación de entorno Oracle sobre contenedores Docker [Ubuntu 18.04] 2.1.1 Pasos previos para Docker Creación de cuenta en Docker Hub Instalación de Docker Loguearse en la terminal en Docker

10 10 10 10 11 12

2.1.2 Despliegue y configuración de OracleDB Descargar imagen de OracleDB Despliegue y testeo de la imagen de OracleDB + VOLÚMENES Probando el contenedor OracleDB con SQLPlus y SQL Developer

13 13 14 16

2.1.3 Despliegue y configuración de WebLogic Descargar imagen de WebLogic 12c Despliegue del contenedor de WebLogic 12c

19 19 20

Acceso al portal WebLogic 12c Conectando OracleDB con WebLogic 12c 2.1.4 Simulación de entorno distribuido de Oracle sobre Docker

22 24 29

Requisitos previos Levantar un nuevo contenedor Web Logic 12c Levantar un nuevo contenedor OracleDB Conectando OracleDB_2 con WebLogic_2 Exportar y importar contenedores del entorno creado 2.2 Instalación de entorno Oracle sobre contenedores Docker [Windows 10] 2.2.1 Pasos previos para Docker Instalación de Docker Registrarse en container-registry.oracle.com 2.2.2 Despliegue y configuración de OracleDB 2.2.3 Despliegue y configuración de WebLogic 12c

30 31 33 34 37 38 38 38 40 41 47

3. GESTIÓN DE CONTENEDORES 3.1. Sistemas de monitorización del entorno

50 50

3.1.1 Herramientas de Linux 3.1.2 Herramientas de Windows

50 55

4. CONCLUSIONES

59

5. ANEXO

60

6. BIBLIOGRAFÍA

61

2

1.INTRODUCCIÓN 1.1 Justificación del proyecto Los entornos Oracle basados en máquinas virtuales (como utilizan muchas empresas) suelen tener muchos inconvenientes en su rendimiento ya que se trata de un software muy pesado. Los principales problemas que se encuentran las empresas son: El tamaño (espacio en disco), consumo de recursos innecesarios, lentitud en el sistema, labores tediosas, dificultades para entornos distribuidos, etc.  En 2017, gracias a un pacto entre ambas compañias (Oracle y Docker), permitió que trabajaran juntas en el sector de la virtualización basada en contenedores. Gracias a él, a partir de ahora vamos a poder encontrar contenedores basados en los principales productos de Oracle, entre los que destacan:  ● Instant Client: Una serie de herramientas de base de datos, librerías y SDK para la conexión entre clientes y servidores remotos. ●  ● Coherence: Herramienta para facilitar la configuración e integración de entornos de prueba. ●  ● WebLogic Server, servidor para el contaje y desarrollo de aplicaciones Java EE. ●  ● Java 8 SE (Server JRE), entorno para el desarrollo e implementación de aplicaciones Java SE para escritorio y web. ●  ● Database Enterprise, conocido servidor de bases de datos de Oracle. ●  ● OracleLinux, sistema operativo OpenSource de la compañía.

3

Además, todos estos contenedores anteriores llevan el sello de Docker Certified, que garantiza que cumple con las normas básicas de rendimiento, seguridad y estabilidad.      Imagen del sello “Docker Certified"

 En conclusión, para evitar los problemas mencionados anteriormente y dar una mejor solución a aquellas empresas que siguen utilizando el “latoso” entorno de Oracle en máquinas virtuales, se mostrará y explicará el proceso para levantar un entorno Oracle sobre contenedores Docker de una forma más liviana y fácil de gestionar.               

4

1.2. Tecnologías a usar y de qué forma A lo largo del desarrollo del proyecto se harán uso de las siguientes herramientas o tecnologías:  ● Oracle → Se escoge Oracle (a pesar de la multitud de gestores de bases de datos que existen) por ser la mejor opción por: su flexibilidad, fiabilidad, potencia y otras características que hacen de Oracle la mejor opción como gestor de base de datos en el entorno empresarial.  ❖ De Oracle se usarán los contenedores “Database Enterprise” y “Web Logic”.   ● Docker → Es una de las herramientas de virtualización por contenedores más conocida y utilizada (a pesar de que existen alternativas como OpenShift de Red Hat o CRI-O de Google). Docker destaca del resto por su rápida integración y por su velocidad de despliegue.  ❖ Se utilizará Docker para el despliegue del entorno Oracle sobre los contenedores   ● VirtualBox → Es un potente software de virtualización de sistemas operativos. Se eligirá VirtualBox como herramienta de virtualización por ser de código abierto, ser fácil de utilizar y su funcionalidad.  ❖ Se hará uso de Virtualbox para la virtualización de Linux y Windows  



● S.O Linux y Windows → Se eligen ambos sistemas operativos para aplicar el proyecto por ser los principales y más usados. Se usarán las distribuciones de Ubuntu 18.04 y Windows 10 respectivamente.  ❖ Serán los sistemas operativos donde se levantarán los entornos 

5



 ● Ctop → Se elige esta herramienta de monitorización en Linux por su fácil instalación y su potente capacidad, a pesar de ser muy ligera.   ● Semtex → Es un potente software de monitorización para cualquier SO que permite seguir una monitorización completa desde la nube.

                       6

1.3. ¿Qué es Oracle?

Oracle es un sistema de gestión de base de datos relacional fabricado por Oracle Corporation. Oracle, básicamente, es una herramienta cliente/servidor para la gestión de base de datos.  La gran potencia que tiene y su elevado precio hace que solo se vea en empresas muy grandes y multinacionales, por norma general. Sus productos van desde bases de datos (Oracle) hasta sistemas de gestión.

Principales características y funcionalidades de Oracle  ◆ Modelo relacional: Los usuarios visualizan los datos en tablas con el formato filas/columnas.  Herramienta de administración gráfica, intuitiva y cómoda.  ◆ Protección de datos: Seguridad completa en el entorno de producción y gestión de copias de seguridad.  Lenguaje de diseño de base de datos muy completo (PL/SQL).  Alta disponibilidad: Escalabilidad, protección y alto rendimiento.  ◆ Gestión de usuarios: Seguridad en el control de personas que acceden a las bases de datos.

7

1.4. ¿Que es Docker?

Docker es una de las herramientas de virtualización por contenedores más conocida y utilizada y que cada vez cuenta con mayor importancia dentro del sector del Cloud Computing.  Gracias a ella vamos a poder cargar en cualquier sistema compatible cualquier contenedor ya configurado y listo para funcionar de manera que, en pocos segundos, podamos tener una instancia de un servicio totalmente funcional y aislada del resto de contenedores o programas del sistema.  

DockerHub

 Docker hub es un repositorio público en la nube, similar a Github, para distribuir los contenidos. Está mantenido por Docker y hay multitud de imágenes de carácter gratuito, que se pueden descargar y asi no tener que hacer el trabajo desde cero al poder aprovechar “plantillas”.  También podemos crear nuestros propios repositorios privados e, incluso, dispone de una tienda.      8

Principales características y funcionalidades de Docker  ◆ Capacidad para desplegar multitud de contenedores en un mismo equipo físico. ◆  ◆ Contenedores muy livianos que facilitan su almacenaje, transporte y despliegue. ◆  ◆ Se pueden compartir nuestros contenedores para aumentar los repositorios de Docker así como beneficiarnos de los que compartan los demás. ◆  ◆ La aplicación base de Docker gestionará los recursos existentes para asignarlos responsablemente entre los contenedores desplegados. ◆  ◆ Compatibilidad Multi-Sistema , podremos desplegar nuestros contenedores en multitud de plataformas.

9

2. MANUALES DE INSTALACIÓN 2.1 Instalación de entorno Oracle sobre contenedores Docker [Ubuntu 18.04] 2.1.1 Pasos previos para Docker Creación de cuenta en Docker Hub Antes de empezar se deberá de que crear una cuenta en Docker Hub, el repositorio oficial de Docker, para poder descargar las imágenes de Oracle desde aquí.  Para ello tan solo se deberá de acceder a  este enlace y crear una cuenta. Una vez completado el registro se tendrá un repositorio propio con las imágenes que se vayan creando más adelante.



10

Instalación de Docker Para instalar Docker en un servidor Ubuntu habrá que seguir los siguientes pasos:  ● Instalar algunos paquetes de requisitos previos: $ sudo apt install apt-transport-https ca-certificates curl software-properties-common



Agregar la clave GPG para el repositorio de Docker en el sistema:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -



Agregar el repositorio de Docker a las fuentes de APT:

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"



Por último, instalar el paquete de Docker:

$ sudo apt install docker-ce

Para comprobar que Docker se está ejecutando: systemctl status docker

11

Loguearse en la terminal en Docker Ahora habrá que loguearse vía terminal en Docker Hub. Para ello, tan solo se usará el comando: $ sudo docker login

Se tendrá que introducir nuestro Docker ID y nuestra contraseña de la siguiente forma:

12

2.1.2 Despliegue y configuración de OracleDB Descargar imagen de OracleDB En el siguiente ENLACE se encuentra el repositorio de la imagen de Oracle Database junto a su documentación oficial.

 Para descargar la imagen en nuestro servidor utilizaremos el siguiente comando:  $ docker pull store/oracle/database-enterprise:12.2.0.1

Una vez descargada la imagen, se podrá ver con: docker images

13

Despliegue y testeo de la imagen de OracleDB + VOLÚMENES  Primero se crearán los siguientes volúmenes para guardar el contenido de la base de datos (Como tablas, datos, usuarios…)  PERSISTENCIA EN LA BASE DE DATOS - VOLÚMENES  ➢ /opt/oracle/scripts/setup es el directorio que contiene scripts de shell o SQL que se ejecutan una vez que se completa la configuración (creación) de la base de datos.  ■ docker volume create volumen_setup ■ -v volumen_setup:/opt/oracle/scripts/setup/   ➢ /opt/oracle/scripts/startup es el directorio que contiene scripts de shell o SQL que se ejecutan cada vez que se inicia el contenedor.  ■ docker volume create volumen_startup ■ -v volumen_startup:/opt/oracle/scripts/startup/   ➢ /opt/oracle/oradata se encarga de conservar los archivos de configuración en el sistema de archivos del host. Es necesario dar permisos al usuario oracle (chown 54321:54321 ;)  ■ docker volume create volumen_oradata ■ -v volumen_oradata:/opt/oracle/oradata/  ➢ /ORCL se encarga de conservar los datos de la base de datos y de los usuarios creados.  ■ docker volume create volumen_orcl ■ -v volumen_orcl:/ORCL  NOTA: Para ver las propiedades y localización del volúmen usar docker volume inspect 



14

 ● Después, para lanzar la imagen de la base de datos (OracleDB), se desplegará con el siguiente comando donde se utilizará el puerto 1521 para la base de datos y el puerto  8080 para la pequeña interfaz gráfica que nos ofrece Oracle, además de añadir los volúmenes creados antes.  $ docker run -d -p 8080:8080 -p 1521:1521 -v volumen_oradata:/opt/oracle/oradata -v volumen_startup:/opt/oracle/scripts/startup -v volumen_setup:/opt/oracle/scripts/setup -v volumen_orcl:/ORCL --name ORACLEDB store/oracle/database-enterprise:12.2.0.1 ● Para comprobar que se a lanzado correctamente y que está levantado(healthy), usamos el comando docker  ps  ●

También podemos ir viendo los logs del contenedor con docker logs ORACLEDB

15

Probando el contenedor OracleDB con SQLPlus y SQL Developer ● Para abrir SQLPlus en el contenedor, se cargarán de la siguiente forma unas variables determinadas, localizadas en .bashrc y después de esto debemos lanzar el SQLPlus (Integrado en la imagen lanzada)  $ docker exec -it ORACLEDB bash -c "source /home/oracle/.bashrc; sqlplus /nolog"



Después, deberemos conectarnos como sysdba de la siguiente forma:

NOTA: La contraseña predeterminada, como indica la documentación oficial de la imagen en Docker Hub, es: Oradoc_db1 ●

Se creará un nuevo usuario para poder usarlo más adelante.:



16



Como se puede ver, se ha realizado la conexión desde SQLPlus a la base de datos PERO desde dentro de la máquina virtual. (De manera LOCAL)

Ahora se mostrará cómo conectarse desde un cliente SQL Developer (de mi anfitrión) a la base de datos del contenedor Docker, realizando una conexión desde el exterior de la MV hasta Oracle ubicado en el contenedor.  ● La siguiente imagen muestra la forma en la que se debe conectar: ○ Nombre del host:  ○ Puerto:  ○ Nombre del servicio: ORCLCDB.localdomain



 

17

● A continuación se creará una tabla, insertarán datos y realizará una pequeña consulta para demostrar el funcionamiento desde SQLDeveloper. Además, al tener volúmenes asociados, los datos perdurarán en el contenedor.  Código SQL de creación e inserción de datos.

Consulta básica SQL

18

2.1.3 Despliegue y configuración de WebLogic Descargar imagen de WebLogic 12c Al igual que con la imagen de OracleDB, en el siguiente ENLACE se encuentra la imagen de WebLogic 12c de Oracle.

● Para descargar la imagen en nuestro servidor se utilizará el siguiente comando:  $ docker pull store/oracle/weblogic:12.2.1.4-dev-200117

● Una vez descargada la imágen, se podrá ver con: docker images

19

Despliegue del contenedor de WebLogic 12c ●

Primero será necesario instalar JAVA en la máquina. Para ello:

 $ sudo apt install default-jre



Después, en nuestro home, habrá que crear de la siguiente forma un archivo que contendrá el usuario y contraseña para WebLogic 12c:

 $ > > >

cat “Orígenes de Datos” > “Nuevo” > “Origen de datos genérico”

25



Las siguientes páginas deberían de quedar de las siguientes formas configuradas:

26

CUIDADO



Nombre de host = IP del contenedor de OracleDB

En la siguiente página, no se tocará ninguna configuración. Pero sí se puede pulsar en el botón “Probar configuración” donde dirá si son válidos los pasos realizados hasta ahora.

27



Por último, pedirá a qué dominio se quieren poner la conexión. Por defecto, se elegirá la de “AdminServer”.



Al darle click a “Terminar” ya debería de aparecer la conexión.

Después de realizar todos los pasos anteriores, ya se tendría configurada la conexión de Web Logic 12c al contenedor OracleDB satisfactoriamente

28

2.1.4 Simulación de entorno distribuido de Oracle sobre Docker En este apartado se crearán múltiples nodos para un entorno distribuido. Se propone como un modelo para resolver problemas de computación masiva sobre un solo contenedor Oracle 

¿En qué consistirá?  → Se crearán dos entornos completos (WebLogic y DataBase) diferentes e independientes.  → Cada WebLogic deberá tener únicamente conexión a su respectiva DB, pero ambos entornos deberán ejecutarse a la vez (es decir, corriendo en paralelo).  → Además, el WebLogic deberá tener una carpeta compartida con el PC, es decir deberá haber una carpeta común entre PC local y Docker y viceversa.

29

Requisitos previos ● Se partirá con que, ya se tendrá levantados los dos contenedores anteriores :

  ● Después, se creará el lugar de la carpeta compartida y también una variable de entorno con el comando export para indicar dónde se encuentra dicha carpeta: 

  $ export SH_FOLDER=/home/cristianpelegrin/docker/CarpetaCompartida/              

30

Levantar un nuevo contenedor Web Logic 12c Ahora se desplegará WebLogic mapeando los puertos 7002 al 7001 y el 9004 al 9002 para evitar conflictos con el 1º contenedor, con un volumen asociado al archivo “domain.properties” creado anteriormente (el mismo que se usó para el 1º contenedor)  A diferencia del 1º, este incorpora la carpeta compartida que será creada dentro del contenedor automáticamente en /u01/oracle/shared_folder  $ docker run -it -p 7002:7001 -p 9004:9002 --name WEBLOGIC_2 -v $PWD:/u01/oracle/properties -v $SH_FOLDER:/u01/oracle/shared_folder store/oracle/weblogic:12.2.1.4-dev-200117 /bin/bash   ●

Una vez dentro del contenedor, debemos de realizar dentro las siguientes acciones:

[oracle@3c2d1c0573f5 oracle]$ export DOMAIN_NAME=base_domain [oracle@3c2d1c0573f5 oracle]$ ./createAndStartEmptyDomain.sh   ● Cuando esté desplegado, se podrá probar su funcionamiento metiéndonos desde el navegador de nuestro anfitrión en la siguiente dirección:  ○ https://:9004/console

31

 ● También comprobaremos que tenemos acceso a su carpeta compartida:



32

Levantar un nuevo contenedor OracleDB Ahora se desplegará el segundo contenedor OracleDB mapeando los puertos 8082 al 8080 y el 1524 al 1521 para evitar conflictos con el 1º contenedor. (En este caso, no crearé volúmenes.)  $ docker run -d -p 8082:8080 -p 1524:1521 --name ORACLEDB_2 store/oracle/database-enterprise:12.2.0.1   ● Una vez levantado, se abrirá SQLPlus del contenedor ORACLEDB_2 para crear un nuevo usuario llamado, por ejemplo, cristianpelegrin2. Para conectarse:  $ docker exec -it ORACLEDB_2 bash -c "source /home/oracle/.bashrc; sqlplus /nolog"   ● Se volverá a repetir los mismos pasos que con el 1º contenedor: 



33

Conectando OracleDB_2 con WebLogic_2 Ahora se pasará a realizar la conexión de WebLogic_2 y la base de datos(2º) a través del portal de WebLogic. Para ello se vuelve a realizar los pasos anteriores, creando un nuevo origen de datos genéricos. 

34



35

 Y con esto ya tendríamos el escenario que se buscaba: Dos bases de datos por separado con sus respectivos Web Logic’s configurados, realizando satisfactoriamente la conexión entre ambos.

     

36

Exportar y importar contenedores del entorno creado



Para EXPORTAR primero se creará una nueva variable con export indicando el destino de nuestros contenedores:

 $ export EXPORT_FOLDER=/home/cristianpelegrin/docker/exported_images ORACLEDB  Nota: Habrá que crear el directorio con mkdir después



Con esto aparecerá el contenedor comprimido en .tar en el directorio creado:



Para IMPORTAR, habrá que utilizar el siguiente comando:

 $ tar -c contenedor_ORACLEDB.tar | docker import - imagen_contenedor_oracledb  ●

Si se hace un docker images ls debería de aparecer la imagen del contenedor importado.

37

2.2 Instalación de entorno Oracle sobre contenedores Docker [Windows 10] 2.2.1 Pasos previos...


Similar Free PDFs