dbimport: Import data is corrupted!

Hola!
Tengo problemas con el dbimport.
Todos los dias hago backup de la base de datos y tengo una base de datos de prueba que la actualizo cada 15 dias aprox. y para ello hago un dbimport.
Esta vez me da error y no puedo encontrar la solucion. Lo hice de mil maneras y no se que mas hacer.
Empieza a hacer el dbimport y corta y dice eso . (–Import data is corrupted! )
Alguien tiene la solucion???
Les paso el onstat -d.
GRACIAS!


Pilar, edita el archivo .sql que genera el dbexport, y sacale todo lo que tiene que ver con stored procedures, triggers y vistas.
Luego intenta importar nuevamente la base.
Otra cosa que podes ver es la base que estas exportando. Verificar si estan bien los indices, tablespaces, etc. Corre el comando oncheck con los diferentes parámetros para ver si hay algo corrupto en la base.

Hola Alejandro!
Si esta editado eso siempre lo hago.
Voy a ver con el oncheck que puedo hacer y te escribo.
Muchas gracias!

podes mandar el dbimport.out que te deja al intentar importar la base para ver donde esta el error?

Aca te mando el dbimport.out
Gracias!


Tratándose de pasar una base a un servidor de pruebas y de una tabla de logs, ponele, en el sql número de filas =0 y borrale el contenido al archivo.

Luego de ello fijate porque está saliendo eso.
Tomá otros backups a ver si pasa lo mismo.

Emilio

Hola!
Ya tome otros backup y me pasa lo mismo por eso me desoriento.
Si no te entendi mal borre el contenido del archivo .sql e hice el dbimport , no dio error ni nada
pero claro creo la base de prueba sin nada y tampoco puedo conectarme, me fije y el dbimport.out salio vacio.

Hola!
Creo saber lo que es, me di cuenta que el error lo da en la tabla log_causa_perd_reg y esta tabla esta involucrada en lo que modifique dias atras.
La modificacion fue en sp_regdiscontroles, escribi al foro para que me ayudaran.
Han quedado mal los datos entre log_causa_perd_reg / sga_causa_perd_reg.
Me di cuenta que eso porque busque un backup anterior a esa modificacion y resulto!!! :smiley:
Estoy viendo cuales son los datos corruptos y asi poder hacer un dbimport de un backup mas actualizado.

Gracias y disculpen, deberia haber esperado en procesar mejor la info, pero igual espero que les sirva para no cometer el mismo error.
Luego les paso bien cual es la modificacion en la base.

no me entendistes. Por ahi la explicación no fue buena.

en el archivo sql vos tenes

{ unload file name = log_d00263.unl number of rows = 2 }

o parecido.

tenes que poner number of rows = 0
luego agarrar el archivo log_d00263 y borrarle el contenido.

Por otro lado no hay ningun control entre los datos de una tabla y su tabla de logs.
El error puede estar en algun dato con un caracter erroneo.

Emilio

Hola pilar la opción de emilio esta bien borra el contenido del archivo log_c00343.unl
y cambia en la linea 8713 del archivo sql siu_guarani_fchpp.sql
de

{ unload file name = log_c00343.unl number of rows = 12 }

a

{ unload file name = log_c00343.unl number of rows = 0 }

es probable que en tu personalización utilices algún editor sql con un mapa de caracteres diferente al que utiliza el motor como utf8. eso suele suceder si utilizas aqua datastudio en linux. Si queres antes de probar borrar todo el archivo log_c00343.unl mira si en algún registro hay algún carácter raro (acentos o cosas por el estilo) y cámbialo por otro mas común.

Hola!
Emilio, no te habia entendido, disculpa.
Hice lo que me dijo Carlos y vuelve a poner en la misma linea Import data is corrupted pero me pregunta si quiero o no abort le pongo que no y sigue sin problemas.
Voy a verificar lo de los caracteres asi puedo hacer backup sin problemas, despues vuelvo a comentarles que paso.
Muchas gracias!!!
Saludos

Este es el problema exacto:
C:\Program Files\informix>oncheck -cI siu_guarani_fch:dba.log_causa_perd_reg

WARNING: index check requires a s-lock on tables whose lock level is page.

Validating indexes for siu_guarani_fch:dba.log_causa_perd_reg…
Index 343_1489
Index fragment in DBspace datos
ERROR:No data row exists for btree item.
Btree item contains fragid 0x400215 rowid 0x103, key value:
Key: 3:
Please Drop and ReCreate Index 343_1489 for siu_guarani_fch:dba.log_causa_perd_reg.

No lo he podido solucionar, si bien he podido hacer un dbimport modificando el archivo sql y el archivo log, la idea es solucionar el problema sin tener que modificar tanto.
Intente eliminar el index para volverlo a crear pero no pude.
Sigo trabajando en esto… espero respuesta :slight_smile:

GRACIAS!
Saludos
Saludo!

Pilar
El unico indice que tiene la tabla log_causa_perd_reg es el primary key hace lo siguiente

ALTER TABLE log_causa_perd_reg DROP CONSTRAINT u343_1489;

luego

ALTER TABLE log_causa_perd_reg ADD CONSTRAINT PRIMARY KEY(logid) ;

Hola

Podrías mandar el archivo log_c00343.unl cuyos datos están corruptos?

Emilio

Hola,
Hice lo siguiente:
ALTER TABLE log_causa_perd_reg DROP CONSTRAINT u343_1489;
ALTER TABLE log_causa_perd_reg ADD CONSTRAINT PRIMARY KEY(logid) ;
pero sigue dando:
SELECT COUNT(*) from log_causa_perd_reg;=12
select * from log_causa_perd_reg;= me muestra 2 filas.
voy a verificar haciendo un dbexport si me lo cambio, pero en este momento no lo puedo hacer ya que hay usuarios conectados.
Paso el logc_00343


probá con
update statistics high for table log_causa_perd_reg

a ver que ocurre.

Nada, eso me lo dijo Carlos pero no me modifico nada.

Hice el oncheck nuevamente y ya no tengo ese error; aunque el select sigue dando 12 :S.
En breve hago el dbexport y verifico si puedo hacer el dbimport sin modificar las rows.

GRACIAS!

Hicistes el update statistics luego de recrear el índice?
Si no hay que “borrar” la tabla y cargarla de vuelta.

Emilio

pilar hisiste un update statistics de esa tabla

update statistics high for table log_causa_perd_reg 

si eso no funciona de ultima borra la tabla completa y volvela a crear del catalogo de la versión eso debería solucionar tu problema de todas formas lo único que hay en esa tabla es información de auditoria no de gestión.