You are on page 1of 4

COMANDOS INFORMIX La idea de este post es listar algunos comandos tiles para el servidor de base de datos Informix, con

el que algunos tenemos que sufrir trabajar da a da. Muchos de ellos se pueden ejecutar desde ambientes grficos, pero generalmente no disponemos de dichos ambientes en servidores de testing o produccin. Intenter ir actualizando la lista a medida que me vaya encontrando con otros comandos que considere que valgan la pena. Los comandos Bajar el motor Desde la lnea de comandos, ejecutar:onmode -ky Podemos hacerlo de forma ms "delicada", siguiendo los siguientes pasos: Ejecutaronmode -sy para dejar no permitir nuevas conexiones, pero permitir que las conexiones que ya estaban abiertas se cierren de forma normal. luego de cerrar todas las conexiones, el servidor queda en quiescent mode, algo as como inactivo, pero no apagado. El siguiente paso es movernos al siguiente log lgico, ejecutando:onmode -l Luego forzamos un checkpoint, de forma de estar seguros de escribir todos los buffers a disco:onmode -c Finalmente, ejecutamos el comando para dejar el servidor de Informix offline:onmode -ky Subir el motor Para subir el motor de Informix, ejecutamos sin parmetros el comando:oninit En Linux/UNIX, debemos estar logueados como root o como informix para poder ejecutar oninit. En Windows, se debe ejecutar siendo miembro del grupo Informix-Admin. Ver la descripcin de un error Dado un cdigo de error, podemos obtener una descripcin y posibles acciones correctivas ejecutando:finderr numero# El resultado es similar al siguiente (cambiando para cada error, claro est):infordb:~ # finderr 167 -167 ISAM error: Storage-space size is not multiple of PAGESIZE. The database server administrator sees this error. When you define a storage space, you must specify a page size that is an integral multiple of the system page size. The system page size is set in the Parameters screen when the database server is first initialized. Pasar una base de transaccional a no

transaccional y viceversa Al restaurar un respaldo de una base de datos, si no decimos explcitamente, la base restaurada no soportar transacciones, sino que quedar en modo no transaccional. Al intentar utilizarla desde nuestras aplicaciones, las sentencias de BEGIN WORK, COMMIT, ROLLBACK, etc. fallarn por estar trabajando la base en este modo. En estos casos, podemos pasar la base de datos a transactional unbuffered ejecutando el siguiente comando en una terminal:ontape -s -L 0 -U [database]

O el siguiente, para pasarla a transactional buffered:ontape -s -L 0 -B [database] Si por el contrario, queremos pasar una base de modo transaccional a no transaccional, ejecutamos:ontape -s -L 0 -N [database] Por informacin acerca de la diferencia los logging modes transactional unbuffered y transactional buffered, ver este otro post del blog. Exportar una base de datos El comando dbexport descarga todos los datos de cada tabla de una base de datos y genera un esquema de la base de datos. Para exportar una base de dato a archivos, debemos ejecutar el siguiente comando en una terminal:dbexport [database]

Esto generar un directorio [database].exp con los datos de cada tabla, y desplegar por salida estandar (pantalla, al menos que se rediriga a un archivo) un script con la creacin de los objetos de la base. Importar una base de datos Para importar una base de datos podemos ejecutar el comando dbimport. dbimport lee el archivo de esquema generado por el comando dbexport y crea una base de datos cargando los datos de los archivos. Se puede especificar un dbspace determinado, y el logging mode de la base importada:dbimport [database] [-i directory] [-d dbspace] [-l [buffered]]

En donde: en [database].exp estn ubicados los archivos de datos a importar -d dbspace: especifica el nombre del dbspace en donde la base ser creada. Por defecto, ser rootdbs. -l: Establece que la base importada funcionar en modo unbuffered transaction logging -l buffered: Establece que la base importada funcionar en modo buffered transaction logging El parmetro [database] es la ubicacin en de los archivos a importar; el comando buscar un directorio llamado [database].exp para leer los datos de las tablas. Si se especifica, se buscar ese directorio dentro de [directory]. Se asume que existir un archivo [database].exp/[database].sql conteniendo la estructura de la base de datos (tablas, ndices, contraints, etc.). Mostrar informacin de uso de espacio fsico

Ejecutando el siguiente comando desde una terminal, obtenemos un reporte de los diferentes dbspaces y el espacio utilizado en cada uno:onstat -d

La salida es similar a la siguiente: infordb:~ # onstat -d IBM Informix Dynamic Server Version 10.00.FC7 -- On-Line -- Up 1 days 13:15:39 -- 38720 Kbytes

Dbspaces address number flags fchunk nchunks pgsize flags owner name 450c8e78 1 0x60001 1 1 2048 N B Informix rootdbs 45253450 2 0x60001 2 1 2048 N B Informix datadbs 2 active, 2047 maximum Chunks address chunk/dbs offset size free bpages flags pathname 450c9028 1 1 0 250000 58385 PO-B /opt/IBM/Informix/CHUNKS/rootdbs.000 45269db8 2 2 0 1048576 516245 PO-B /opt/IBM/Informix/CHUNKS/datadbs.000 2 active, 32766 maximum NOTE: The values in the "size" and "free" columns for DBspace chunks are displayed in terms of "pgsize" of the DBspace to which they belong. Expanded chunk capacity mode: always El tamao y el espacio libre de cada chunk (columnas size y free) estn expresadas en pginas. El tamao de cada pgina est expresada en bytes en la columna pgsize, por lo que el tamao de cada chunk est determinado por size x pgsize. Cada chunk est asociado a un dbspace, y esta asociacin se detalla en la columna chunk/dbs (el primer nmero es el id del chunk, el segundo es el id del dbspace). Este reporte tambin muestra informacin de replicacin, rutas en dispositivos fsicos, etc. Por una descripcin completa, ver la pgina de onstat -d en la Administrator's Reference de Informix. Actualizar las estadsticas Desde dbaccess u otro cliente de Informix, podemos ejecutar los siguientes comandos para actualizar las estadsticas de la base de datos: Actualizar estadsticas de todas las tablas la base de datos:update statistics

Para actualizar adems las estadsticas de distribucin de cada tabla (es ms lento):update statistics high

Para actualizar las estadsticas para una tabla:UPDATE STATISTICS [HIGH] FOR TABLE [tabla] Lock mode de las tablas

En este post escrib acerca de los lock modes de Informix. Para obtener la informacin acerca del tipo de bloqueo que tienen las tablas de una base podemos ejecutar la sigiuente consulta:SELECT tabname,locklevel FROM systables WHERE tabid>99

La columna tabname contiene el nombre de la tabla, la columna locklevel contiene 'P' si el lock mode es por pgina, o 'R' si es por tupla. Para crear una tabla con un lock mode determinado lo especificamos al ejecutar el comando CREATE TABLE:CREATE TABLE customer(customer_num serial, lname char(20)...) LOCK MODE ROW|PAGE|TABLE;

Para cambiar el lock mode de una tabla utilizamos el comando ALTER TABLE:ALTER TABLE [tabla] MODIFY LOCK MODE (PAGE|ROW|TABLE)

You might also like