Instalar Informix 12.10 en Centos7

Creamos el usuario informix, el grupo informix y un archivo de perfil compartido

sudo groupadd informix                                    # Crear grupo informix
sudo useradd -g informix -d /dev/null informix            # Crear usuario informix y agregarlo al grupo informix
sudo passwd informix                                      # seteamos el password del usuario informix
sudo mkdir /opt/informix                                  # Crear el directorio de informix
sudo chown informix.informix /opt/informix                # Damos ownership a informix
sudo vi /etc/profile.d/informix.sh                        # Generar un archivo de perfil

Copiar este contenido a /etc/profile.d/informix.sh

SQLHOSTS=/opt/informix/etc/sqlhosts
INFORMIXDIR=/opt/informix
INFORMIXSERVER=miServidor
ONCONFIG=onconfig.std
PATH=$INFORMIX/bin:$PATH:/opt/informix/bin
export INFORMIXDIR PATH INFORMIXSERVER ONCONFIG SQLHOSTS

Instalamos el DBMS y lo configuramos Cuando poregunte si queres crear una instancia decimos que NO!!

sudo mv $HOME/iif*.tar /opt/informix                           # Mover el tar que bajhan de IBM a la carpeta /opt/informix
cd /opt/informix                                               # Ir a /opt/informix
su informix -c "tar -xvf iif*.tar"                             # Descomprimirlo como el usuario informix
sudo ./ids_install                                             # Instalamos el informix ejecutando el instalador.
sudo touch /opt/informix/etc/sqlhosts                          # Crear el archivo sqlhosts
sudo chown informix.informix /opt/informix/etc/sqlhosts        # Le damos ownership al grupo y usuario informix
sudo vi /opt/informix/etc/sqlhosts                             # Si quieren otro nombre de server deben cambiar tambien todas las referencias anterirores a miServidor (Paso 5) )

Copiar esto a /opt/informix/etc/sqlhosts. Si dejamos localhost no podemos conectarnos remotamente. Solo cuando ponemos una IP nos lo va a permitir.

#dbservername    nettype       hostname      servicename      options
miServidor       onsoctcp      (localhost  or ip)    informix 

En este archivo hay que EDITARLO, no sobreescribirlo del todo...

sudo vi /opt/informix/etc/onconfig.std						# Editar el archivo onconfig con estos valores ( en vi se puede buscar con el ? )

Buscamos donde estan esas lineas y las editamos

ROOTPATH /opt/informix/logdir/rootdbs
DBSERVERNAME miServidor

Creamos el root dbspace

su informix -c "mkdir /opt/informix/logdir"               # Creamos el directorio /opt/informix/logdir	
sudo chown informix.informix /opt/informix/logdir         # Creamos el directorio /opt/informix/logdir	
su informix -c "chmod 770 /opt/informix/logdir"           # Le cambiamos los permisos
su informix -c "touch /opt/informix/logdir/rootdbs"       # Creamos el root dbs 
su informix -c "chmod 660 /opt/informix/logdir/rootdbs"   # Le cambiamos los permisos al dbspace root
sudo chown informix.informix /opt/informix/logdir/rootdbs # Le cambiamos los owners al dbspace root

Editamos el archivo de servicios y añadimos el nuestro, que lo vamos a llamar... informix... :P

sudo vi /etc/services									# Añadimos esta linea al final del archivo /etc/informix ( Si ya tienen algun servicio en el puerto 50000 cambiar por otro numero mayor a 50000, por ej 53400)

Y pegar este contenido :

informix        50000/tcp		# Informix server

Creamos unos dbspace para trabajar nosotros, no creamos bases de datos en el dbspace del root porque es una chanchada

sudo mkdir /mis_dbspaces                     # Creamos una carpeta para los dbspaces
sudo chown informix.informix /mis_dbspaces   # le damos ownership de esa carpeta a el usuario informix
sudo su -                                    # nos convertimos en root
cd /opt/informix/                            # Nos vamos a la carpeta de informix ( por las dudas)
source /etc/profile.d/informix.sh            # Por si las moscas, ahcemos source al perfil
oninit -ivy                                  # ACA EL SERVER DEBERIA LEVANTAR

En este paso, si todo quedo ok, el server deberia levantar. Despues de eso deberiamos chequear si esta online con este comando :

onstat -

Si todo quedo bien deberiamos ver un mensaje como este :

"IBM Informix Dynamic Server Version 10.00.UC4 -- On-Line -- Up 00:00:07 -- 19508 Kbytes"
.....

De ahora en mas creamos un dbspace propio, porque crear una base de datos en el espacio del root es una chanchada

cd /mis_dbspaces                                  # Creamos una base de datos llamada 'mapas'
touch mi_primer_dbspace.dbspace                   # Creamos un archivo vacio que sera nuestro primer dbspace
chown informix.informix mi_primer_dbspace.dbspace # le damos el ownership a informix
chmod 660 mi_primer_dbspace.dbspace               # Cambiamos los permissos a 660

Y finalmente añadimos el dbspace

onspaces -c -d mi_primer_dbspace -p /mis_dbspaces/mi_primer_dbspace.dbspace -o 0 -s 1000000  # Crear el dbspace

Dejamos de ser root y pasamos a crear una base de datos de prueba

exit # dejamos de ser root 
cd   # vamos a nuestro home

Creamos una base de datos llamada 'mapas'

touch crear_db.sql && vi crear_db.sql # Creamos un archivo sql con estas lineas 

Y pegamos este contenido en el archivo :

CONNECT TO 'mapas@miServidor' USER 'matias'  USING '1234';
	

CREATE TABLE Institutos
		(
		  id_instituto  SERIAL PRIMARY KEY  CONSTRAINT Institutos_clave_primaria,
		  nombre  varchar(50) NOT NULL CONSTRAINT Institutos_nombre_vacio,
		  calle   varchar(50) NOT NULL CONSTRAINT Institutos_calle_vacio,
		  numero  INT,
		  telefonos varchar(100),
		  email varchar(80),
		  baja boolean NOT NULL CONSTRAINT Institutos_baja_vacio
		); 
		
INSERT INTO Institutos (nombre, calle, numero, telefonos, email, baja)
VALUES ('Escuela Técnica "Arroyo Seco"', "Av. Agraciada Esq. Aguilar", 2544, "29243865|29243856", "etas010@gmail.com", "f");

INSERT INTO Institutos (nombre, calle, numero, telefonos, email, baja)
VALUES ('Intituto Técnico Superior "Buceo"', "Av. Rivera Esq. Tomas de Tésanos", 3729 , "26285408|26285813", "itsbuceo@gmail.com", "f");

INSERT INTO Institutos (nombre, calle, numero, telefonos, email, baja)
VALUES ('Escuela Técnica Cerro "Mtro. Nicasio García"', "Portugal Esq. Carlos Mª Ramírez", 4257 , "23111056|23119407|23114949", "portugal4257@hotmail.com", "f");

INSERT INTO Institutos (nombre, calle, numero, telefonos, email, baja )
VALUES ('Escuela Técnica Colón  "Don Alberico Passadore"', "Cno. Colman Esq. Cesar Mayo Gutierrez", 5274 , "23209511|23205789", "estecolon@gmail.com", "f");

INSERT INTO Institutos (nombre, calle, numero, telefonos, email, baja )
VALUES ('Escuela Técnica Flor de Maroñas', "Andrés Latorre Esq. Veracierto", 4914 , "25148177|25148210", "utuflor2012@hotmail.com", "f");

INSERT INTO Institutos (nombre, calle, numero, telefonos, email, baja)
VALUES ('Escuela Técnica Artigas', "Bernabé Rivera Esq. Gral Rivera", 626 , "47723687|47725988", "etautu626@adinet.com.uy", "f");

Habilitamos el puerto 50000 en el firewall-cmd

sudo firewall-cmd --zone=public --permanent --add-port=50000/tcp
sudo firewall-cmd --reload

Para redirigir los logical logs a /dev/null ejecutar estos comandos

̣

sudo su -
ln  /dev/null /dev/tapedev
echo | nohup ontape -c & disown