oracle-xe

Instalación y configuración

Notas previas

Esta práctica se realiza en Ubuntu 16.04 con Oracle Database 18c Express Edition.

Antes de instalar Oracle 18c

Nos dirigimos a la página oficial para descargar Oracle Database 18c Express Edition. Con clic derecho obtenemos la URL del archivo y nos los descargamos desde la línea de comandos:

wget https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-18c-1.0-1.x86_64.rpm

Como te habrás podido dar cuenta, el formato del archivo de instalación es RPM que es utilizado por las distribuciones basadas en Red Hat. Pero nosotros estamos en Ubuntu basada en Debian que utiliza el formato DEB. Entonces, ¿cómo podemos instalar en paquete con un formato incompatible con las distribuciones basadas en Debian? Es sencillo, convirtiendo el paquete a DEB.

Para ello primero necesitamos: alien y sus dependencias que son las encargadas en realizar esta tarea:

sudo apt install alien libaio1 unixodbc

Convertimos el paquete:

sudo alien --scripts -d oracle-database-xe-18c-1.0-1.x86_64.rpm

La conversión dura alrededor de 1 h 30 m dependiendo de la potencia de tu ordenador. Cuando termine, lo guardamos.

Antes de instalar el paquete, tenemos que configurar algunas cosas. Empezamos creando un script:

sudo nano /sbin/chkconfig

Y copiamos estas líneas en el archivo:

#!/bin/bash
# Oracle XE installer chkconfig hack for Ubuntu
file=/etc/init.d/oracle-xe
if [[ ! `tail -n1 $file | grep INIT` ]]; then
echo >> $file
echo '### BEGIN INIT INFO' >> $file
echo '# Provides: OracleXE' >> $file
echo '# Required-Start: $remote_fs $syslog' >> $file
echo '# Required-Stop: $remote_fs $syslog' >> $file
echo '# Default-Start: 2 3 4 5' >> $file
echo '# Default-Stop: 0 1 6' >> $file
echo '# Short-Description: Oracle 11g Express Edition' >> $file
echo '### END INIT INFO' >> $file
fi
update-rc.d oracle-xe defaults 80 01

Damos los permisos necesarios al archivo:

sudo chmod 755 /sbin/chkconfig

Oracle 18c XE requiere de una configuración especial en kernel para funcionar. Por eso necesitamos añadir algunos parámetros al mismo.

sudo nano /etc/sysctl.d/60-oracle.conf

Copiamos lo siguiente y guardamos.

fs.file-max=6815744
net.ipv4.ip_local_port_range=9000 65000
kernel.sem=250 32000 100 128
kernel.shmmax=536870912

Para cargar los parámetros del kernel sin reiniciar:

sudo service procps start

Instalación de Oracle 18c

Y ahora sí, por fin instalamos el paquete que antes nos ha llevado tanto tiempo convertir:

sudo dpkg -i oracle-database-xe-18c_1.0-2_amd64.deb

Después de unos 10 minutos el proceso terminará. Ejecutamos el siguiente comando para configurar la contraseña de administrador de la base de datos y demás cosas:

sudo /etc/init.d/oracle-xe-18c configure

oracle-xe-18c-configure-error

Veremos que da error. Eso se debe a que en al script de configuración le hace falta un parámetro. Para añadirlo entramos en el script con:

sudo nano /etc/init.d/oracle-xe-18c

Buscamos la línea el texto:

Doracle.assistants.dbca.validate.DBCredentials=false

Y justo después añadimos el parámetro:

-J-Doracle.assistants.dbca.validate.ConfigurationParams=false

Quedando de esta manera:

configurar_parametros_oracle-xe-18c

Ahora lo intentamos de nuevo:

sudo /etc/init.d/oracle-xe-18c configure

oracle-xe-18c-configure_correcto

Añadimos las variables de entorno a bash:

nano ~/.bashrc

Copiamos las siguientes líneas al final del fichero:

export ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE
export ORACLE_SID=XE
export ORACLE_BASE=/opt/oracle
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH

Para finalizar reiniciamos el servicio de Oracle 18c:

service oracle-xe-18c restart

Comprobación

Para ello primero tenemos que iniciar sesión con SQL*Plus, o como en mi caso con Oracle SQL Developer. Por línea de comandos (SQL*Plus) entramos con este comando:

sql sys as sysdba

Podemos comprobar que todo funciona correctamente realizando alguna consulta a la base de datos.

select_comprobacion_oracle-database_18c

Y esto es todo.

 

Fuente: lignux

¿Quién está en línea?

Hay 2771 invitados y ningún miembro en línea