Linux: Instalación Oracle 18c XE en CentOS 8 mediante consola

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.

15 comentarios en «Linux: Instalación Oracle 18c XE en CentOS 8 mediante consola»

  1. Cuando ingreso…
    sqlplus sys as sysdba
    … me sale el siguiente error:
    bash: sqlplus: no se encontró la orden…

    ¿Qué puedo hacer al respecto?

    Responder
    • 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.

      Responder
  2. 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

    Responder
    • 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.

      Responder
        • 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

          Responder
  3. 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.

    Responder

Deja un comentario