En esta entrada voy a explicaros como podemos realizar la instalación de Oracle 18c XE en un servidor Linux con CentOS 8 mediante consola.
Introducción
Para aquellos que no lo conozcáis os comentaré que las versiones XE son las versiones gratuitas del famoso gestor de bases de datos Oracle. Lógicamente, como os podréis imaginar, nadie regala nada y por tanto estas versiones son totalmente funcionales pero con una de serie de limitaciones:
- Hasta 2 procesos de CPU.
- Hasta 2 GB de RAM de base de datos.
- Hasta 12 GB de datos de usuario.
- Hasta 3 bases de datos de tipo «pluggable».
Instalación paquete pre configuración
Para empezar nos descargaremos el paquete de pre configuración de Oracle 18c XE.
curl -o oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
Realizamos la instalación del paquete.
rpm -Uvh oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
En nuestro caso nos da una serie de errores debido a una serie de dependencias que nos faltan.
Vamos a proceder a instalarlas.
dnf install -y glibc-devel dnf install -y ksh dnf install -y libaio-devel dnf install -y libstdc++-devel dnf install -y make dnf install -y nfs-utils dnf install -y psmisc dnf install -y sysstat dnf install -y xorg-x11-utils dnf install -y xorg-x11-xauth dnf install -y bc dnf install -y bind-utils dnf install -y binutils dnf install -y net-tools dnf install -y smartmontools dnf install -y unzip
Hay 2 paquetes que tendremos que instalarlos desde otras fuentes:
curl -o compat-libcap1-1.10-7.el7.x86_64.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libcap1-1.10-7.el7.x86_64.rpm dnf localinstall compat-libcap1-1.10-7.el7.x86_64.rpm -y
curl -o compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm dnf localinstall compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm -y
Por último, y aunque no nos haya aparecido en los mensajes de errores anteriores, es necesario realizar la instalación de los siguientes 3 paquetes para evitar problemas durante la instalación posterior de Oracle.
dnf install -y libnsl dnf install -y libnsl.i686 dnf install -y libnsl2.i686
Instaladas todas las dependencias volveremos a ejecutar el paquete de pre configuración de Oracle y ya se instalará correctamente.
rpm -Uvh oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
Instalación Oracle 18c
Nos descargaremos la versión de Oracle Database Express Edition (XE) 18c desde su propia web utilizando el siguiente link.
Desde nuestro servidor Linux instalaremos el nuevo paquete que nos hemos descargado. Este proceso tarda un poco por lo que habrá que tener paciencia.
rpm -Uvh ./oracle-database-xe-18c-1.0-1.x86_64.rpm
Pasados unos minutos ya tendremos instalado nuestro Oracle 18c aunque aquí no termina todo ya que ahora nos tocará realizar la configuración inicial.
Configuración Oracle 18c
Para realizar la configuración inicial de Oracle en primer lugar ejecutaremos el siguiente comando para iniciar un asistente que nos facilitará la tarea de configuración:
/etc/init.d/oracle-xe-18c configure
Nos pedirá que introduzcamos la contraseña del usuario sys, system y pdbadmin (la contraseña que introduzcamos será la misma para los 3 usuarios.
Durante el proceso de configuración puede aparecernos un error indicando que el puerto por defecto (el 5500) se encuentra en uso. Esto es debido a que el nombre calificado del servidor no se encuentra dentro del archivo /etc/hosts.
Para solucionarlo editaremos el fichero /etc/hosts y añadiremos una nueva línea con la IP del servidor, el nombre completo de dominio y el nombre corto tal y como se aprecia en la imagen. Con estos cambios una vez lancemos de nuevo el configurador de Oracle habrá desaparecido el error.
Esperamos a que finalice el proceso de configuración.
Por último sólo nos quedará configurar las rutas por defecto de Oracle. Para ello realizaremos las siguientes acciones.
su nano /home/oracle/.bash_profile
Añadimos las siguientes líneas y guardamos los cambios.
export ORACLE_BASE=/opt/oracle/ export LD_LIBRARY_PATH=/opt/oracle/product/18c/dbhomeXE/lib export ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE export PATH=$ORACLE_BASE/product/18c/dbhomeXE/bin:$PATH export PATH=/usr/bin:$PATH export ORACLE_SID=XE
Nos cambiaremos a la cuenta del usuario oracle y ejecutaremos el siguiente comando:
source ~/.bash_profile
Ya sólo nos quedará comprobar que tenemos acceso a nuestro servidor de Oracle. Podremos hacerlo de forma sencilla de la siguiente manera:
sqlplus sys as sysdba
Y listo ya tenemos en funcionamiento nuestro servidor de bases de datos Oracle 18c XE.
Espero os haya servido de utilidad.
Me dedico a la Administración de Sistemas y he creado este blog para compartir mis conocimientos con toda la comunidad y así aportar mi granito de arena y ayudar a todo el que lo necesite.
Muy buen articulo, muchas gracias.
Maravilloso articulo, perfectamente explicado y me ha ayudado no te imaginas cuanto, mil gracias
Gracias por tus palabras Roberto.
Ha sido un placer haberte podido ayudar.
Saludos.
Muy bueno el artículo, muchas gracias.
Me alegro mucho que te haya sido de utilidad.
Saludos.
muchas gracias Sergio , todo muy claro y muy concreto
Un placer haberte podido ayudar.
Saludos.
Cuando ingreso…
sqlplus sys as sysdba
… me sale el siguiente error:
bash: sqlplus: no se encontró la orden…
¿Qué puedo hacer al respecto?
Hola Joel,
Eso es porque no tienes definidas las variables de entorno por lo que debes realizar el paso en el que indico que hay que modificar el fichero /home/oracle/.bash_profile y posteriormente cambiarte a la cuenta del usuario Oracle. Comprueba que lo has hecho correctamente.
Saludos.
Hola Sergio, muy buen tutorial. Tengo el mismo problema que Joel. Tengo las variables de entorno definidas como dices, pero lo que no entiendo es lo de «cambiarse a la cuenta del usuario Oracle», pq yo todo lo he instalado (varias veces ya) o desde mi cuenta o desde root pero no he creado ninguna cuenta «oracle». Gracias y disculpa la molestia.
Hola Pedro,
El usuario oracle se suele crear automáticamente en la instalación y es a ese usuario al que tienes que definirle las variables de entorno.
Saludos.
gracias por el tutorial para instalarlo en el ultimo centos!
tengo una duda ya que me he atascado y no consigo solucionarlo. todo me funciona correctamente excepto cuando intento hacer una conexión desde el oracle SQL developer (desde otra máquina, siempre tengo error en de
pd: me he peleado con los tsnames y el listener.ora pero no hay manera de acceder desde otra máquina al oracle, sin embargo en local sin problemas.
el error es el siguiente:
The Network Adapter Could Not Establish The Connection Error
Sabes que puede ser?
gracias de nuevo
Hola Juan,
Por el error que te da y lo que comentas tiene pinta como que no tienes abierto el puerto 1521 en el Firewall de CentOS, ábrelo y prueba de nuevo a realizar la conexión.
Saludos.
Gracias Mil!!
Efectivamente, mira que he hecho pruebas.
Por si a alguien le pasa:
systemctl disable firewalld
Me alegro que se haya solventado el problema.
Sino quieres deshabilitar completamente el cortafuegos también puedes abrir solo el puerto con el siguiente comando:
firewall-cmd —-zone=public —-add-port=1521/tcp —-permanent
Y después
firewall-cmd —-reload
Gracias por este artículo, excelente y al punto. Inlcuso para leer toda la documentación de Oracle para instalarla, no lo logré por los libs faltantes y este artículo me ayudó resolver.
Muchas gracias, sirvió perfecto!
Excelente post
Solo una consideracion a quien lo necesite
Me salio un error de sga_target que era muy bajo
modifique con nano /etc/init.d/oracle-exe-18c
cambie donde dice
-initParams sga_target=500M
Esto lo hice antes de ejecutar: /etc/init.d/oracle-xe-18c configure
Muchas gracias Roberto por el aporte seguro que le será útil a alguna persona que se encuentre con tu mismo problema.
Saludos.
Muchísimas gracias por haber escrito este tremendo tutorial.
Traté de instalar esta versión en Centos 8, y me fui dando de golpe en golpe avanzando hasta que no pude más, y sinceramente, acá estaba cada uno de los problemas que tuve, tanto los que pude resolver por mi mismo como los que no. Intenté nuevamente siguiendo tus instrucciones, y no fallé en nada, quedó instalado al primer intento, así que solo que me queda agradecer.
Me alegro mucho Pablo que te haya servido de ayuda.
Gracias por tu comentario.
Saludos.