Cómo acceder a un servidor de base de datos Oracle 21c desde un equipo Linux Ubuntu Server 24. Cómo instalar Oracle Instant Cliente en Linux Ubuntu de dos formas: manual y con despliegue de paquete RPM.
- Requisitos para acceso a Oracle desde Linux Ubuntu Server.
- Instalar Oracle Instant Client en Linux Ubuntu Server de forma manual.
- Instalar cliente Oracle mediante paquete RPM con Alien.
- Acceso a servidor Oracle 21c desde equipo Linux Ubuntu Server 24.
Requisitos para acceso a Oracle desde Linux Ubuntu Server
Como es evidente, necesitaremos disponer de un servidor con Oracle Database. En el siguiente enlace indicamos cómo desplegar Oracle Database 21c en Docker en cuestión de segundos:
En el equipo cliente con Linux Ubuntu Server, antes de hacer nada más, es recomendable hacer update y un upgrade, con el comando:
1 |
sudo apt update && sudo apt upgrade |
Si optamos por la instalación del cliente de Oracle mediante paquete RPM, instalaremos Alien:
1 |
sudo apt install alien |
Necesitaremos la herramienta unzip, si no la tenemos instalada, la instalaremos con:
1 |
sudo apt install unzip |
Instalar Oracle Instant Client en Linux Ubuntu Server de forma manual
Para la instalación de Oracle Instant Cliente de forma manual en Linux Ubuntu Server, crearemos una carpeta en /opt/oracle, donde dejaremos los ficheros necesarios para su funcionamiento. Para ello, ejecutaremos el siguiente comando:
1 |
sudo mkdir -p /opt/oracle |
Accederemos a la carpeta creada con:
1 |
cd /opt/oracle |
Descargaremos el fichero comprimido con los ficheros necesarios para el funcionamiento de Oracle Instant Client, tanto el básico como el que contiene sqlplus, los enlaces los tenemos disponibles en la web oficial de Oracle;
Elegiremos la versión apropiada para nuestra instalación. En este caso, dado que el servidor de Oracle está en la versión 21c, elegiremos las descargas siguientes:
Versión | Paquete | Enlace a la descarga |
Base – Version 21.16.0.0.0 (Requires glibc 2.14) | Basic Package (ZIP) | instantclient-basic-linux.x64-21.16.0.0.0dbru.zip |
Tools – Version 21.16.0.0.0 (Requires glibc 2.14) | SQL*Plus Package (ZIP) | instantclient-sqlplus-linux.x64-21.16.0.0.0dbru.zip |
Descargaremos ambos ficheros .zip en la carpeta creada con:
1 2 |
sudo wget https://download.oracle.com/otn_software/linux/instantclient/2116000/instantclient-basic-linux.x64-21.16.0.0.0dbru.zip sudo wget https://download.oracle.com/otn_software/linux/instantclient/2116000/instantclient-sqlplus-linux.x64-21.16.0.0.0dbru.zip |
Descomprimiremos ambos ficheros con:
1 2 |
sudo unzip instantclient-basic-linux.x64-21.16.0.0.0dbru.zip sudo unzip instantclient-sqlplus-linux.x64-21.16.0.0.0dbru.zip |
Los ficheros quedarán descomprimidos en la carpeta:
/opt/oracle/instantclient_21_16
Configuraremos el perfil para indicar dónde residen las librerías necesarias para la ejecución del cliente de oracle y de sqlplus. Para ello, ejecutaremos el comando:
1 |
nano ~/.profile |
Y, al final del fichero, añadiremos las siguientes líneas (indicando la carpeta anterior donde hemos descomprimido los ficheros .zip):
1 2 |
export PATH="$PATH:/opt/oracle/instantclient_21_16" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/oracle/instantclient_21_16" |
Guardaremos los cambios pulsando Control + O y cerraremos la edición pulsando Control + X.
Ejecutaremos el siguiente comando para que se aplique el cambio realizado en el perfil:
1 |
source ~/.profile |
Es conveniente reiniciar el equipo, lo haremos con el comando:
1 |
shutdown -r now |
Tras el reinicio, comprobaremos si tenemos todas las librerías requeridas por Oracle Instant Client, entre ellas, la habitualmente «problemática», suele ser libaio.so.1. Para comprobar si la herramienta sqlplus la ha encontrado, ejecutaremos el comando:
1 |
ldd /usr/bin/sqlplus64 |
Nos devolverá las dependencias de sqlplus y las que no ha encontrado, en este caso la librería libaio.so.1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
linux-vdso.so.1 (0x00007ffcf3ac1000) libsqlplus.so => /usr/lib/oracle/21/client64/lib/libsqlplus.so (0x00007b9d9f000000) libclntsh.so.21.1 => /usr/lib/oracle/21/client64/lib/libclntsh.so.21.1 (0x00007b9d9a800000) libclntshcore.so.21.1 => /usr/lib/oracle/21/client64/lib/libclntshcore.so.21.1 (0x00007b9d9a000000) libnnz21.so => /usr/lib/oracle/21/client64/lib/libnnz21.so (0x00007b9d99600000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007b9d9f689000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007b9d9f59e000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007b9d9f599000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007b9d9f594000) libaio.so.1 => not found libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007b9d9f581000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007b9d99200000) /lib64/ld-linux-x86-64.so.2 (0x00007b9d9f698000) libaio.so.1 => not found libaio.so.1 => not found libaio.so.1 => not found |
Si ahora intentáramos ejecutamos sqlplus, nos devolverá el error:
sqlplus: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
Para evitar el error anterior, revisamos que tenemos instalada la librería libaio1t64: La podemos instalar con el comando:
1 |
apt install libaio1t64 libaio-dev |
Y añadimos un enlace simbólico a la librería para que sqlplus la encuentre:
1 |
sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 |
Con esto, ya debería dejarnos conectar al servidor de Oracle desde nuestro equipo Linux Ubuntu Server, como indicamos en este apartado.
Instalar cliente Oracle mediante paquete RPM con Alien
Si optamos por instalar Oracle Instant Client mediante despliegue del paquete RPM en Linux Ubuntu Server, necesitaremos instalar la herramienta Alien (como hemos indicado en los requisitos), para desplegar paquetes rpm en Linux Ubuntu. Para el caso de despliegue mediante RPM, descargaremos los ficheros RPM necesarios para la instalación, tanto el basic como el que contiene sqlplus. Al igual que en el caso de la instalación manual, accederemos a la web oficial de Oracle y descargaremos los ficheros apropiados para la versión del servidor de Oracle de que dispongamos, en este caso la 21c. Los ficheros a descargar para esta versión serán:
Versión | Paquete | Enlace a la descarga |
Base – Version 21.16.0.0.0 (Requires glibc 2.14) | Basic Package (OL8 RPM) | oracle-instantclient-basic-21.16.0.0.0-1.el8.x86_64.rpm |
Tools – Version 21.16.0.0.0 (Requires glibc 2.14) | SQL*Plus Package (OL8 RPM) | oracle-instantclient-sqlplus-21.16.0.0.0-1.el8.x86_64.rpm |
Descargaremos ambos ficheros .rpm en la carpeta creada anteriormente /opt/oracle, con:
1 2 |
sudo wget wget https://download.oracle.com/otn_software/linux/instantclient/2116000/oracle-instantclient-basic-21.16.0.0.0-1.el8.x86_64.rpm sudo wget https://download.oracle.com/otn_software/linux/instantclient/2116000/oracle-instantclient-sqlplus-21.16.0.0.0-1.el8.x86_64.rpm |
Realizaremos la instalación del paquete RPM básico con el comando:
1 |
sudo alien -i oracle-instantclient-basic-21.16.0.0.0-1.el8.x86_64.rpm |
Puede que nos muestre algún warning en el despligue, pero el paquete quedará instalado:
Y el del paquete RMP de SQL*Plus con el comando:
1 |
sudo alien -i oracle-instantclient-sqlplus-21.16.0.0.0-1.el8.x86_64.rpm |
Al igual que en el caso del paquete básico, puede que nos muestre algún warning, pero el paquete quedará instalado:
En el caso de la instalación mediante RPM de Oracle Instant Client, no sería necesario añadir manualmente los export al fichero del perfil, como hemos tenido que hacer en el caso de la instalación manual.
Al igual que ocurre con la instalación manual, si intentamos ejecutar sqlplus, nos devolverá el error:
sqlplus: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
Para evitar el error anterior, revisamos que tenemos instalada la librería libaio1t64: La podemos instalar con el comando:
1 |
apt install libaio1t64 libaio-dev |
Y añadimos un enlace simbólico a la librería para que sqlplus la encuentre:
1 |
sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 |
Con esto, ya debería dejarnos conectar al servidor de Oracle desde nuestro equipo Linux Ubuntu Server, como indicamos en este apartado.
Acceso a servidor Oracle 21c desde equipo Linux Ubuntu Server 24
Para probar el acceso desde el equipo Linux Ubuntu Server 24 con Oracle Instant Client al servidor de Oracle Database 21c, usaremos la herramienta SQL*Plus, instalada anteriormente.
Para evitar el siguiente error al conectar con SQL*Plus a Oracle:
ORA-12162: TNS:net service name is incorrectly specified
Añadiremos una variable de entorno llamada ORACLE_SID con el el nombre del SID de la instancia de Oracle a la que queramos conectarnos, en este caso el SID de Oracle es ORCLDB, por lo que ejecutaremos el siguiente comando para crear la variable de entorno ORACLE_SID con este valor:
1 |
export ORACLE_SID=ORCLCDB |
Para acceder al servidor de Oracle, necesitaremos conocer la dirección IP, el usuario y la contraseña de acceso. Ejecutando el siguiente comando:
1 |
sqlplus usuario@direccion_ip/SID |
Por ejemplo, para conectar al servidor de Oracle con la IP 192.168.1.10, el SID de Oracle ORCLCDB y el usuario «system», ejecutaremos el comando:
1 |
sqlplus system@192.168.1.10/ORCLCDB |
Nos solicitará la contraseña del usuario system y accederemos al servidor de Oracle desde Linux Ubuntu Server:
Por ejemplo, ejecutaremos la siguiente consulta SQL, que nos devolverá el estado de la base de datos y el nombre del SID de Oracle al que nos hemos conectado:
Podremos formatear la salida y mostrar los registros de la tabla facturas, ejecutando, para formatear la salida, las siguiente sentencias:
1 2 3 4 |
column fecha format A10 column importe format $999,999,999.99 column cliente format A10 set linesize 50 |
Y para mostrar todos los registros de la tabla facturas del servidor de Oracle:
1 |
select * from facturas; |