Como es sabido la instalación de Oracle en Linux suele ser algo
complicada. Para facilitar este proceso a continuación se explican las fases para llevar a cabo, sin
ningún problema, el proceso de instalación de Oracle 11g en Linux.
Antes de proceder a la instalación de Oracle Database 11g se deben tener en cuenta los siguientes requisitos de Hardware:
- Requisitos de memoria
- Requisitos de espacio en disco
- Creación directorios necesarios
Requisitos de memoria
Para un funcionamiento óptimo de nuestro
sistema será necesario disponer de un equipo con, al menos, 1GB de
memoria RAM. Aunque podemos trabajar con sistemas que no cumplan con
este requisito, si nuestro sistema crece y, con él, el número de
transacciones realizadas por la base de datos, podemos obtener un
deterioro drástico del rendimiento de nuestro servidor.
Directamente relacionado con el tamaño de
nuestra memoria RAM, tendremos nuestra partición de swap o intercambio,
la cual deberá tener, en la mayoría de los casos, una capacidad el
doble de grande que nuestra memoria principal. Para ser más exactos, y
según las recomendaciones facilitadas por Oracle, podemos fijarnos en la
siguiente tabla para conocer la relación RAM/Swap óptima para
diferentes situaciones.
RAM Disponible
|
Espacio Swap Requerido |
Entre 257 MB y 512 MB
|
El doble de memoria RAM |
Entre 513 MB y 2048 MB
|
1.5 veces el tamaño de nuestra RAM |
Entre 2049 MB y 8192 MB
|
El mismo tamaño que RAM |
Más de 8192 MB
|
0.75 veces el tamaño de la RAM
|
Requisitos de espacio en disco
Para instalar Oracle Database 11g debemos
tener disponibles por lo menos entre 150 y 200MB en el directorio /tmp.
Dependiendo del tipo de instalación necesitaremos, además, entre 1.5GB y
3.5GB de espacio en nuestro disco para instalar todo el software
Oracle. Este tamaño podrá variar ampliamente según el tipo de
instalación y elementos seleccionados. Además, si escogemos la utilidad
de autobackup necesitaremos espacio extra a medida que trabajemos normalmente con nuestro sistema. Según el tipo de instalación necesitaremos:
Tipo de Instalación |
Espacio Requerido (GB) |
Enterprise Edition |
3.47 |
Standard Edition |
3.22 |
Custom (espacio máximo) |
3.37
|
Creación directorios necesarios
Antes de proceder a la instalación de
Oracle, debemos crear ciertos directorios y concederles los permisos
necesarios. Crearemos el directorio base de Oracle y, opcionalmente, un
directorio para datos.
Para crear dichos directorios usaremos:
Comando
|
Acción
|
mkdir -p /mount_point/app/ |
Creación del directorio app en /mount_point
|
chown -R oracle:oinstall /mount_point/app/
|
Cambiando propietario
|
chmod -R 775 /mount_point/app/
|
Concesión de permisos
|
En nuestro caso /mount_point es una partición a parte montada en raíz con el nombre u01.
Requisitos de Software
Dependiendo de los productos que queramos instalar y el sistema utilizado como base, deberemos tener en cuenta ciertos puntos:
- Requisitos de Sistema Operativo
- Requisitos de Kernel
- Paquetes necesarios
- Usuarios y grupos
Requisitos de Sistema Operativo
Los siguientes sistemas operativos son soportados por la versión 11g de la Base de Datos Oracle:
Distribuciones Linux Soportadas |
Asianux 2.0 |
Asianux 3.0 |
Oracle Enterprise Linux 4.0 |
Oracle Enterprise Linux 5.0 |
Red Hat Enterprise Linux 4.0 |
Red Hat Enterprise Linux 5.0 |
SUSE Enterprise Linux 10.0 |
Aunque solo las distribuciones que
aparecen en la lista anterior son las soportadas oficialmente por
Oracle, otras distribuciones tales como Fedora o Ubuntu funcionan
correctamente.
Requisitos de Kernel
Las distribuciones anteriores deben utilizar las siguientes versiones de Kernel:
Distribución |
Versión de Kernel |
Asianux 2, Oracle EL 4.0 y Red Hat EL 4.0 |
2.6.9 |
Asianux 3, Oracle EL 5.0 y Red Hat EL 5.0 |
2.6.18 |
SUSE 10 |
2.6.16.21 |
Parámetros de kernel
Hay numerosos parámetros de nuestro
kernel que deberemos modificar para el uso de Oracle en nuestro equipo.
La siguiente tabla muestra los valores mínimos recomendados para esos
parámetros y el archivo donde aparecen.
Parámetro |
Valor |
Archivo |
semmsl |
250 |
/proc/sys/kernel/sem |
semmns |
32000 |
/proc/sys/kernel/sem |
semopm |
100 |
/proc/sys/kernel/sem |
semmni |
128 |
/proc/sys/kernel/sem |
shmall |
2097152 |
/proc/sys/kernel/shmall |
shmmax |
La mitad del tamaño total de RAM |
/proc/sys/kernel/shmmax |
shmmni |
4096 |
/proc/sys/kernel/shmmni |
file-max |
512 * PROCESSES |
/proc/sys/fs/file-max |
ip_local_port_range |
Mínimo: 1024 / Máximo: 65000 |
/proc/sys/net/ipv4/ip_local_port_range |
rmem_default |
4194304 |
/proc/sys/net/core/rmem_default |
wmem_default |
262144 |
/proc/sys/net/core/wmem_default |
rmem_max |
4194304 |
/proc/sys/net/core/rmem_max |
wmem_max |
262144 |
/proc/sys/net/core/wmem_max |
Si en un determinado parámetro tenemos un
valor igual o superior, no es necesaria su modificación, es decir,
únicamente debemos modificar los parámetros que posean un valor inferior
al dado. Todos los archivos mostrados en la tabla anterior contienen
parámetros del kernel con lo cual puede resultar complicado y delicado
su modificación directa. Una posible solución elegante y efectiva
consiste en modificar el archivo /etc/sysctl.conf añadiéndole, de las líneas mostradas a continuación, únicamente las que necesitemos modificar:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
Paquetes necesarios
La distribución que hemos utilizado en la
realización del presente proyecto ha sido Oracle Enterprise Linux 5.0 y
Ubuntu 8.04 LTS. Oracle recomienda realizar una instalación típica sea
cual sea la versión de nuestra distribución Linux para facilitar así
todo el proceso de instalación y eliminar gran parte de los problemas de
dependencias. De igual forma, es posible el uso de apt-get (previa
instalación y configuración) aunque no ha sido la alternativa utilizada
en nuestro caso. Los usuarios más avanzados pueden escoger una
instalación mínima (con soporte para x-window ya que es necesaria para
realizar la instalación de nuestra base de datos) optimizando así el uso
de disco e instalar, posteriormente, los paquetes necesarios y que se
añaden en el CD-ROM adjunto. Los paquetes requeridos para nuestra
distribución junto a sus versiones mínimas se muestran a continuación:
binutils-2.17.50.0.6-2.el5
compat-libstdc++-33-3.2.3-61
elfutils-libelf-0.125-3.el5
elfutils-libelf-devel-0.125
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
glibc-headers-2.5-12
gcc-4.1.1-52
gcc-c++-4.1.1-52
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.1-52
libstdc++-4.1.1
libstdc++-devel-4.1.1-52.e15
make-3.81-1.1
sysstat-7.0.0
unixODBC-2.2.11
unixODBC-devel-2.2.11
Usuarios y grupos
Los siguientes usuarios y grupos serán necesarios para la instalación y el uso de Oracle:
Nombre |
Tipo |
Rol |
oinstall |
Grupo |
Grupo de inventario de Oracle |
dba |
Grupo |
Grupo de OSDBA |
oracle |
Usuario |
El propietario del software Oracle |
nobody |
Usuario |
Usuario sin privilegios en el sistema |
El usuario oracle deberá pertenecer al grupo oinstall (grupo primario) y también al grupo dba (grupo secundario).
Para mejorar el rendimiento de nuestra
base de datos podemos incrementar las limitaciones de shell para el
usuario oracle. En concreto, modificaremos el número máximo de
descriptores abiertos y el número máximo de procesos disponibles para
este usuario. Podemos establecer también ciertas variables de entorno en
el archivo .bash_profile en el home del usuario oracle para tenerlas
siempre disponibles cuando éste acceda al sistema. El conjunto de
modificaciones que añadiremos en este paso se resumen en la siguiente
tabla.
Fichero |
Parámetros |
/etc/security/limits.conf |
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536 |
/etc/pam.d/login |
session required /lib/security/pam_limits.so
session required pam_limits.so |
/etc/profile |
if [ $USER = “oracle” ]; then
if [ $SHELL = “/bin/ksh” ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi |
Para finalizar estableceremos variables de entorno ORACLE_BASE y ORACLE_SID.
Nota:
Para establecer las variables de entorno:
ORACLE_BASE=/mount_point/app/oracle
ORACLE_SID=sid
export ORACLE_BASE ORACLE_SID
Una vez hechas estas modificaciones ya estamos listos para iniciar el proceso de instalación de Oracle 11g.