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
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:
Ahora lo intentamos de nuevo:
sudo /etc/init.d/oracle-xe-18c configure
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.
Y esto es todo.
Fuente: lignux