instalar oracle en linux y no morir en el intento (parte i)

8 de diciembre de 2009

El éxito o fracaso de una instalación de Oracle en Linux consiste básicamente en leerse un único documento: la Quick Installation Guide. Para la correcta instalación debemos de cumplir una serie de requisitos de hardware, software, parámetros de kernel y directorio requeridos. Si fallamos en uno de ellos el proceso de instalación fallará.

Para el siguiente post instalaremos un Oracle 10g R2 para Linux x86. Para ello lo descargamos directamente de la Web de Oracle. También necesitaremos a mano su guía de instalación.

Primero de todo hemos de revisar los requisitos de hardware de nuestra versión de Oracle dentro de la guía. Para ello necesitaremos una maquina x86, con 1Gb de RAM mínimo y unos 4Gb de disco para el software base de Oracle. Todo lo que sea superior a esto lógicamente será mejor. Por otro lado debemos seleccionar un sistema operativo que esté dentro de los sistemas operativos soportados por Oracle: Red Hat Enterprise 3, 4, SUSE Enterprise 9 y Asianux 1 y 2.

Yo voy a seleccionar un clon de Red Hat 4 como es CentOS 4. Si tuviéramos esta máquina en producción y quisiéramos que Oracle nos diera soporte en caso de problemas tendríamos que optar necesariamente por un sistema Red Hat si no queremos que Oracle se desentienda.

Empezamos pues la instalación:

+ Realizamos una instalación tipo servidor de un CentOS 4.8. Seleccionamos un particionado automático que utilizará LVM, configuramos el TCP/IP, desactivamos el firewall y también el SELinux.

+ Al finalizar la instalación comprobamos que tenemos acceso a Internet y que tenemos espacio suficiente en el sistema:

# ping www.google.com
# free (ver estado de la memoria y de la swap)
# df –h (ver espacio libre en /)

+ Actualizamos el sistema e instalamos los paquetes requeridos para la instalación:
# yum update
# yum groupinstall "X Window System" "GNOME Desktop Environment"
# yum install \
    setarch* \
    compat-libstdc++* \
    control-center* \
    gnome-libs* \
    gdb-6.1post* \
    make* \
    compat-gcc* \
    compat-gcc-c++* \
    glibc* \
    glibc-common* \
    glibc-devel* \
    gcc* \
    gcc-c++* \
    compat-db* \
    openmotif* \
    libstdc++* \
    libstdc++* \
    sysstat* \
    libaio* \
    libaio-devel*
# reboot

La instalación de Oracle utiliza un entorno de ventanas. Por este motivo he instalado el entorno gráfico en el servidor. Lógicamente en entorno solo lo arrancaremos para hacer la instalación, luego lo dejaremos apapagado.

+ Ahora creamos el usuario y los directorios necesarios para la instalación. Por defecto crearemos tres directorios: u01 (software base de oracle), u02 (archivos de la base de datos) y u03 (área de recuperación de datos).
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle

# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle   
# chmod -R 755 /u01/app/oracle

# mkdir -p /u02/oradata
# chown -R oracle:oinstall /u02/oradata   
# chmod -R 755 /u02/oradata

# mkdir -p /u03/flash_recovery_area
# chown -R oracle:oinstall /u03/flash_recovery_area   
# chmod -R 755 /u03/flash_recovery_area

+ Configuramos los parámetros del Kernel. Para ello editamos el /etc/sysctl.conf y añadimos las siguientes líneas:
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 = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

+ Ahora añadimos las siguientes restricciones en los siguientes archivos:

En el /etc/security/limits.conf:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

En el /etc/pam.d/login:
session required pam_limits.so

Y finalmente en el /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

Tras finalizar hacemos un reboot para cargar los nuevos parámetros del Kernel.

+ Ahora ya estamos en disposición de comenzar la instalación de Oracle. Para ello copiamos el “10201_database_linux32.zip” en una carpeta temporal. Por ejemplo en /usr/src/oracle10g.

Descomprimimos el software de Oracle:
# unzip /usr/src/oracle10g/10201_database_linux32.zip

+ Abrimos el entorno gráfico ya que el proceso de instalación de Oracle es en un entorno de ventanas.
# startx
# hostname
oracle.miserver.com
# xhost oracle.miserver.com
# su oracle
$ cd /usr/src/oracle10g/database
$ ./runInstaller

+ Una vez arranca el entorno gráfico de instalación hay que seguir las siguientes pantallas.
SimulacionInstalacion10gR2

+ Al finalizar la instalación no olvidarse de ejecutar (como root) los scripts de postinstalación tal como se recuerda.
# /u01/app/oracle/oraInventory/orainstRoot.sh
# /u01/app/oracle/oracle/product/10.2.0/root.sh


1 comentarios:

Ivan Dominguez dijo...

Magistral como siempre... enhorabuena