Oracle 12c en Debian Jessie

Este proceso que en Windows es muy simple, en Debian requiere una serie de configuraciones previas para poder llegar al instalador.

Necesitamos como mínimo:

  • 4 GB de RAM
  • 10 GB de almacenamiento
  • Es recomendable disponer de, al menos, 2 cores

Lo primero es crear los usuarios y grupos:

addgroup --system oinstall
addgroup --system dba
adduser --system --ingroup oinstall --shell /bin/bash oracle
adduser oracle dba

Lo siguiente es añadir el fichero /etc/sysctl.d/local-oracle.conf  con el contenido

fs.file-max = 65536
fs.aio-max-nr = 1048576
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
# (Oracle recommends total machine Ram -1 byte)
kernel.shmmax = 2147483648
kernel.shmall = 2097152
kernel.shmmni = 4096
net.ipv4.ip_local_port_range = 1024 65000
vm.hugetlb_shm_group = 111
vm.nr_hugepages = 6

Para que este cambio sea efectivo hay que reiniciar el sistema o ejecutar este comando:

sysctl -p /etc/sysctl.d/local-oracle.conf

El siguiente fichero que tenemos que añadir es /etc/security/limits.d/local-oracle.conf con el siguiente contenido

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

A continuación hay que crear los enlaces simbólicos para que el usuario oracle pueda participar en la instalación:

ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/basename /bin/basename
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/lib/x86_64-linux-gnu /usr/lib64

Por último preparamos la estructura de directorios para la instalación:

mkdir -p /opt/oracle/product/12.1.0.2
mkdir -p /opt/oraInventory
chown -R oracle:dba /opt/oracle/
chown -R oracle:dba /opt/oraInventory

Ahora pasamos a la preparación de la instalación obteniendo los paquetes necesarios:

apt-get -y install build-essential binutils libcap-dev gcc g++
libc6-dev ksh libaio-dev make libxi-dev libxtst-dev libxau-dev
libxcb1-dev sysstat rpm xauth

Lo siguiente es añadirle al usuario oracle el fichero /home/oracle/.profiles con el siguiente contenido:

export ORACLE_HOSTNAME=localhost
export ORACLE_OWNER=oracle
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=/home/oracle/product/12.1.0.2/dbhome_1
export ORACLE_UNQNAME=orcl
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu:/bin/lib:/lib/x86_64-linux-gnu/:/usr/lib64

Hay que asegurarse de que el fichero tiene el propietario correcto:

chown oracle. /home/oracle/.profile

Ahora descomprimimos los dos ficheros descargados desde la web de Oracle.

Con esto ya podemos lanzar el instalador que estará en el directorio database donde hemos descomprimido los ficheros.

./runInstaller -ignoreSysPrereqs -ignorePreReq

Un error muy común es que nos diga que no se ha definido la variable DISPLAY. Para arreglarlo, como root ejecutamos el siguiente comando:

xhost +

Volvemos a lanzar el instalador y ya nos lleva al panel gráfico.

He dejado todas las opciones por defecto salvo en el tipo de instalación, que he elegido tipo servidor.

Para iniciarlo:

. /usr/local/bin/oraenv
dbstart $ORACLE_HOME
sqlplus / as sysdba
startup

En caso de querer automatizar este último paso, en el fichero /etc/oratab cambiamos el valor a Y:

orcl:/opt/oracle/product/12.1.0/dbhome_1:Y

Lo siguiente es crear el script en /Etc/ini.d/dbora

#! /bin/sh
# description: Oracle auto start-stop script.
ORA_HOME=/opt/oracle/product/12.1.0/dbhome_1
ORA_OWNER=oracle
case "$1" in
'start')
su $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" &
touch /opt/oracle/startup.log
;;
'stop')
su $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" &
rm -f /opt/oracle/startup.log
;;
esac

Cambiamos permisos:

chgrp dba dbora
chmod 750 dbora

Y creamos los enlaces simbólicos necesarios:

ln -s /etc/init.d/dbora /etc/rc0.d/K01dbora
ln -s /etc/init.d/dbora /etc/rc3.d/S99dbora
ln -s /etc/init.d/dbora /etc/rc5.d/S99dbor

 

Si queremos navegar por el historial de comandos necesitamos el paquete rlwrap y hay que iniciar sqlplus de esta forma:

rlwrap sqlplus

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *