Oracle Database 11g release 2 on Debian Lenny in Citrix XenServer

PiPo e2H – Soluciones TIC Avanzadas Jose Luis Gomez – vEXPERT 2011-16, VCIX-NV, VCAP5-DCA/DCD/CIA, CCA, CCNA & VCP 4&5

19Abr/1028

Instalando Oracle Enterprise 11g release 2 en Debian Lenny

Share

Hace poco que unos compañeros me preguntaban "¿puedes montarnos un Oracle para desarrollo?", sin pensarlo me atreví a decir rápidamente que sí, pero no pensé en ningún momento la paciencia y pasos que hay que seguir para realizar una instalación QUE FUNCIONE.

Rápidamente instalé sin problema alguno la versión 10g Express, pero más rápido aún me dijeron que esa versión no les valía y que necesitaban la 11g. Mi alegría se desvaneció, ya que la 10g es un abrir y cerrar de ojos (no se necesita entorno gráfico) y la 11g una odisea (necesita entorno gráfico, lo que conlleva tiempo).

Por eso, a tan ardua instalación he decido una vez más ofreceros un artículo donde os explique paso a paso y sin entrar en profundidad de detalle una instalación en una máquina virtual Debian Lenny corriendo en Citrix XenServer.

Para que la instalación tenga éxito hay que cumplir unos requisitos previos de hardware los cuales se enumeran a continuación:

  • 1 GB RAM.
  • 2 GB swap.
  • 1 GB temporal.
  • 3,5 GB para instalar Oracle.
  • 1,5 GB o más para almacenar las bases de datos.

Nosotros hemos realizado la instalación en una máquina virtual Debian Lenny corrienedo en Citrix XenServer, aquí no explicamos la instalación del sistema operativo, también apuntar que es necesario disponer de entorno gráfico para la instalación de Oracle, para ello se puede seguir el artículo Debian Lenny en XenServer con entorno gráfico Gnome.

Oracle recomienda usar discos independientes para la instalación y almacenamiento de las bases de datos, así como una estructura de directorios que para el futuro resulte flexible en caso de cambios. Por lo tanto haremos y caso y asignaremos dos discos duros a la máquina virtual, uno con 5 GB para la instalación y otro de 3 GB para las bases de datos.

Teniendo dichos datos en cuenta, ya podemos pasar a la instalación paso a paso de nuestro servidor de bases de datos Oracle 11g. El procedimiento que seguiremos será el descrito a continuación:

  1. Requisitos previos.
  2. Configurando Linux para Oracle.
    1. Creación de usuario y grupos.
    2. Configurar parámetros del Kernel.
    3. Configurar la shell del usuario oracle.
    4. Configurar enlaces simbólicos.
    5. Configurar sysstat.
  3. Configurando el almacenamiento.
    1. Particionar los discos.
    2. Creación de los volúmenes.
    3. Creación del sistema de ficheros.
    4. Creación de los puntos de montaje.
    5. Añadir los puntos de montaje a /etc/fstab.
    6. Montar el sistema de ficheros.
    7. Creación de la estructura de directorios.
  4. Descargando Oracle 11g.
  5. Instalando Oracle.
  6. Configurando Oracle.
  7. Probando Oracle.

Requisitos previos

Además de los requisitos de hardware previamente nombrados es necesario disponer de ciertos paquetes necesarios para la instalación. Para ello ejecutamos el siguiente comando en nuestra consola como usuario root:

apt-get install libaio-dev build-essential ssh gnome sysstat unixodbc-dev libelf-dev pdksh lvm2 gawk ksh libmotif3 alien libtool lsb-rpm libstdc++5

Cuando nos pregunta si deseamos continuar responderemos de forma afirmativa (Do you want to continue [Y/n]? ENTER). De este modo una vez finalizada la descarga y la posterior instalación ya cumplimos los requisitos de paquetes propuesto por Oracle.

Configurando Linux para Oracle

Ahora es necesario configurar nuestra Debian para poder efectuar la instalación de Oracle. Es recomendable una vez realizado estos pasos revisarlo detenidamente, ya que cualquier olvido puede ocasionar una instalación fallida.

Creación de usuario y grupos

A continuación vamos a crear los grupos y la cuenta de usuario que se encargará de la instalación y mantenimiento de Oracle. La cuenta de usuario la llamaremos oracle y los grupos serán oinstall y dba. Para ello ejecutamos los siguientes comandos como root:

groupadd oinstall # Agrega el grupo oinstall

groupadd dba # Agrega el grupo dba

useradd -m -g oinstall -G dba oracle # Agrega el usuario oracle a los grupos oinstall y dba

id oracle # Muestra la información del usuario oracle

passwd oracle # Configura la contraseña del usuario oracle (la contraseña que vamos a usar es oracle)

Configurar parámetros del Kernel

Oracle requiere configurar en el Kernel los parámetros que mostramos a continuación. Estos valores representan unos mínimos, si tu sistema dispone de unos valores superiores no los cambies. Linux permite la modificación de dichos valores sin la necesidad de reiniciar posteriormente el sistema.

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.wmem_default=262144

net.core.wmem_max=262144

net.core.rmem_default=4194304

net.core.rmem_max=4194304

Esos parámetros podemos compararlos con nuestro sistema ejecutando los siguientes comandos como root:

sysctl -a | grep kernel.shm

sysctl -a | grep kernel.sem

sysctl -a | grep fs.file-max

sysctl -a | grep ip_local_port_range

sysctl -a | grep core.wmem_

sysctl -a | grep core.rmem_

Los valores obtenidos lo comparamos con los necesarios para cambiar posteriormente sólo los que sean inferiores. En nuestro caso hemos de cambiar kernel.shmmax, kernel.semnet.ipv4.ip_local_port_range, net.core.wmem_max, net.core.wmem_default, net.core.rmem_max y net.core.rmem_default. Para ello ejecutamos los siguientes comandos como root:

cat >> /etc/sysctl.conf <<EOF

kernel.shmmax = 536870912

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default=4194304

net.core.wmem_default=262144

net.core.rmem_max=4194304

net.core.wmem_max=262144

EOF

sysctl -p

Configurar la shell del usuario oracle

Oracle recomienda configurar los límites de procesos y ficheros abiertos que cada cuenta puede usar. Para realizar estos cambios ejecutamos los siguientes comandos como root:

cat >> /etc/security/limits.conf <<EOF

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

EOF

Cambiamos el perfil predeterminado de bash y ksh. Para ello ejecutamos los siguientes comandos como root:

cat >> /etc/profile <<EOF

if [ \$USER = "oracle" ]; then

if [ \$SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME

ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME

fi

EOF

A continuación se va a configurar los módulos que permitirán la ejecución de las configuraciones anteriores mediante PAM. Para ello comprobamos que se encuentran descomentadas las siguientes líneas en los siguientes ficheros:

Fichero /etc/pam.d/login

session required pam_limits.so

Fichero /etc/pam.d/su

session required pam_limits.so

Configurar enlaces simbólicos

Ya que Oracle no está soportado para Debian, hay algunos enlaces que debemos crear para que no se generen errores durante la instalación. Como root ejecutamos los siguientes comandos en nuestra consola:

ln -s /usr/bin/awk /bin/awk

ln -s /usr/bin/rpm /bin/rpm

ln -s /usr/bin/basename /bin/basename

ln -s /usr/bin/sort /bin/sort

ln -s /etc /etc/rc.d

echo 'Red Hat Linux release 4' > /etc/redhat-release

Configurar sysstat

Sysstat es un recolector de datos del sistema para monitorizar el rendimiento, el cual usa Oracle. Cuando lo hemos instalado desde los paquetes no se activa de forma automática, tenemos que declararlo en el fichero /etc/default/sysstat. Como usuario root editamos el fichero /etc/default/sysstat y cambiamos el parámetro ENABLED="false" a "true".

Una vez cambiado el parámetro citado, ya podemos arrancar el servicio. Para ello ejecutamos el siguiente comando como root:

/etc/init.d/sysstat start

Configurando el almacenamiento

Ahora vamos a crear la estructura de almacenamiento donde se almacenará los ficheros de la aplicación y las bases de datos. Seguiremos una arquitectura óptima y flexible para el nombramiento de los directorios. Es aconsejable instalar la aplicación y las bases de datos en discos independientes.

Particionar los discos

Vamos a usar dos discos como se comentó anteriormente, hay que tener en cuenta que se perderán todos los datos que contengan. En el disco /dev/xvdb instalaremos Oracle y en el disco /dev/xvdc se almacenarán las bases de datos. Para comenzar el particionamiento ejecutamos los siguientes comandos como root:

fdisk /dev/xvdb

n # Nueva partición

p # Primaria

1 # Número de partición

ENTER # Aceptar valor

ENTER # Aceptar valor

t # Tipo de partición

8e # LVM

w # Escribir cambios

Realizamos el mismo procedimiento con el disco /dev/xvdc, pero esta vez ejecutando:

fdisk /dev/xvdc

Creación de los volúmenes

Al usar LVM es necesario crear grupos y volúmenes, esto nos permitirá en un futuro poder redimensionar el almacenamiento de una forma más cómoda.

Primero vamos a crear los volúmenes físicos, para ello ejecutamos los siguientes comandos como root:

pvcreate /dev/xvdb1

pvcreate /dev/xvdc1

Ahora vamos a crear dos grupos, uno llamado apps (disco 5 GB) donde se almacenará Oracle y otro dbs (disco 3 GB) donde se almacenará las bases de datos. Ejecutamos los siguientes comandos como root:

vgcreate apps /dev/xvdb1

vgcreate dbs /dev/xvdc1

Por último crearemos los volúmenes lógicos asociados a oracle en cada uno de los grupos, los cuales montaremos más adelante. Para ello ejecutamos los siguientes comandos como root:

lvcreate -L +4999M -n oracle apps

lvcreate -L +2999M -n oracle dbs

Creación del sistema de ficheros

Para el sistema de ficheros vamos a usar ext3, que nos proporcionará velocidad a la hora de recuperar las bases de datos frente una catástrofe. Para ello ejecutamos los siguientes comandos como root:

mkfs.ext3 /dev/apps/oracle

mkfs.ext3 /dev/dbs/oracle

Creación de los puntos de montaje

Un sistema de ficheros debe tener un punto de montaje, que es simplemente un directorio vacío donde el nuevo sistema de ficheros se adjuntará al árbol de directorios. Se deben dar unos nombres consistentes y que se rijan por el estándar de la flexibilidad y optimización.

Para el sistema de ficheros donde se instalará Oracle usaremos el directorio /u01; y para el sistema de ficheros donde se almacenarán las bases de datos usaremos el directorio /u02. Para ello ejecutamos el siguiente comando como usuario root:

mkdir /u01 /u02

Añadir los puntos de montaje a /etc/fstab

Para que el sistema de ficheros sea montado automáticamente cuando arranque el sistema, es necesario añadir una línea al /etc/fstab que describa el nuevo sistema de ficheros y donde va a ser montado. Para ello ejecutamos los siguientes comandos como root:

cat >> /etc/fstab <<EOF

/dev/apps/oracle /u01 ext3 defaults 1 2

/dev/dbs/oracle /u02 ext3 defaults 1 2

EOF

Montar el sistema de ficheros

Para poder empezar a almacenar información en el sistema de ficheros es necesario montarlo. Para ello ejecutamos los siguientes comandos como root:

mount /u01

mount /u02

df -h

Creación de la estructura de directorios

A continuación vamos a crear la estructura de directorios donde se instalará Oracle y almacenarán las bases de datos. Ya tenemos nuestros puntos de montaje en /u01 para la aplicación y /u02 para las bases de datos. Ahora vamos a crear los directorios necesarios dentro de estos puntos. Para ello ejecutamos como root los siguientes comandos:

# Directorio aplicación

mkdir -p /u01/app/oracle

chown -R oracle:oinstall /u01/app

chmod -R 775 /u01/app

#Directorio bases de datos

mkdir -p /u02/dbs/oradata

chown -R oracle:oinstall /u02/dbs

chmod -R 775 /u02/dbs

Descargando Oracle 11g

La descarga la efectuaremos con el usuario oracle mediante el entorno gráfico, por lo que hemos de iniciar sesión en el mismo.

Abrimos un explorador y nos dirigimos a la página de descargas de Oracle, donde aceptaremos las condiciones de licencia (sin coste para el desarrollo) y descargamos los discos 1 y 2 pertenecientes a Linux x86 (es necesario estar registrado en la web de Oracle).

Una vez haya finalizado la descarga lo descomprimimos haciendo doble clic sobre ambos ficheros y arrastramos su contenido en el escritorio, lo cual nos crea el directorio database.

Instalando Oracle

El siguiente paso es abrir una terminal y acceder al directorio database, donde ejecutamos el script runInstaller. Para ello ejecutamos los siguientes comandos:

cd Desktop/database

./runInstaller

Se nos habrá iniciado el asistente de instalación, en la primera pantalla nos propone introducir nuestros datos de la cuenta Oracle para recibir alertas sobre actualizaciones, nosotros desmarcamos la casilla ya que está orientado para el desarrollo y hacemos clic en el botón Next. Nos aparecerá un mensaje de aviso, hacemos clic en Yes.

Dejamos seleccionada la primera opción donde creamos y configuramos una base de datos. Hacemos clic en el botón Next.

Ahora nos da a elegir el tipo de sistema, en nuestro caso elegimos la opción Server Class y hacemos clic en el botón Next.

A continuación elegimos la opción de instancia única, ya que no vamos a realizar ningún cluster y hacemos clic en el botón Next.

Elegimos la opción instalación típica, ya que para dicho entorno de desarrollo no necesitamos declarar todos los parámetros avanzados. Hacemos clic en el botón Next para continuar.

A continuación nos pide los datos de directorios donde se instalará la aplicación y almacenarán las bases de datos. Confirmamos los siguientes datos en los campos que se mencionan a continuación y hacemos clic en el botón Next:

Oracle base: /u01/app/oracle

Database file location: /u02/dbs/oradata

Global database name: orcl

Administrative password: a rellenar

Confirm password: a rellenar

En la siguiente pantalla nos da la opción de elegir en que directorio instalar el inventario, lo dejamos como está y hacemos clic en el botón Next.

A continuación se ejecuta un chequeo de los requisitos, aparece una pantalla avisándonos si cumplimos éstos o no. Al estar realizando la instalación en Debian es normal que aparezcan errores en los paquetes instalados, pero los errores referentes a Kernel podemos solucionarlos haciendo clic en el botón Fix & Check Again.

Para solucionar el error nos pide abrir una terminal como root y ejecutar un script. Por lo tanto ejecutamos el siguiente comando:

/tmp/CVU_11.2.0.1.0_oracle/runfixup.sh

Aceptamos el mensaje de aviso pulsando en el botón OK y realizará de nuevo un chequeo. Esta vez marcamos la casilla Ignore All y hacemos clic en el botón Next.

Nos aparece un resumen con las diferentes opciones que hemos elegido durante el asistente. Para comenzar la instalación hacemos clic en el botón Finish.

Una vez finalizada la instalación nos aparece un mensaje con el resumen de la creación de la base de datos de ejemplo así como la opción de cambiar las diferentes contraseñas de los usuarios de Oracle predeterminados. Nosotros dejaremos la que introducimos durante la instalación y hacemos clic en el botón OK.

El último paso es configurar unos parámetros para el usuario root, nos aparece una ventana donde nos dice los dos scripts que tenemos que ejecutar como usuario root, abrimos un terminal y ejecutamos ambos scripts.

Una vez hemos ejecutado ambos scripts aceptamos el mensaje que nos apareció haciendo clic en el botón OK.

Para concluir, en la última ventana nos muestra como acceder a la gestión de nuestro Oracle a través de página web. Para dar por terminada la instalación hacemos clic en el botón Close.

Configurando Oracle

De forma predeterminada Oracle no arranca durante el inicio del sistema. Para ello necesitamos crear un script de inicio y enlazarlo en los diferentes niveles de arranque. Para ello desde AQUÍ os podéis descargar el script de inicio, donde hay que tener en cuenta la variable ORA_HOME que apunta al directorio de instalación de Oracle. Si durante este proceso habéis cambiado el directorio predeterminado de instalación, debéis cambiarlo en la variable. Para descargar el script copiamos la dirección de enlace y desde una terminal ejecutamos los siguientes comandos como root:

cd /etc/init.d

wget http://blog.e2h.net/wp-content/uploads/2010/04/oracle

chmod 755 oracle

update-rc.d oracle defaults 99 01

Hay que tener en cuenta el siguiente punto, para que Oracle en su inicio arranque las instancias deseadas hay que configurarlo en el fichero /etc/oratab. Al final del mismo aparece una línea donde introducimos el ORACLE_SID de cada instancia a arrancar, seguidamente del directorio HOME de Oracle y si deseamos o no su inicio con Y/N. Por tanto, para arrancar la instancia de ORCL ejecutamos los siguientes comandos como root:

vi /etc/oratab

orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y

Una vez configurado estos últimos parámetros vamos a probar que funciona correctamente, para ello como usuario root ejecutamos el siguiente comando para reiniciar Oracle:

/etc/init.d/oracle restart

Probando Oracle

Ahora toca la prueba de fuego, para ello abrimos un explorador y entramos a la dirección de nuestro servidor Oracle por HTTPS y en el puerto 1158 al directorio /em. Las credenciales a introducir son el usuario system y la contraseña elegida durante la instalación.

Espero que haya resultado de ayuda el manual y ya sabéis, si tenéis alguna duda podéis dejarla en un comentario.

José Luis Gómez Ferrer de Couto

José Luis Gómez Ferrer de Couto

VMware vExpert since 2011 / VCP-DCV 4&5 / VCP5-DT / VCIX-NV / VCAP5-DCA/DCD / VCAP-CIA. Technical Architect at Computacenter. Author of blog PiPo e2H specialized in Virtualization, Storage and Networking.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

Share

¿Te gustó este artículo?

¡Suscríbete a nuestro feed RSS!

Archivado en: Oracle Deja un comentario