dbexport/dbimport

Hola Gente,

                 Estoy intentando migrar las bases de datos desde un server de desarrollo a uno que seria de testeo, con las herramientas dbexport y dbimport en windows 2003. Actualmente no me tira ningun error ninguna de las dos herramientas, y aparentemente hacen el trabajo, pero cuando reviso las bases en el servidor de testeo, esta no tiene ninguna tabla creada, y obviamente ningun dato tampoco, los comandos que utilizo son:

DBEXPORT
dbexport psiu_guarani -q -ss -o c:\IFMXBKUP\exports

DBIMPORT
dbimport -q -c -d psiu_guarani -i c:\IFMXBKUP\exports psiu_guarani -l

                Si esto no es posible, por favor les pido me comenten que otra herramienta puedo usar, que no sea la tipica copia de carpetas.

Desde ya muchas gracias.

Los informix son de la misma version? el Archivo dbimport.out y dbeport.out que genera el dbexport y debimport respectivamente, tienen todo el catálogo de la base (tablas, triggers, procedures, indices, vistas, permisos) ?

Proba con:
DBEXPORT
dbexport psiu_guarani -o c:\IFMXBKUP\exports

DBIMPORT
dbimport - psiu_guarani -i c:\IFMXBKUP\exports psiu_guarani

Luego en un paso posterior cambiarle el modo de logging (lo msmo que la opcion -l en el dbimport):
ontape -s -U psiu_guarani

A mi me pasó algunas veces, nunca supe bien que fue.

De esas pocas veces, algunas lo solucioné importando las tablas solas y después generando el resto (procedures, vistas, triggers y foreign keys).

Para hacer esto hay que dividir el archivo nombredebase.sql, dejando las sentencias de creación de la base y permisos y creación de las tablas por un lado, y pasando todop el resto a otro archivo que se ejecuta después con SQLEditor.

Otras veces se solucionó simplemente importando con una sintaxis distinta. Me llama la atención que en el import no le especifiques el dbspace donde se alojará la base. Tiene el mismo nombre? Aunque sea el mismo, yo siempre le pongo el parámetro -d nombrede dbspace.

Saludos

Gustavo

Pudiste importar la base?

Hola Alejandro,

         No he podido importar la base, pero al menos ahora se que esta pasando,, por alguna razon el dbimport se corta en plena importacion, en el mismo lugar, y lo ultimo que se ve siempre en el log:

CREATE PROCEDURE “dba”.sp_u_temas_3w(pUA LIKE sga_unidades_acad.unidad_academica,
pTema LIKE sga_temas_3w.tema,
pNombre LIKE sga_temas_3w.nombre,
pActivo LIKE sga_temas_3w.activo,
pColor_0 LIKE sga_temas_3w.color_0,
pColor_1 LIKE sga_temas_3w.color_1,
pColor_2 LIKE sga_temas_3w.color_2,

Los dos servers tanto origen como destino tienen la misma version de informix: Informix Dynamic Server 2000 Version 9.21.TC4
El dbexport si me muestra todos los datos del catalogo y termina bien, bueno al menos dice: dbexport completed

Alguna idea???

Saludos.

Lo que te expliqué con anterioridad. Es la mejor solución. Siempre funciona.

Dividí el archivo nombredelabase.sql e importá solo las tablas con el comando import. Después con el SQLEditor ejecutas el resto. Y después lo que te dijo Ale para ponerla en modo unbuffered.

Quizás Ale recuerde que había algún problema con un texto que había que eliminar del export, pero no sé si lo soluciona en todos los casos.

Saludos

Gustavo

Hola a todos,

                 De antemano les agradezco la mano que nos dieron, pero ya encontramos con la ayuda de Igancio en el curso de Informix que realizamos el 26/04 pasado, resulta que habia una comilla en los comentarios que causaba que el script de importacion aborte sin razon, el string a buscar y borrar es:

– var’s para el manejo de excepciones

                 En mi script encontro 72 ocurrencias.

Gracias.

Gcalleja:

Exactamente ese es el string que hace 1 año atrás te mencioné (no recordaba cual era) y que apelaba a la memoria de Ale Delú.

De todas maneras si el problema era ese, aplicando lo que yo te indicaba de dividir el SQL en datos por un lado y el resto por otro, te hubiera funcionado, ya que una de las cosas que solucionaba es justamente ese problema.

Saludos

Gustavo

Es como un “auto-ataque” de inyección de SQL. El compilador de Informix se “comió” ese aspecto.

Eran dos cosas que debian sacarse del sql:

  1. La comilla simple en ese texto – var’s …
    Esto esta en varios stored procedures.

  2. En el procedure sp_char_to_bin esta comentado las lineas

	
        -- caracter 128
	-- IF pchar = '' THEN 
	-- 	RETURN '10000000';
	-- END IF;

Aunque esten comentadas, el caracter que representa el ascii 128 da error cuando el dimport intenta crear este stored procedure. Hay que sacar directamente esas lineas del procedure.