Como instalar Informix en un Raspberry PI
Ésta es una receta para instalar Informix Dynamic Server Developer Edition en una RaspberryPi utilizando raw devices (Como somos sysadmines, queremos raw devices).
Se me ocurrió realizar esta guía dado que Informix es un excelente motor de base de datos y poco conocido o que goza de la reputación de “misterioso”, entonces, para aprender Informix, que mejor que una RaspberryPi, un poco de tiempo y las ganas de aprender algo nuevo !
Prerequisitos:
- RaspberryPi modelo B
- Por lo menos una SD para el sistema operativo de la RaspberryPi y un pendrive de ocho gigas para los raw devices. Recomendable: una SD para el booteo, un pendrive para el sistema operativo y otro pendrive para la base de datos. Esta última configuración es la que vamos a usar en este tutorial.
- Como sistema operativo se utiliza raspbian con los paquetes libaio1 y lvm2 instalados a mano, ya que no vienen instalados por defecto.
- El Informix propiamente dicho, Informix Developer Edition for Linux ARM v6 32 (Raspberry PI) Version 10UC4DE, (es un tar llamado ids.12.10.UC4DE.Linux-ARM6.tar) desde el sitio de IBM . Hay que registrarse como usuario para obtener el IbmId, son sólo 5 minutos.
Instalación
Parto de la base que tenes la raspi instalada con raspbian, funcionando, y con acceso de root. Antes que nada hay que instalar dos paquetes que no vienen instalados por defecto: libaio1 y lvm2.
Consideraciones: En mi raspi tengo dos pendrive y una SD, como les había contado antes. Así que, seguramente el nombre del dispositivo asociado al pendrive va a ser distinto (se puede copiar, reemplazar y pegar también)
Como root:
apt-get install libaio1 apt-get install lvm2
Una vez agregados los paquetes: vamos a crear el grupo y usuario Informix.
addgroup informix adduser --ingroup informix Informix
Vamos a preparar el almacenamiento para la base de datos (los famosos raw devices):
Primero, vamos a determinar cuál es nuestro pendrive, que vamos a utilizar para nuestra base creándole los raw devices:
Ejecutamos dmesg para ver nuestro pendrive
[ 4.766035] scsi 1:0:0:0: Direct-Access Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 4 [ 4.780904] sd 1:0:0:0: [sdb] 15148608 512-byte logical blocks: (7.75 GB/7.22 GiB) [ 4.794613] sd 1:0:0:0: [sdb] Write Protect is off [ 4.840400] sd 1:0:0:0: [sdb] Attached SCSI removable disk
Ya sabemos que es sdb. Entonces procedamos a armar los raw devices.
Antes que nada, el proceso en sí mismo, conceptualmente es: generar logical volumes sobre el pendrive y despues, sobre cada uno de los lv's generar un raw device.
Creamos los logical volume
root@raspberrypi:~# pvcreate /dev/sdb Writing physical volume data to disk "/dev/sdb" Physical volume "/dev/sdb" successfully created root@raspberrypi:~# vgcreate vginformix /dev/sdb Volume group "vginformix" successfully created root@raspberrypi:~# lvcreate -n lvrootdbs -L +500M vginformix Logical volume "lvrootdbs" created root@raspberrypi:~# lvcreate -n lvdatadbs00 -L +2G vginformix Logical volume "lvdatadbs00" created root@raspberrypi:~# lvcreate -n lvdatadbs01 -L +2G vginformix Logical volume "lvdatadbs01" created root@raspberrypi:~# lvcreate -n lvtempdbs00 -L +500M vginformix Logical volume "lvtempdbs00" created root@raspberrypi:~# lvcreate -n lvlogsdbs -L +500M vginformix Logical volume "lvlogsdbs" created
Chequeamos que hayan sido creados bien.
root@raspberrypi:~# lvs LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert lvdatadbs00 vginformix -wi-a--- 2.00g lvdatadbs01 vginformix -wi-a--- 2.00g lvlogsdbs vginformix -wi-a--- 500.00m lvrootdbs vginformix -wi-ao-- 500.00m lvtempdbs00 vginformix -wi-a--- 500.00m
Generamos los raw devices.
root@raspberrypi:~# raw /dev/raw/raw1 /dev/vginformix/lvrootdbs root@raspberrypi:~# /dev/raw/raw1: bound to major 254, minor 0 root@raspberrypi:~# raw /dev/raw/raw2 /dev/vginformix/lvdatadbs00 root@raspberrypi:~# /dev/raw/raw2: bound to major 254, minor 1 root@raspberrypi:~# raw /dev/raw/raw3 /dev/vginformix/lvdatadbs01 root@raspberrypi:~# /dev/raw/raw3: bound to major 254, minor 2 root@raspberrypi:~# raw /dev/raw/raw4 /dev/vginformix/lvtempdbs00 root@raspberrypi:~# /dev/raw/raw4: bound to major 254, minor 3 root@raspberrypi:~# raw /dev/raw/raw5 /dev/vginformix/lvlogsdbs root@raspberrypi:~# /dev/raw/raw5: bound to major 254, minor 4
Una vez generados los raw devices, tenemos que cambiarles el propietario y los permisos de acceso, y luego verificamos que haya quedado todo bien. (es muy importante tomar nota del nombre de los raw)
root@raspberrypi:~# chown informix.informix /dev/raw/raw[0-9] root@raspberrypi:~# chmod 660 /dev/raw/raw[0-9] root@raspberrypi:~# ls -la /dev/raw total 0 drwxr-xr-x 2 root root 160 Jun 20 12:43 . drwxr-xr-x 14 root root 3380 Jun 20 12:41 .. crw-rw---- 1 informix informix 162, 1 Jun 20 12:38 raw1 crw-rw---- 1 informix informix 162, 2 Jun 20 00:31 raw2 crw-rw---- 1 informix informix 162, 3 Jun 20 00:31 raw3 crw-rw---- 1 informix informix 162, 4 Jun 20 00:32 raw4 crw-rw---- 1 informix informix 162, 5 Jun 20 12:43 raw5 crw------- 1 root root 162, 0 Dec 31 1969 rawctl
Ahora viene la parte de instalación del motor de base de datos.
Antes que nada, es conveniente mover y descomprimir el archivo de instalación de Informix en un directorio temporal.
mv ids.12.10.UC4DE.Linux-ARM6.tar /tmp cd /tmp tar xvf ids.12.10.UC4DE.Linux-ARM6.tar
Vamos a encontrar el archivo ids_install. Ese archivo es el ejecutable de nuestro asistente de instalación.
root@raspberrypi:/tmp# ls -la total 910192 drwxrwxrwt 6 root root 4096 Jun 20 00:32 . drwxr-xr-x 22 root root 4096 May 29 23:59 .. drwxr-xr-x 2 root daemon 4096 Dec 17 2014 doc drwxrwxrwt 2 root root 4096 Jun 19 22:17 .ICE-unix -rw-r--r-- 1 root root 466042880 Jan 5 16:17 ids.12.10.UC4DE.Linux-ARM6.tar -rwx------ 1 root root 465965056 Dec 18 2014 ids_install drwx------ 2 root root 4096 Jun 20 00:12 mc-root drwxrwxrwt 2 root root 4096 Jun 19 22:17 .X11-unix
Lo ejecutamos:
root@raspberrypi:/tmp# ./ids_install
Nos aparecerá la siguiente pantalla:
============================================ Bundle Software ============================================ * * Texto de la licencia * 1. Accept the license, 2. Decline the License, 3. Continue Reading.
Aparecen los terminos de la licencia.
- Y la aceptamos, presionando 1
Después nos aparece la pantalla de presentación de software a instalar, las opciones por defecto son las que nos sirven.
============================================ Informix Software Bundle ============================================ Select the Products to Install: [X] 1. 'Informix_Dynamic_Server'. [X] 2. 'Informix_JDBC'. [X] 3. 'Informix_ClientSDK'. [ ] 4. 'Informix_Connect'. ============================================
Informix Dynamic Server es el servidor propiamente dicho.
Informix JDBC son los drivers de Informix para Java
Informix ClientSDK es el sdk para programar aplicaciones cliente usando librerias de funciones nativas.
Apretamos ENTER para aceptar las opciones por defecto.
============================================ Informix Software Bundle ============================================ * * * Specify a directory where to install the products: ENTER to proceed:/opt/IBM/informix
En este punto, vamos a especificar el directorio de instalación a /opt/IBM/informix apretamos 1 para aceptar la licencia de IDS
Esperar un rato largo, servirse un café, una gaseosa, o lo que guste, mientras se instala el motor de base de datos.
Después aparece la instalación del SDK
============================================ Informix_ClientSDK ============================================ * * Texto de la licencia * 1. Accept the license, 2. Decline the License, 3. Continue Reading.
Cuando llegue el momento de instalar el SDK, volver a apretar 1 para aceptar la licencia
Por último aparece ésta pantalla:
============================================ Informix_ClientSDK ============================================ * * * Installation was successful. ============================================ root@raspberrypi:/tmp#
En la próxima entrega, les voy contar como configurar el motor de base de datos, crear la primera base y hacer nuestra primera consulta.
Saludos, y hasta la próxima