Revisado por Juan Pablo Guizado
En este artículo, vamos a utilizar el servicio Docker para crear una imagen predefinida de Oracle Database 18c. Es necesario ya tener instalado el servicio Docker.
En el servidor virtual o Bare Metal, revisamos el estado y la versión del servicio Docker instalado.
[root@docker ~]# docker info
[root@docker ~]# docker version
Client:
Version: 18.06.0-ce
API version: 1.38
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:08:18 2018
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.0-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:10:42 2018
OS/Arch: linux/amd64
Experimental: false
[root@docker ~]#
Si se desea saber como instalar Docker en un servidor, por favor revisar la siguiente página: https://docs.docker.com/install/.
Con el servicio Docker activo, necesitamos tomar la imagen Oracle Database 18c desde el Hub de Docker
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
[root@docker ~]# docker pull dockerhelp/docker-oracle-ee-18c
Using default tag: latest
latest: Pulling from dockerhelp/docker-oracle-ee-18c
cd6653735b10: Pull complete
9ed4a4faa080: Pull complete
809aa6552a32: Pull complete
1469e0c4da9e: Pull complete
0da6621780be: Pull complete
7c463fb30567: Pull complete
c5af9969d03c: Pull complete
3fe5b75f1f5e: Pull complete
b6aaa9fe99cf: Pull complete
d020acd3a5f5: Pull complete
ee54854d3c05: Pull complete
Digest: sha256:915c4b61722ed0af6d94f2b41e1434c281f97fca57e9de209a2c9744181f5191
Status: Downloaded newer image for dockerhelp/docker-oracle-ee-18c:latest
[root@docker ~]#
Nota: Verificar que el filesystem root tenga el espacio suficiente para cargar la imagen.
Una vez que la imagen es cargada, nos podemos conectar al Contenedor Docker
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dockerhelp/docker-oracle-ee-18c latest e5ded5e048aa 45 hours ago 20.8GB
[root@docker ~]# docker run -it dockerhelp/docker-oracle-ee-18c
[root@c42c43a508fe /]#
En el servidor podremos encontrar el motor Oracle Database 18c instalado y una base de datos por defecto ya creada.
El nombre de la base de datos es ORCL18; contiene una base de datos Pluggable llamada PDB18c
El password administrador es Welcome_1
Para iniciar la base de datos y configurar el Listener y el archivo TNS, es necesario ejecutar el siguiente script dentro del contenedor.
[root@c42c43a508fe /]# sh post_install.sh
Setting ENV
Starting default listener
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /u01/app/oracle/product/18.0.0/dbhome_1/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Configuring Listener:LISTENER_ORCL18
Listener configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/u01/app/oracle/product/18.0.0/dbhome_1/bin/lsnrctl start LISTENER_ORCL18
Listener Control complete.
Listener started successfully.
Profile configuration complete.
Oracle Net Services configuration successful. The exit code is 0
Configuring the TNS
Testing Database
SQL*Plus: Release 18.0.0.0.0 - Production on Mon Aug 13 20:07:36 2018
Version 18.3.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to an idle instance.
SQL> ORACLE instance started.
Total System Global Area 1610612704 bytes
Fixed Size 8896480 bytes
Variable Size 520093696 bytes
Database Buffers 1073741824 bytes
Redo Buffers 7880704 bytes
Database mounted.
Database opened.
SQL>
System altered.
SQL> alter pluggable database PDB18C open
*
ERROR at line 1:
ORA-65019: pluggable database PDB18C already open
SQL>
NAME OPEN_MODE
--------- --------------------
ORCL18 READ WRITE
SQL>
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB18C READ WRITE NO
SQL> Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
Cleaning up
DataBase Installed!!!
[oracle@c42c43a508fe /]$
El script define las variables de entorno Oracle y muestra el estado de la base de datos. Finalmente devuelve el control de consola con el usuario Oracle.
La arquitectura de Oracle con Docker se utiliza mucho para ambientes de desarrollo o educación. No se recomienda utilizarlo para bases de datos en Producción.
Skant Gupta es un Oracle ACE, Maximum Availability OCM, OCM Cloud & OCM12c/11g, Oracle 12c & 11g RAC Certified, se desempeña como Senior DBA en Etisalat, Dubai. Más de 5 años en diversas tecnologías de Oracle, focalizado principalmente en bases de datos, soluciones de alta disponibilidad, weblogic y GoldenGate. Podrá seguirlo en su blog: http://oracle-help.com
Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.