Seguramente andes buscando una guía fácil y sencilla con la que instalar una base de datos Oracle para practicar las consultas SQL que andas aprendiendo, pero hasta ahora no has encontrado nada que te cuente paso por paso como hacerlo. No te preocupes, que ya estoy yo aquí.
En esta nueva entrada te voy a contar como instalar Oracle 21c XE en Oracle Linux 8. Próximamente publicaré como instalarlo en Windows, pero aquí somos más de pingüinos.
La paquetería que usaremos será rpm, por lo que las instrucciones deberían servirte para otras distribuciones que usen estos paquetes (como CentOS).
¿Qué es Oracle XE?
Oracle Express Edition o XE es la versión gratuita de la base de datos relacional más conocida del mundo, con el objetivo de introducir en el universo Oracle a administradores de bases de datos (DBA’s), desarrolladores, formadores y estudiantes.
Es decir, es la forma que tiene el gigante de ofrecer el caramelito para que los niños lo prueben y quieran más.
Actualmente (diciembre de 2022) se ofrece la versión 21c, correspondiente a la última versión disponible si escoges el software de base de datos general.
Gratis, si, pero con limitaciones
Obviamente, Oracle no es tonto. Te ofrece una base de datos totalmente gratuita pero que lleva incorporada algunas limitaciones que debes tener en cuenta para trabajar con ella:
- Solo 2 CPUs. Aunque tu equipo o máquina virtual disponga de más, Oracle XE solo usará 2 procesadores.
- Máximo de 2GB de RAM (SGA y PGA combinadas).
- Almacenamiento de hasta 12GB de datos de usuario.
- Una sola instancia por servidor.
- Máximo de 252 bases de datos conectables (Pluggable Databases).
Si en algún momento superas estas limitaciones, el propio Oracle te ofrecerá saltar a una versión mejorada (previo pago, claro está).
Si necesitas ayuda, debes saber que Oracle XE no está adherida al programa de Oracle Support, solo dispondrás del foro oficial. Además, esta base de datos no recibirá parches de actualización o de seguridad.
Ofrece buenas ventajas
Aunque tenga las limitaciones antes mencionadas, Oracle XE te va a ofrecer como decimos una base de datos gratuita, la cual puedes usar para aprender o para implementarla en producción en pequeños negocios.
Oracle XE viene integrado con Oracle Application Express (APEX), una herramienta de desarrollo rápido que te permitirá crear aplicaciones webs sin muchos conocimientos de programación.
Además, te permitirá integraciones con PL/SQL, Ajax, Java, C/C++, PHP, .NET y ODBC. Para redondear la herramienta, debes saber que puedes instalar Oracle XE en entornos virtualizados (como Docker, VirtualBox o VMWare).
Como instalar Oracle 21c XE en Oracle Linux 8
Bien, ahora que ya conoces que es Oracle 21c XE y lo que ofrece, es hora de ponernos manos a la obra.
Yo voy a realizar esta instalación sobre una máquina virtual que me he montado en VMWare, pero te sirve de igual manera si tu virtualizas sobre VirtualBox o tienes Oracle Linux sobre una máquina física. Las características de dicha virtual machine son muy cortitas: 2GB de RAM, 2 procesadores y 50GB de disco duro. Como ves, voy al filo de la navaja en rendimiento, pero para mostrar cuatro capturas va que chuta.
Preparando lo necesario
La instalación de Oracle 21c XE consta de dos simples paquetes: la propia base de datos y un preinstall que se encarga de realizar ajustes básicos del sistema por ti (límites de semáforos, creación de usuario Oracle y grupos como oinstall, etc).
En Oracle Linux 8 vamos a tener dos formas distintas de realizar esta instalación: de manera gráfica con el gestor de paquetes .rpm (siempre que hayas instalado, obviamente, una interfaz gráfica) o a través de consola. Yo he añadido un entorno gráfico durante la instalación, pero usaré la consola gráfica.
Lo primero es descargar ambos paquetes .rpm del repositorio oficial de Oracle. Para ello, lanzamos los dos siguientes comandos (necesitamos permisos de sudo o realizarlo con root).
[pdelgado@vmOL8 ~]$ sudo wget -q -O /home/pdelgado/Descargas/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
[pdelgado@vmOL8 ~]$ sudo wget -q -O /home/pdelgado/Descargas/oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm
[pdelgado@vmOL8 Descargas]$ ls -l
total 2284852
-rw-r--r--. 1 root root 30772 jul 13 2021 oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm
-rw-rw-r--. 1 root root 2339651768 sep 8 2021 oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
Os explico un poco el comando utilizado y las opciones:
sudo wget Estamos ejecutando con permisos de sudo el comando wget, que será el encargado de descargar nuestro fichero.
-q Es la opción correspondiente a quiet o, lo que es lo mismo, que no muestre por pantalla que está haciendo.
-O home/pdelgado/Descargas/oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm Indicamos en que ruta debe guardarse el fichero junto al nombre que deseamos ponerle.
URL La dirección donde se encuentra el fichero a descargar.
Instalando los paquetes
Bien, ahora que tenemos los dos ficheros necesarios, vamos a proceder con la instalación. Ya que estamos en OL8, usaremos el comando dnf para ello, aunque podemos usar igualmente yum. A gusto del consumidor.
Primero, el preinstall:
[pdelgado@vmOL8 Descargas]$ sudo dnf -y localinstall oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm
Como hemos mencionado antes, este paquete prepara el sistema para albergar una base de datos Oracle: crea usuarios y grupos, cambia valores de semáforos del sistema, etc. Cuando termine, pasamos a la base de datos.
[pdelgado@vmOL8 Descargas]$ sudo dnf -y localinstall oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
Última comprobación de caducidad de metadatos hecha hace 0:27:13, el mar 13 dic 2022 20:31:29 CET.
Dependencias resueltas.
================================================================================
Paquete Arquitectura Versión Repositorio Tam.
================================================================================
Instalando:
oracle-database-xe-21c x86_64 1.0-1 @commandline 2.2 G
Resumen de la transacción
================================================================================
Instalar 1 Paquete
Tamaño total: 2.2 G
Tamaño instalado: 5.8 G
Descargando paquetes:
Ejecutando verificación de operación
Verificación de operación exitosa.
Ejecutando prueba de operaciones
Prueba de operación exitosa.
Ejecutando operación
Preparando : 1/1
Ejecutando scriptlet: oracle-database-xe-21c-1.0-1.x86_64 1/1
Instalando : oracle-database-xe-21c-1.0-1.x86_64 1/1
Ejecutando scriptlet: oracle-database-xe-21c-1.0-1.x86_64 1/1
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure Oracle Database XE, optionally modify the parameters in '/etc/sysconfig/oracle-xe-21c.conf' and then execute '/etc/init.d/oracle-xe-21c configure' as root.
Verificando : oracle-database-xe-21c-1.0-1.x86_64 1/1
Instalado:
oracle-database-xe-21c-1.0-1.x86_64
¡Listo!
Vale, la base de datos ya está instalada. Pero aún nos falta un último paso: la configuración final. Si lees la salida del comando de arriba, verás que te indica que opcionalmente puedes editar el fichero oracle-xe-21c.conf y que después ejecutes el demonio de configuración como root.
Creación y configuración de la base de datos
Bien, vayamos primero con el fichero de configuración. Si lo abrimos , vamos a encontrar algunos parámetros interesantes que debes conocer:
- LISTENER_PORT Aquí podemos indicar que puerto del equipo es el que debe aceptar conexiones con nuestra base de datos. Te recomiendo que uses el 1521, que es el puerto por defecto.
- EM_EXPRESS_PORT El puerto que usará Oracle Enterprise Manager Express para conexiones vía web. Esta utilidad es un gestor de nuestra base de datos que podemos usar desde Chrome, Firefox o el que te guste. Dejaremos el puerto por defecto, el 5500.
- CHARSET El juego de caracteres que tendrá toda la base de datos.
- DBFILE_DEST La ruta donde se almacenarán los ficheros. Por defecto, estará en base/oradata.
- DB_DOMAIN El dominio donde estará la base de datos
- SKIP_VALIDATIONS Esta opción, si está activada, omitirá las comprobaciones previas de memoria, espacio, etc. Por defecto, está deshabilitada, por lo que se chequearan los parámetros.
Teniendo en cuenta estos parámetros comentados, os recomiendo que solo modifiquéis el puerto del listener, dado que si lo dejamos vacío se usará un puerto aleatorio en cada arranque. El resto de parámetros, a no ser que seas experimentado, te recomiendo no tocarlos.
De esta forma, el fichero quedará así:
[pdelgado@vmOL8 Descargas]$ sudo vi /etc/sysconfig/oracle-xe-21c.conf
#This is a configuration file to setup the Oracle Database.
#It is used when running '/etc/init.d/oracle-xe-18c configure'.
# LISTENER PORT used Database listener, Leave empty for automatic port assignment
LISTENER_PORT=1521
# EM_EXPRESS_PORT Oracle EM Express URL port
EM_EXPRESS_PORT=5500
# Character set of the database
CHARSET=AL32UTF8
# Database file directory
# If not specified, database files are stored under Oracle base/oradata
DBFILE_DEST=
# DB Domain name
DB_DOMAIN=
# SKIP Validations, memory, space
SKIP_VALIDATIONS=false
Y ahora que tenemos el fichero de parámetros lanzamos el demonio de configuración, el cual usará el fichero que acabamos de editar para establecer las opciones correctas.
[pdelgado@vmOL8 Descargas]$ sudo /etc/init.d/oracle-xe-21c configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database XE.
Introduzca la contraseña de usuario SYS:
**********
Introduzca la contraseña de usuario SYSTEM:
*********
Introduzca la contraseña de usuario de PDBADMIN:
********
Preparar para funcionamiento de base de datos
7% completado
Copiando archivos de base de datos
29% completado
Creando e iniciando instancia Oracle
30% completado
33% completado
37% completado
40% completado
43% completado
Terminando creación de base de datos
47% completado
50% completado
Creando Bases de Datos de Conexión
54% completado
71% completado
Ejecutando acciones posteriores a la configuración
93% completado
Ejecutando archivos de comandos personalizados
100% completado
Creación de la base de datos terminada. Consulte los archivos log de /opt/oracle/cfgtoollogs/dbca/XE
para obtener más información.
Información de Base de Datos:
Nombre de la Base de Datos Global:XE
Identificador del Sistema (SID):XE
Para obtener información detallada, consulte el archivo log "/opt/oracle/cfgtoollogs/dbca/XE/XE.log".
Connect to Oracle Database using one of the connect strings:
Pluggable database: vmOL8/XEPDB1
Multitenant container database: vmOL8
Use https://localhost:5500/em to access Oracle Enterprise Manager for Oracle Database XE
Este proceso de configuración nos pedirá nada más lanzarlo que introduzcamos la contraseña para los usuarios SYS, SYSTEM y PDBADMIN, los cuales tienen permisos de administración sobre la propia base de datos.
Si nos fijamos en las últimas líneas, vemos que nos indica varios aspectos importantes: la ruta del log de instalación (por si deseamos consultarlo), el nombre global de la base de datos, el SID y las cadenas de conexión para la base de datos pluggable y el container Multitenant.
Debemos tener en cuenta que Oracle 21c XE incluye los conceptos y tecnologías de Bases de Datos Pluggables (PDB) y Contenedor de Bases de Datos (CDB), presentes desde la versión 12c. Son tecnologías específicas que no necesitas conocer a no ser que vayas a administrar dichas bases de datos. De todas formas, en entradas futuras trataré de explicaros estos conceptos.
Finalizada la instalación, ya podemos afirmar que tenemos Oracle 21c XE corriendo en nuestra máquina. Solo necesitamos hacer un poco de magia con el comando ps para comprobar que tanto la base de datos como el listener están arriba:
[pdelgado@vmOL8 Descargas]$ ps -fea | grep pmon
oracle 18132 2249 0 10:36 ? 00:00:00 xe_pmon_XE
[pdelgado@vmOL8 Descargas]$ ps -fea | grep tns
root 23 2 0 dic13 ? 00:00:00 [netns]
oracle 15914 2249 0 10:22 ? 00:00:01 /opt/oracle/product/21c/dbhomeXE/bin/tnslsnr LISTENER -inherit
Por un lado, tenemos el proceso PMON (Process Monitor) que, a grandes rasgos (y con muchas comillas), se trata de la base de datos en si. Por otro, el tnslsnr, que es el listener. Como se puede apreciar, ambos procesos pertenecen al usuario oracle, que ya está creado en nuestro sistema tras haber instalado el preinstall.
[pdelgado@vmOL8 Descargas]$ sudo su - oracle
[sudo] password for pdelgado:
[oracle@vmOL8 ~]$
Si os parece, os detallo a continuación el listado de directorios útiles de nuestra base de datos.
Directorios y ficheros útiles de la base de datos | Descripción |
---|---|
/opt/oracle | Esta es la ruta correspondiente a $ORACLE_BASE |
/opt/oracle/product/21c/dbhomeXE | Es el $ORACLE_HOME. Contiene los directorios, ficheros y ejecutables necesarios para nuestra base de datos |
/opt/orace/oradata/XE | Ficheros de la base de datos |
/opt/oracle/diag | Contiene los logs de diagnóstico de la base de datos albergados en sus distintos subdirectorios |
/opt/oracle/cfgtoollogs/dbca/XE | Contiene los logs de creación de la base de datos |
/etc/sysconfig/oracle-xe-21c.conf | El fichero que hemos editado antes con la configuración de parámetros |
/etc/init.d/oracle-xe-21c | Scripts de configuración y servicios de la base de datos, entre ellos, para arrancarla/deternla |
Oracle Enterprise Manager
Una de las utilidades que se instalan con nuestra base de datos es Oracle Enterprise Manager, un conjunto de herramientas basadas en web, que están destinadas a administrar productos de Oracle. Obviamente, tal como la propia base de datos, es una versión descafeinada.
Tal como nos indicaba el final de la instalación, podemos acceder mediante un navegador en la dirección https://localhost:5500/em. Nos mostrará una pantalla para hacer login, donde solo debemos introducir sys como usuario y la password que definiéramos en la instalación. El campo de Container Name no es necesario.
Podemos trastear un poco en esta herramienta, que nos mostrará información y estado de la base de datos, la actividad, como se han repartido los recursos, los tablespaces… Está más destinada a administración que a usuarios normales, pero bueno, nunca está de más conocer algo nuevo aunque sea de pasada.
Post-instalación
Como ya sabemos, la base de datos se encuentra instalada y activa en nuestro sistema, pero aún nos falta por realizar una serie de pasos para dejarlo todo fino. No todos son necesarios, aunque te recomiendo que los hagas.
Añadir variables de entorno al profile del usuario Oracle
Aunque tengamos el usuario oracle creado en nuestro sistema, este aún no es capaz de ejecutar las utilidades de la base de datos si no introducimos las rutas absolutas de dichos comandos (comentadas en la tabla de arriba).
Por ejemplo, si yo ahora mismo intento lanzar un sqlplus (que es la utilidad de línea de comandos), me arrojará el siguiente error:
[oracle@vmOL8 ~]$ sqlplus "/as sysdba"
bash: sqlplus: no se encontró la orden...
Podría lanzar el comando con su ruta absoluta, pero para solucionar esto, basta con añadir las variables de entorno necesarias al profile de nuestro usuario oracle (recuerda que debes hacer este paso logado como oracle. Puedes saltar desde tu usuario nominal con un sudo su – oracle tal como ves en un poco más arriba).
Si hacemos un ls -la podremos ver los ficheros y directorios que tiene este usuario en su carpeta home. Ahora mismo, solo te saldrán los que tienen un punto (.) por delante, lo cual indica que son ficheros y directorios ocultos.
[oracle@vmOL8 ~]$ ls -la
total 16
drwx------. 4 oracle oinstall 106 dic 14 14:38 .
drwxr-xr-x. 4 root root 36 dic 9 16:37 ..
-rw-r--r--. 1 oracle oinstall 18 abr 7 2021 .bash_logout
-rw-r--r--. 1 oracle oinstall 141 abr 7 2021 .bash_profile
-rw-r--r--. 1 oracle oinstall 376 abr 7 2021 .bashrc
drwx------. 2 oracle oinstall 6 dic 14 14:38 .cache
-rw-r--r--. 1 oracle oinstall 172 oct 4 19:39 .kshrc
drwxr-xr-x. 4 oracle oinstall 39 dic 8 22:59 .mozilla
Tenemos que editar el fichero .bash_profile y añadir las siguientes líneas abajo del todo:
#VARIABLES ENTORNO PARA ORACLE
export ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE
export ORACLE_SID=XE
export PATH=$PATH:/opt/oracle/product/21c/dbhomeXE/bin
De esta manera, nuestro fichero .bash_profile quedará tal que así:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
#VARIABLES ENTORNO PARA ORACLE
export ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE
export ORACLE_SID=XE
export PATH=$PATH:/opt/oracle/product/21c/dbhomeXE/bin
Ahora, para probar que los cambios se han aplicado bien, saldremos de la sesión del usuario oracle, volveremos a entrar y lanzaremos el comando sqlplus.
[oracle@vmOL8 ~]$ exit
logout
[pdelgado@vmOL8 Descargas]$ sudo su - oracle
[sudo] password for pdelgado:
[oracle@vmOL8 ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 21.0.0.0.0 - Production on Wed Dec 14 14:53:41 2022
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Conectado a:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
SQL>
¡Genial! Ya tenemos en nuestro profile el acceso directo a las herramientas de la base de datos, como: sqlplus, lsnrctl (para el listener), etc.
Arrancar el demonio de la base de datos al iniciar el equipo
Como hemos comprobado antes con el comando ps, nuestra base de datos se encuentra arriba tras haberla instalado. Pero, ¿qué sucede si reiniciamos nuestra máquina?
[pdelgado@vmOL8 ~]$ ps -fea | grep pmon
[pdelgado@vmOL8 ~]$ ps -fea | grep tns
root 23 2 0 15:12 ? 00:00:00 [netns]
Como vemos, la base de datos se encuentra parada. Esto es porque no hemos configurado el arranque de la base de datos al iniciar nuestro sistema. Pero que no cunda el pánico (o, como decía El Chapulín Colorado, «que no panda el cúnico»).
Como root o haciendo uso de sudo, vamos a lanzar los siguientes comandos:
[pdelgado@vmOL8 ~]$ sudo systemctl daemon-reload
[sudo] password for pdelgado:
[pdelgado@vmOL8 ~]$ sudo systemctl enable oracle-xe-21c
oracle-xe-21c.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable oracle-xe-21c
Si volvemos a reiniciar la máquina y comprobamos nuevamente los procesos pmon y tns, veremos que ambos se encuentran arriba. A partir de ahora, cuando nuestro equipo se pare o reinicie, la base de datos arrancará con él.
[pdelgado@vmOL8 ~]$ ps -fea | grep pmon
oracle 1719 1 0 15:19 ? 00:00:00 xe_pmon_XE
[pdelgado@vmOL8 ~]$ ps -fea | grep tns
root 23 2 0 15:18 ? 00:00:00 [netns]
oracle 1449 1 0 15:19 ? 00:00:00 /opt/oracle/product/21c/dbhomeXE/bin/tnslsnr LISTENER -inherit
Con lo que llevamos visto hasta aquí, ya te es suficiente para trabajar con tu base de datos Oracle 21c XE. Pero yo te recomiendo realizar los dos siguientes pasos para que lo dejes todo perfecto.
Crear un usuario local en Oracle 21c XE
Entre toda la retahíla que llevo escribiendo, ¿recuerdas que más arriba comenté que desde la versión 12c, Oracle incluye las tecnologías de CDB y PDB? Sin querer entrar en detalles de lo que esto significa, porque este post no va enfocado a ello, te diré que lo más cómodo para un uso de aprendizaje de SQL sobre esta base de datos es que trabajes de manera local, sin hacer uso de las bases de datos pluggables ni de los contenedores.
Para esto, vamos a crear un usuario local con su correspondiente tablespace.
Nos conectamos como sysdba a nuestra base de datos a través de sqlplus y lanzamos la siguiente sentencia (recuerda estar logado como usuario oracle):
[oracle@vmOL8 ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 21.0.0.0.0 - Production on Wed Dec 14 16:37:51 2022
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Conectado a:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
SQL> alter session set "_ORACLE_SCRIPT"=true;
Sesion modificada.
Fíjate que estamos estableciendo el valor true al parámetro _ORACLE_SCRIPT (que lleva un guion bajo por ser un parámetro oculto de la base de datos) a nivel de sesión, es decir, esta modificación se perderá una vez cerremos sesión y si deseamos crear otro usuario local, deberemos volver a modificarlo.
Bien, ahora desde el mismo sqlplus, lanzaremos las sentencias necesarias para crear un tablespace llamado usuarios_locales, un usuario llamado pruebas y los permisos para que este usuario pueda hacer y deshacer en su tablespace a su antojo.
Primero, el tablespace:
SQL> CREATE TABLESPACE usuarios_locales
DATAFILE '/opt/oracle/oradata/XE/usuarios.dbf'
SIZE 500M
AUTOEXTEND ON NEXT 100M
MAXSIZE 1G;
Tablespace creado.
Fíjate que he creado el tablespace usuarios_locales, cuyo datafile está en la ruta que ya mencionamos antes y que se llama usuarios, con un tamaño de 500Mb y que podrá crecer, de 100Mb en 100Mb, hasta llegar a un máximo de 1Gb.
Ahora, creamos el usuario:
SQL> CREATE USER pruebas IDENTIFIED BY "password-a-elegir"
DEFAULT TABLESPACE usuarios_locales
TEMPORARY TABLESPACE temp;
El usuario pruebas tendrá como password lo que le pongamos entre las comillas, su tablespace será el creado anteriormente y como tablespace temporal usará uno de los que vienen con el sistema, temp.
Por último, los permisos:
SQL> GRANT CREATE SESSION TO pruebas;
Concesion terminada correctamente.
SQL> GRANT RESOURCE TO pruebas;
Concesion terminada correctamente.
SQL> GRANT UNLIMITED TABLESPACE TO pruebas;
Concesion terminada correctamente.
En Oracle, para conceder permisos a un usuario, utilizamos la cláusula GRANT, tal como puedes ver justo aquí arriba. Nosotros hemos otorgado estos:
- CREATE SESSION Permite al usuario conectarse a la base de datos
- RESOURCE Concedemos al usuario los permisos necesarios para crear objetos
- UNLIMITED TABLESPACE Indicamos que el usuario podrá hacer uso del tablespace completo, sin restricción de cuota.
Ya solo nos queda comprobar que podemos conectarnos, mediante consola, a nuestra base de datos con el usuario recién creado. Tenemos que lanzar el comando sqlplus, seguido de nuestro usuario, una barra (/) y la contraseña que le hayamos puesto al crearlo.
[oracle@vmOL8 ~]$ sqlplus pruebas/pruebas
SQL*Plus: Release 21.0.0.0.0 - Production on Thu Dec 15 15:55:22 2022
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Hora de Ultima Conexion Correcta: Mie Dic 14 2022 17:55:42 +01:00
Conectado a:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
SQL>
¡Et voilà! Nos conectamos con nuestro usuario pruebas y su password que, en mi caso, es también pruebas (originalidad y seguridad al poder.
Permitir conexiones externas a Oracle 21c XE
Ahora, vamos a configurar nuestra máquina virtual para que nos deje conectarnos desde fuera a la base de datos. Aunque yo solo habilito la conexión dentro de mi propia red local, recuerda que Oracle 21c XE puede usarse en producción para pequeños negocios. Si necesitas que la conexión se haga desde fuera de tu red, deberás configurar el acceso correctamente.
Lo primero que vamos a hacer es añadir una regla a nuestro demonio firewalld, permitiendo conexiones tcp al puerto 1521 (el que pusimos para nuestro Oracle). Esto debemos hacerlo como root o con permisos de sudo.
[root@vmOL8 ~]# firewall-cmd --permanent --add-port=1521/tcp
success
Bien, ahora, reiniciamos el servicio de firewalld para que se apliquen los cambios.
[root@vmOL8 ~]# service firewalld stop
[root@vmOL8 ~]# service firewalld start
¡Y listo! ¿Cómo podemos comprobarlo? Fácil: usando el comando telnet desde cualquier otro equipo a dicho puerto.
[delgadop.LAPTOP-5LJV1QHP] ➤ telnet 192.168.1.50 1521
Trying 192.168.1.50...
Connected to 192.168.1.50.
Escape character is '^]'.
Conectarnos a la base de datos desde SQLDeveloper
Y este es el último paso de nuestra guía, conectarnos mediante un cliente gráfico desde otro equipo a nuestra base de datos. Yo he usado SQLDeveloper, pero podrás usar otro como DBeaver, etc.
Para conectarnos como usuario SYS (que es el administrador de la base de datos):
Rellenamos los siguientes campos:
- Name Que será como guardarás la conexión en el Developer
- Usuario En este caso, sys. Recuerda marcar el rol de SYSDBA
- Contraseña Que definiste al ejecutar la configuración de la bbdd
- Nombre del Host que puedes poner la dirección IP o el nombre de la máquina en el caso de que lo resuelvas por DNS o lo tengas en el fichero hosts de tu equipo
- Puerto que será el 1521 que definimos antes
- SID Que, en nuestro caso, es xe.
Listo. Abajo de esta ventana puedes darle a Probar, Guardar o Conectar.
Si por el contrario quieres conectarte con el usuario pruebas, deja así tu conexión:
Fíjate que he cambiado el usuario (y, por extensión, la contraseña) y he quitado el rol de SYSDBA. Con esto ya es suficiente para conectarte y empezar a trabajar.
C’est fini.
Conclusión
Y hasta aquí hemos llegado con esta mega entrada/manual/PoC sobre como instalar Oracle 21c XE en Oracle Linux 8.
He intentado desgranarte todo lo posible el procedimiento de como instalar esta base de datos que ofrece Oracle de manera gratuita: la descarga de paquetes, la instalación de ambos, la configuración y creación de la base de datos, añadir las variables a un profile de Linux… ¡Todo!
Aún así, si encuentras un paso que no está del todo bien explicado, dímelo en los comentarios e intentaré simplificarlo más aún.
En futuras entradas publicaré como realizar la instalación de Oracle 21c XE sobre Windows.
Y ahora, como siempre, ¿me ayudas a difundir este post por redes sociales? Tienes los botones justo abajo.
Recuerda suscribirte a nuestra newsletter para no perderte ninguna novedad en nuestra web. Tienes el formulario justo aquí debajo y en el pie de página. Solo recibirás la notificación de que hemos publicado una nueva entrada, ¡nada más!
Hasta la próxima, ¡un saludo!