Previous  Next  Contents 

4. Corriendo Informix

4,1 Encendiendo el motor de la base de datos

Usando sqlexec

Para iniciar Informix-SE, cerciórese de que tiene por lo menos configuradas las variables de entorno $INFORMIXDIR e $INFORMIXSERVER y que ha añadido $INFORMIXDIR/bin a su variable de entorno $PATH. Entonces, simplemente ingresando

 < frodo  $ dbaccess

comenzará una sesión del sqlexec. Presionando <ENTER le presentará una lista de las bases de datos que usted puede abrir; utilice las flechas para seleccionar su base de datos deseada y presione <ENTER.

Usando sqlexecd

A menos que usted esté permitiendo el acceso remoto a una base de datos en su computadora local (la computadora en la cual vive la base de datos), no utilice el sqlexecd. Sin embargo, si insiste, lea este párrafo.

Debido a que sqlexecd se ejecuta como demonio, debe ser comenzado por root. Hay una variedad de maneras de lograr esto. Sin importar cómo usted decidirá hacer esto, se tiene que configurar $INFORMIXDIR. Se tiene que especificar como argumento al sqlexecd un nombre de servidor válido para la base de datos (según lo definido en $INFORMIXDIR/etc/sqlhosts). Vea &iquest;cómo permito conexiones remotas? para más detalles.

Para iniciar sqlexecd cuando se inicia el sistema (boot time), agregue lo siguiente a rc.local (o dondequiera que esté situado en su sistema). Si usted prefiere los scripts al estilo init de SysV, por supuesto, puede utilizar ese formato. Si no se siente cómodo con el formato anterior use el siguiente formato en rc.local.

export $INFORMIXDIR=/camino/a_la/ubicacion/informix
$INFORMIXDIR/bin/sqlexecd nombre_dbservidor

Para comenzar el sqlexecd en cualquier otro momento, ejecute el mismo comando que arriba. Por conveniencia, es común al configurar $INFORMIXDIR y $INFORMIXSERVER en /etc/profile. Muchos sitios, particularmente grandes instalaciones, utilizan unas scripts de inicialización global para fijar éstos y otras variables de entorno relacionadas con Informix.

4.2 Deteniendo el motor de base de datos

Al usar dables, no hay necesidad de matar al sqlexec, porque al finalizar dbaccess (bajo circunstancias normales), eliminará los procesos relacionados con el sqlexec en forma automática. Sin embargo, bajo circunstancias anormales,  recomiendo fuertemente eliminar a los procesos padres del sqlexec, tal como dbaccess o el shell o el programa compilado con ESQL/C, en lugar de eliminar al sqlexec en sí mismo, puesto que puede, de otra manera, corromper su base de datos. Matar al proceso padre enviará una señal al sqlexec y le dará la oportunidad de cerrarse normalmente.

Esto es lo bastante importante para repetirlo: Nunca elimine al proceso sqlexec a menos que, desgraciadamente, el resto de las soluciones hayan fallado. Hacerlo así, particularmente una base de datos que está usando logs de transacción, existe el riesgo y la probabilidad de estropear su base de datos. Cuando los logs de transacciones están activados, matar al sqlexec potencialmente da lugar a una transacción incompleta, la cual no podrá deshacerse (roll-back): sin el sqlexec, desaparecerán los bloqueos, por lo tanto otros procesos continuarán manipulando los datos parcialmente actualizados. Obviamente que Usted realmente no desea hacer esto! Nunca mate a un proceso sqlexec a menos que usted no tenga absolutamente ninguna otra alternativa.

Por otra parte, es bastante inofensivo matar al sqlexecd. Su único propósito es escuchar en un puerto peticiones de conexiones entrantes, iniciar un proceso sqlexec para servir a esas peticiones, para luego ir nuevamente a escuchar otra petición.

4.3 &iquest;Cuáles son estos códigos de error?

Para convertir códigos de error de Informix-SE en forma entendible, utilice el programa finderr (otra vez, cerciorándose de que $$INFORMIXDIR/bin está en su camino):

finderr <-num         devuelve el texto de error para -num
finderr <num          devuelve el texto de error para -num
finderr <+num         devuelve el texto de error para  num

Puede también buscar el número del error en la guía Informix Error Messages disponible en el sitio Informix's Answer OnLine (véase Informix Documentation).


Previous  Next  Contents