Esta práctica se realiza en Ubuntu 16.04 con Oracle Database 18c Express Edition.
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:
1 |
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:
1 |
sudo apt install alien libaio1 unixodbc |
Convertimos el paquete:
1 |
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:
1 |
sudo nano /sbin/chkconfig |
Y copiamos estas líneas en el archivo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/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:
1 |
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.
1 |
sudo nano /etc/sysctl.d/60-oracle.conf |
Copiamos lo siguiente y guardamos.
1 2 3 4 |
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:
1 |
sudo service procps start |
Y ahora sí, por fin instalamos el paquete que antes nos ha llevado tanto tiempo convertir:
1 |
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:
1 |
sudo /etc/init.d/oracle-xe-18c configure |
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:
1 |
sudo nano /etc/init.d/oracle-xe-18c |
Buscamos la línea el texto:
1 |
<span lang="es-ES"><i><b>Doracle.assistants.dbca.validate.DBCredentials=false</b></i></span> |
Y justo después añadimos el parámetro:
1 |
<span lang="es-ES"><i><b>-</b></i></span><span lang="es-ES"><i><b>J-</b></i></span><span lang="es-ES"><i><b>Doracle.assistants.dbca.validate.ConfigurationParams=false</b></i></span> |
Quedando de esta manera:
Ahora lo intentamos de nuevo:
1 |
sudo /etc/init.d/oracle-xe-18c configure |
Añadimos las variables de entorno a bash:
1 |
nano ~/.bashrc |
Copiamos las siguientes líneas al final del fichero:
1 2 3 4 5 |
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:
1 |
service oracle-xe-18c restart |
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:
1 |
sql sys as sysdba |
Podemos comprobar que todo funciona correctamente realizando alguna consulta a la base de datos.
Como os suelo decir si tenéis alguna duda preguntad por los comentarios o por el grupo de Telegram de LiGNUx @liGNUx.
Espero que os haya sido útil 🙂
¡Nos leemos!