jueves, 6 de noviembre de 2014

Paso a paso, instalando DB2 en CentOS 6.5 alojado en Amazon EC2

En este post, voy a detallar paso a paso como instale DB2 Express -C 10.5 en una AMI (Amazon Machine Image) CentOs 6.5.

Antes de comenzar la instalacion, tener en cuenta los siguientes requerimientos de Hardware:
Requisitos de disco
En los sistemas operativos Linux y Unix, se recomienda disponer de 2GB de espacio libre en el directorio /tmp, y se necesitan al menos 512 MB de espacio libre en el directorio /var
(Pueden verificar si cumplen con dichos requisitos con el comando db2prereqchek pero lo veremos mas adelante)
Nota: En los S.O Linux y Unix, deben instalar el producto DB2 en un directorio vacio. Si el directorio que ha especificado como via de acceso de instalacion contiene subdirectorios o archivos, la instalacion de DB2 podria fallar.
Requisitos de memoria
Se recomienda 1GB de RAM para conseguir un buen rendimiento, con esto no se contempla la memoria adicional necesaria si en el sistema se ejecuta otro software. Ademas estos requisitos de memoria son para una base de cinco conexiones de clientes simultaneas. Por cada cinco conexiones de cliente adicionales, se necesitaran 16MB mas de RAM.
Es bueno asegurarse ademas que su software Linux este actualizado. Esto es importante para tener los ultimos updates de seguridad y bug fixes.
Pueden ejecutar la actualizacion del mismo con el siguiente comando:

[root@miservidor ~]# yum update -y

El siguiente paso seria descargar o transferir el instalador de db2 en su servidor para que puedan realizar la instalacion, y el nlpack si desean el db2 en un idioma distinto al ingles.
Yo lo realize con el comando wget para descargarlo desde una URL via linea de comandos. (Hay otro metodo para Transferir Archivos a instancias Linux/Unix pero me parecio mas complicado)
La AMI de CentOS que utilize correspondia a una instalacion minima del mismo, ya que contenia solo los paquetes necesarios para correr CentOS dentro de AWS y no disponia del comando wget.
Entonces para disponer de wget realizar lo siguiente

[root@miservidor ~]# yum whatprovides */wget
[root@miservidor ~]# yum install /usr/bin/wget

Por ultimo, crear un directorio donde se realizaria la descarga, posicionarse en el y ejecutar el wget sobre la url donde tienen alojado el instalador.
Ejemplo:

[root@miservidor ~]# mkdir descargas
[root@miservidor ~]# cd descargas
[root@miservidor descargas]# wget 'http://servidor/Directorio/v10.5fp1_linuxx64_expc.tar.gz'

Descomprimir el archivo con tar con la opcion z para descomprimir completamente el archivo o gunzip para descomprimir el archivo y luego el comando tar.Yo ulilice lo segundo mencionado.
Ej:

[root@miservidor descargas]# gzip -d v10.5fp1_linuxx64_expc.tar.gz
[root@miservidor descargas]# tar vfx v10.5fp1_linuxx64_expc.tar

Pasos previos a la instalacion de db2.
Ejecutar el comando db2prereqcheck.
Este comando comprueba requisitos previos como el nivel del sistema operativo, la distribucion de Linux, la libreria C y el parche de runtime, uDAPL, GPL o Requisitos de Purescale.

Pueden agregar el parametro -v para verificar si se cumplen los requerimientos de una version especifica de DB2.
Ejemplo:

[root@miservidor expc]# ./db2prereqcheck -v 10.5.0.1 

En CentOS 64 bit generalmente faltan las librerias:
  •  "libstdc++.so.6" de 32 bits.
  • "/lib/libpam.so*" 
Para instalar dichas librerias podrian utilizar el comando yum como lo muestro a continuacion.

[root@miservidor expc]# yum whatprovides */libstdc++.so.6
[root@miservidor expc]# yum install libstdc++-4.4.7-4.el6.i686

[root@miservidor expc]# yum whatprovides /lib/libpam.so*
[root@miservidor expc]# yum install pam-1.1.1-17.el6.i86

Al ejecutar de vuelta el comando db2prereqcheck veran que estas librerias instaladas ya seran validadas.

Sin embargo podrian tener problemas con el SELinux.
Si Security-Enhanced Linux (SELinux) esta habilitado y en modalidad imposicion, el instalador podria fallar debido a las restricciones SELinux.

Para determinar si SELinux esta instalado y en modalidad de imposicion, puede ejecutar el siguiente comando

[root@miservidor ~]# sestatus

Para inhabilitar SELinux, puede modificar con vi el archivo /etc/sysconfig/selinux cambiando el valor del parametro y deberia quedar de esta manera.
 SELINUX=disabled
 Luego, para que el SELinux tome el nuevo valor deberan rearrancar la maquina. Lo pueden hacer de la siguiente manera:

[root@miservidor ~]# /sbin/shutdown -r now

En cuanto a la libreria "openibd" no es necesaria si no se utilizara Purescale. Entonces por ello yo ignoro dicho requerimiento.

Instalando DB2
Ahora si ya estamos listos para realizar la instalacion.

DB2 dispone de varios   Metodos de instalacion
Como nuestro servidor no cuenta con entorno grafico el metodo de instalacion que utilice es el basado en archivos de respuesta.

Pueden utilizar el archivo de respuesta que trae como ejemplo el instalador y modificar los valores segun su conveniencia.
El Db2 e\Express -C 10.5 trae el sample en /usuario/descargas/expc/db2/linuxamd64/samples y llevan la extension .rsp

Yo lo que hago aqui es copiar el archivo db2expc.rsp para luego realizar algunas modificaciones
Ejemplo:

[root@miservidor samples]# cp db2expc.rsp miArchivoDeRespuesta.rsp


 Luego deberan otorgar permisos de escritura ya que por defecto es de solo lectura.
 Luego deberan modificar el archivo de respuesta y activar las caracteristicas que deseen.
 El sample contiene ya las intrucciones de como modificar el archivo para activar las caracteristicas.

 Finalmente, una vez que modifiquen el sample (o la copia del mismo como lo hicimos), posicionarse en la raiz del directorio de instalacion. Ej. /usuario/descargas/expc y ejecutar el comando ./db2setup con la opcion -r indicandole donde se encuentra su archivo de respuesta.
Ejemplo:

[root@miservidor expc]# ./db2setup -r 
/usuario/descargas/expc/db2/linuxamd64/samples/miArchivoDeRespuesta.rsp

Finalmente, como resultado, ya tendran instalado DB2 en CentOS


Verificacion de la instalacion

Pueden verificar el log de la instalacion que se crea en /tmp/db2setup.log

Tambien, pueden verificar la instalacion creando la base de datos sample.
Para ello
1- Iniciar sesión con el usuario dueño de la instancia o con autorización sysadm
2- Iniciar el gestor de base de datos db2start
3- Ejecutar el mandato db2sampl para crear la base de datos

Por ultimo pueden ejecutar el mandato db2val
Ejemplo:

[root@localhost bin]# ./db2val -a
DBI1379I  Se está ejecutando el mandato db2val. Esto puede tardar varios minutos.
DBI1335I  La validación de los archivos de instalación para la copia de DB2 instalada en /opt/ibm/db2/V10.5 se ha realizado correctamente.
DBI1339I  La validación de la instancia db2inst1 se ha realizado correctamente.
DBI1343I  El mandato db2val se ha completado correctamente. Para obtener más información, consulte el archivo de anotaciones /tmp/db2val-140625_113144.log.