miércoles, 25 de septiembre de 2019

Informix 14 | Centos 8

Bueno, después de mucho tiempo podemos hacer una actualización al manual anterior que hice de instalación de informix sobre Centos 6, el mismo quedara oficialmente desactualizado con la publicación de este post.

Manos a la obra, en primer lugar, asumo que se ha descargado la version 8 de Centos y también Informix version Developer Edition 14.10, este manual también puede ser aplicado para RedHat 8

Actualizaciones:
- 06/02/2021, Se mejora la redacción y se aclara los usuarios que deben ejecutar los comandos. 

1. Instalando Centos8 / RedHat 8

Es necesario indicar que comentare debajo de las imágenes solo cuando sea necesario, ya que el mismo proceso de instalación es bastante sencillo.





 Para la seleccion de software se elige la minima con los componentes de la derecha, esto para que no requiramos la instalación de paquetes adicionales durante la configuración.

De preferencia configurar la red en este punto.

Desactivar kdump

Seleccionar personalizado, luego hecho

Añadir particion estandar /boot con 500MB

Añadir el área de intercambio

Añadir /home de 50GB tambien como LVM


Debe quedar de esta forma (Puede variar en los espacios asignados dependiendo del tamaño del disco)

Escribir los cambios y la tabla de particiones

Iniciar la instalación

Ingresar a configurar contraseña de root luego crear usuario.

Cambio de contraseña de root

Adicion de usuario informix como administrador con su contraseña

Esperar que se culmine el proceso

Reiniciar



Sistema ya instalado.

Ingresar como root y ejecutar: yum update

Instalar todas las actualizaciones indicadas

NOTA IMPORTANTE ANTES DE INICIAR:
Antes de comenzar debemos leer bien el encabezado de cada sección: 
  • cuando indica COMO ROOT, debe ingresar a una terminal con el usuario root.
  • cuando indica COMO INFORMIX, debe ingresar a una terminal con el usuario informix.
Ejecutar los comandos con el usuario indicado es muy importante para el proceso de instalación. 

2. Instalar las dependencias de Informix (como root). 

Para instalar las dependencias es indispensable tener actualizado el servidor con el paso anterior (yum update )
dnf install -y gcc ncurses-c++-libs ncurses-compat-libs java-1.8.0-openjdk ncurses-libs ncurses-libs.i686 ncurses-devel ncurses-devel.i686 glibc.i686 libnsl libnsl.i686 tmux nano mc
Configurar el ip en el archivo /etc/hosts
nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1   centos8   # aqui debe reemplazar el ip y el hostname de instalacion

3. Configurar el sistema operativo (como root)

Deben realizarse varias configuraciones y entre ellas las mas importantes son las siguientes:
  • Desactivar IPV6:
nano /etc/default/grub
### Buscar esta linea y editarla
GRUB_CMDLINE_LINUX="ipv6.disable=1 rhgb quiet"
grub2-mkconfig -o /boot/grub2/grub.cfg
  • Desactivar Selinux:
nano /etc/selinux/config 
### Buscar esta linea y editarla
SELINUX=permissive

3.1. Particionar y establecer DBS (como root)

  • Seleccionar el disco sobre el cual se creara el PVG (OJO con esta sección)
fdisk -l
Disco /dev/sda: 120 GiB, 128849018880 bytes, 251658240 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x4b90fac7

Disposit.  Inicio Comienzo     Final  Sectores Tamaño Id Tipo
/dev/sda1  *          2048   1026047   1024000   500M 83 Linux 
/dev/sda2          1026048   5220351   4194304     2G 82 Linux swap / Solaris
/dev/sda3          5220352 152037375 146817024    70G 8e Linux LVM


Disco /dev/mapper/cl_centos8-root: 20 GiB, 21474836480 bytes, 41943040 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes


Disco /dev/mapper/cl_centos8-home: 50 GiB, 53687091200 bytes, 104857600 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytesç
Seleccionamos sda ya que en esta particion existe espacio necesario

  • Crear nueva partición
fdisk /dev/sda
Bienvenido a fdisk (util-linux 2.32.1).
Los cambios solo permanecerán en la memoria, hasta que decida escribirlos.
Tenga cuidado antes de utilizar la orden de escritura.

Orden (m para obtener ayuda): n
Tipo de partición
   p   primaria (3 primaria(s), 0 extendida(s), 1 libre(s))
   e   extendida (contenedor para particiones lógicas)
Seleccionar (valor predeterminado e): p

Se ha seleccionado la partición 4
Primer sector (152037376-251658239, valor predeterminado 152037376):
Último sector, +sectores o +tamaño{K,M,G,T,P} (152037376-251658239, valor predeterminado 251658239):

Crea una nueva partición 4 de tipo 'Linux' y de tamaño 47,5 GiB.

Orden (m para obtener ayuda): w
Se ha modificado la tabla de particiones.
Se están sincronizando los discos.
  • Verificar la tabla de particiones
lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                   8:0    0  120G  0 disk
├─sda1                8:1    0  500M  0 part /boot
├─sda2                8:2    0    2G  0 part [SWAP]
├─sda3                8:3    0   70G  0 part
│ ├─cl_centos8-root 253:0    0   20G  0 lvm  /
│ └─cl_centos8-home 253:1    0   50G  0 lvm  /home
└─sda4                8:4    0 47,5G  0 part

3.2. Crear la tabla de particiones LVM y permisos para las particiones LVM creada (como root).

Como se puede apreciar en el punto anterior, se tiene creada la particion sda4 con 47,5GB para usarlos en la LVM, debe procederse a crear de la siguiente forma:
pvcreate /dev/sda4
vgcreate dbs /dev/sda4
lvcreate dbs -L 5G -n rootdbs
lvcreate dbs -L 30G -n datadbs
lvcreate dbs -L 10G -n tempdbs
Quiero aclarar que el nombre dbs es el nombre asignado al LVM y la Grupo de Volumen
  • El resultado de la creación deberá ser:
lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                   8:0    0  120G  0 disk
├─sda1                8:1    0  500M  0 part /boot
├─sda2                8:2    0    2G  0 part [SWAP]
├─sda3                8:3    0   70G  0 part
│ ├─cl_centos8-root 253:0    0   20G  0 lvm  /
│ └─cl_centos8-home 253:1    0   50G  0 lvm  /home
└─sda4                8:4    0 47,5G  0 part
  ├─dbs-rootdbs     253:2    0    5G  0 lvm
  ├─dbs-datadbs     253:3    0   30G  0 lvm
  └─dbs-tempdbs     253:4    0   10G  0 lvm
  • Enlazamos los lvm's creados para que se usen como dbspaces de informix (previamente se crea y da permisos a la carpeta dbs)
mkdir /home/informix/dbs
chown informix.informix /home/informix/dbs
ln -s /dev/dbs/rootdbs /home/informix/dbs/rootdbs
ln -s /dev/dbs/datadbs /home/informix/dbs/datadbs
ln -s /dev/dbs/tempdbs /home/informix/dbs/tempdbs
  • Dar permisos permanentes a los discos lvm creados (con el usuario root):
nano /etc/udev/rules.d/92-informix.rules
### Contenido ###
ENV{DM_VG_NAME}=="dbs" ENV{DM_LV_NAME}=="rootdbs" OWNER="informix", GROUP="informix"
ENV{DM_VG_NAME}=="dbs" ENV{DM_LV_NAME}=="datadbs" OWNER="informix", GROUP="informix"
ENV{DM_VG_NAME}=="dbs" ENV{DM_LV_NAME}=="tempdbs" OWNER="informix", GROUP="informix"

 3.3. Configuración de Firewall (como root):

Añadir el puerto que se va a usar de informix al firewall, generalmente este puerto es el 9088 y 9089, en el caso de usar mas de una instancia considerar añadir mas puertos.
firewall-cmd --zone=public --add-port=9088/tcp --permanent
firewall-cmd --zone=public --add-port=9089/tcp --permanent
firewall-cmd --reload
  • Reiniciar nuevamente para verificar que los permisos de los dbs en /dev/dbs son de informix:
reboot
  • Despues de reiniciar ingresar como root y verificar con:
ls -al /dev/dm*
brw-rw---- 1 root     disk     253, 0 sep 24 12:30 /dev/dm-0
brw-rw---- 1 informix informix 253, 1 sep 24 17:37 /dev/dm-1
brw-rw---- 1 informix informix 253, 2 sep 24 16:37 /dev/dm-2
brw-rw---- 1 informix informix 253, 3 sep 24 16:37 /dev/dm-3
brw-rw---- 1 root     disk     253, 4 sep 24 12:30 /dev/dm-4

4. Configuración para la instalación de Informix (como informix)

Antes que nada debe establecer el profile para el usuario informix, editando el archivo .bash_profile
nano .bash_profile    
### Contenido ###
export INFORMIXDIR=/home/informix
export PATH=$PATH:$INFORMIXDIR/bin:.
export INFORMIXSERVER=online
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INFORMIXDIR/lib:$INFORMIXDIR/lib/tools:$INFORMIXDIR/lib/esql:$INFORMIXDIR/lib/c++:$INFORMIXDIR/lib/cli
export DBDATE=DMY4/
export DBCENTURY=C
export ONCONFIG=onconfig.online
export DBEDIT=nano
export VISUAL=nano
export TERM=vt100
export CSDK_HOME=$INFORMIXDIR

5. Instalar otro software de IBM (como root)

Antes de instalar el motor de base de datos Informix, debe instalar el software adicional que pertenezca a su licencia, por ejemplo, en el caso que se tenga la licencia de 4GL (COMPILER, SQL, RDS,RT), copiar los programas a la ruta [/home/ifx] si no existe crear la carpeta como root, y continuar con el siguiente proceso ingresando como informix en una nueva terminal:
cd /home/informix/
source .bash_profile
tar xvf ../ifx/4GL_COMPILER_XXXXX_LNX_X86_64.tar
./install4gl
tar xvf ../ifx/4GL_RDS_XXXXX_LNX_X86_64.tar
./install4gp
tar xvf ../ifx/SQL_XXXXX_LNX_X86_64.tar
./installsql

6. Instalar el motor de base de datos Informix (como root).

Previamente copiar como root el instalador a la ruta /home/ifx/ posterior a ello ingresar con el usuario root y ejecutar:
cd /home/ifx/
tar xvf ibm.ids.14.10.FC3.LNX.tar
./ids_install
Los pasos de la instalación son bastante intuitivos motivo por el cual ya no se incluirán los mismos.

7. Instalar la licencia (como root).

Para este manual, se cuenta con la licencia Innovator-C, ingresando a una terminal como informix.
cd /home/informix/
unzip /home/ifmx/ibm.ins.ie_edition.ALL.zip
java -jar ie_edition.jar

8. Configurar una instancia Informix (como informix)

Una vez instalado el motor e ingresando como informix, procedemos a configurar la primera instancia, con el usuario informix.
cp etc/onconfig.std etc/onconfig.online
cp etc/sqlhosts.demo etc/sqlhosts
nano etc/onconfig.online
#### Modificar los siguientes ###
ROOTPATH /home/informix/dbs/rootdbs
ROOTSIZE 5000000
PHYSFILE 500000
LOGFILES 20
LOGSIZE 80000
MSGPATH /home/informix/online.log
CONSOLE /home/informix/online.con
DBSPACETEMP tempdbs
SERVERNUM 0
DBSERVERNAME online #este nombre va tambien en sqlhosts
NETTYPE ipcshm,1,50,CPU
NETTYPE soctcp,1,50,NET
NS_CACHE host=0,service=0,user=0,group=0,sqlhosts=0
LOCKS 400000
DEF_TABLE_LOCKMODE row
TAPEDEV /dev/null
LTAPEDEV /dev/null
MAX_PDQPRIORITY 0
OPTCOMPIND 0
CDR_QUEUEMEM 4096
DUMPSHMEM 2
BUFFERPOOL default,buffers=100000,lrus=8,lru_min_dirty=50.00,lru_max_dirty=60.50
BUFFERPOOL size=2k,buffers=100000,lrus=8,lru_min_dirty=5,lru_max_dirty=60
nano etc/sqlhosts
#### añadir al final ###
online  onsoctcp        centos8         9088
  • Inicializar el motor de base de datos
oninit -ivy
  • Al culminar el proceso debería emitir el mensaje:
Verbose output complete: mode = 5

 9. Añadir los spaces creados en la seccion LVM (como informix)

 Existen 2 tipos de datadb's temporales y almacenes, ambos se añaden por linea de comando o sentencia SQL, usaremos la linea de comandos para cada caso:
1. tempdbs

onspaces -c -d tempdbs -t -o 0 -p /home/informix/dbs/tempdbs -s 10000000
2. datadbs
onspaces -c -d datadbs -o 0 -p /home/informix/dbs/datadbs -s 30000000

 10. Configurar el inicio automático del motor de base de datos (como root).

nano /usr/lib/systemd/system/informix.service
#### Contenido ###
[Unit]
Description=Informix IDS Database Server
Wants=network-online.target
After=network.target network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes
Environment="INFORMIXDIR=/home/informix" "DBDATE=DMY4/" "INFORMIXSERVER=online" "ONCONFIG=onconfig.online"
ExecStart=/home/informix/bin/oninit
ExecStop=/home/informix/bin/onmode -ky

[Install]
WantedBy=multi-user.target
  • Activar el inicio automático:
systemctl enable informix.service
Created symlink /etc/systemd/system/multi-user.target.wants/informix.service → /usr/lib/systemd/system/informix.service.
  • 11. Reiniciar para culminar:
reboot

Espero le sirva a alguien.

6 comentarios:

  1. Excelente tu Blog, felicitaciones.
    Tienes algun link para descargar Informix 14 para linux?
    Saludos

    ResponderEliminar
  2. Excelente trabajo Gary. Por casualidad tendras el link de descarga del CSDK de 64b para linux? no me descarga de la pagina de IBM
    Saludos

    ResponderEliminar
  3. gracias por este gran aporte Gary.
    Con respecto a Informix 4gl se puede descargar de algun sitio como prueba?
    Saludos

    ResponderEliminar
  4. Aqui todos compartiendo tus conocimientos los estudia tes de la UAN

    ResponderEliminar