12 jul 2009

Preparación de RedHat Enterprise Linux 4 para instalar Oracle

En Internet pueden encontrar un montón de guías acerca de como instalar Oracle en Linux, entonces ¿para qué hacer otra más? pues simplemente para poner en un solo set de pasos, la que me ha resultado como mejor práctica para la implementación del motor de base de datos, a través de la experiencia práctica y la experimentación.

Como primer paso tendremos que tener un equipo (físico o virtual) con RedHat Enterprise Linux 4 instalado, la instalación de esta distribución está fuera del alcance de esta mini-guía, pero como referencia podemos decir que, básicamente necesitamos:

- Instalación mínima
- SWAP calculado de acuerdo a la siguiente lista:
  • RAM < 4gb =" 2*RAM
  • RAM >= 4GB < 8gb =" 1,5*RAM
  • RAM >= 8GB = RAM
- LVM como capa de soporte a los filesystems si es standalone (1 solo server), para clusters es tema de otra entrada.

Una vez que tenemos instalado el sistema, debemos hacer algunos ajustes.

Hostname: El hostname de la máquina debe estar asignado de forma estática. En el archivo /etc/hosts no debe estar asociado al localhost, es bastante común tener una entrada como la siguiente:

"127.0.0.1 localhost.localdomain localhost miservidor"

Esta debe quedar:

"127.0.0.1 localhost.localdomain localhost
1.2.3.4 miservidor.midominio.tld miservidor"

Respecto a la dirección IP, esta debe estar asignada de forma estática, Oracle no soporte configuraciones con DHCP

Paquetes del Sistema Operativo: Como se imaginarán Oracle tiene un set de pre-requisitos para la instalación del motor, pues bien, a través de la experimentación, he ido depurando un listado menor de paquetes, e incluyendo algunos extras a fin de hacer nuestras tareas administrativas un poco más simples.

Deben instalar:
  • cpp
  • gcc
  • gcc-c++
  • binutils
  • libstdc++
  • libstdc++-devel
  • compat-libstdc++-296
  • compat-libstdc++-33
  • make
  • pdksh
  • compat-db
  • sysstat
  • libaio
  • openmotif21
  • xorg-x11-xauth
  • strace (muy útil para hacer debug)
  • ntp (sincronización de tiempo)
  • popt (pre-requisito de ntp)
Parámetros de kernel

Los siguientes parámetros deben estar configurados como mínimo, todos están en la sintaxis que necesitan poner en el archivo /etc/sysctl.conf

kernel.shmmax = (RAM en bytes/2) - 1, en 32 bits que no exceda los 4GB - 1 bytes
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_max = 262144

Una vez modificados los parámetros en el archivo /etc/sysctl.conf, basta con ejecutar sysctl -p para activarlos. Cabe notar, que si algún parámetro de ese archivo es mayor a los anotados más arriba, se debe dejar el mayor.

Cuentas de usuario y grupos

Ahora debemos crear el grupo "dba", y el usuario "oracle". En los documentos de Oracle, se recomienda crear el grupo "oinstall" para ser dueño del inventario de software de Oracle, en la generalidad, no he visto instalaciones productivas donde se lleven a cabo más tareas que tener el motor de datos, por tanto el grupo "oinstall" se vuelve irrelevante.

Primero creamos el grupo con "groupadd dba", y luego el usuario oracle con "useradd -g dba oracle".

Límites para el usuario oracle

Debemos configurar los límites para el usuario oracle, para esto, modificamos el archivo /etc/security/limits.conf, y agregamos

oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384

No hay comentarios:

Publicar un comentario