Instalar Oracle XE 11g R2 en Ubuntu

Hola a todos, en esta entradas veremos como instalar Oracle XE 11g R2 en Ubuntu, creo esta entrada ya que no había encontrado información sobre su instalación en Español y no solo eso, sino que la instalación es un poco "infierno", y así lo dejo por escrito para mi.

Bueno, antes de nada tengo que deciros que en la versión 11g tiene ya APEX (Aplication Express), si queréis que funcione tal y como muestra en este tutorial, no tenéis que tener apache instalado.

1. Instalación Oracle XE

Oracle XE esta oficialmente soportado para plataformas windows y las distribuciones basadas en Red Hat incluyendo a esta. Las distribuciones Linux basadas en Debian, como es el caso de Ubuntu, no están oficialmente soportadas por lo tanto la instalación sera mucho más dura.

Lo primero de todo es descargarse la versión XE de oracle Download Oracle Database Express Edition 11g R2

 Cuando lo tengamos descargado lo tenemos que descomprimir

unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip

Esto nos generará una carpeta llamada Disk1

Ahora instalamos los paquetes requeridos para la instalación

apt-get install alien libaio1

Ahora convertimos el paquete .rpm a .deb con alien

cd Disk1
sudo alien --scripts oracle-xe-11.2.0-1.0.x86_64.rpm

creamos un archivo /sbin/chkconfig con la siguiente información dentro (es necesario ser root)

#!/bin/bash
# Oracle 11gR2 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 privilegios al archivo

chmod 755 /sbin/chkconfig

Creamos el archivo /etc/sysctl.d/60-oracle.conf con la siguiente información (necesario ser root)

# Oracle 11g XE kernel parameters
fs.file-max=6815744
kernel.sem=250 32000 100 128
kernel.shmmax=1073741824
net.ipv4.ip_local_port_range=9000 65000

Cargamos los nuevos parámetros del kernel

service procps start

Ejecutamos los siguientes comandos

ln -s /usr/bin/awk /bin/awk
mkdir /var/lock/subsys
touch /var/lock/subsys/listener

Para evitar los errores de MEMORY_TARGET

rm -rf /dev/shm
mkdir /dev/shm
mount -t tmpfs shmfs -o size=2048m /dev/shm

Creamos el siguiente archivo /etc/rc2.d/S01shm_load con la siguiente información

#!/bin/sh
case "$1" in
start) mkdir /var/lock/subsys 2>/dev/null
touch /var/lock/subsys/listener
rm /dev/shm 2>/dev/null
mkdir /dev/shm 2>/dev/null
mount -t tmpfs shmfs -o size=2048m /dev/shm ;;
*) echo error
exit 1 ;;
esac

Le damos permisos al archivo

chmod 755 /etc/rc2.d/S01shm_load

Instalamos el paquete de Oracle XE

dpkg --install oracle-xe_11.2.0-2_amd64.deb

Añadimos las siguientes variables al archivo .bashrc que esta en nuestro directorio de conexión

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export ORACLE_SID=XE
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export ORACLE_BASE=/u01/app/oracle
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH

Recargamos el bash del perfil

source ~/.bashrc

Arrancamos la configuración de Oracle XE:

/etc/init.d/oracle-xe configure

Ahora Oracle ya debería estar instalado, si en la configuración de Oracle XE en el puerto http [8080] le pusimos 8080 si cogemos el navegador y ponemos localhost:8080/apex nos debería aparecer una ventana de APEX. La versión por defecto de APEX es la 4.0 para tener la última 4.2 tendrías que quitar esta y poner la nueva, pero eso ya será en otra manual.

Si algo ha salido mal en el proceso de instalación o quieres desinstalarla tienes que seguir estos pasos

sudo -s
/etc/init.d/oracle-xe stop
ps -ef | grep oracle | grep -v grep | awk '{print $2}' | xargs kill
dpkg --purge oracle-xe
rm -r /u01
rm /etc/default/oracle-xe
update-rc.d -f oracle-xe remove

Espero que os guste el manual.

Hasta la próxima entrada.