Error -221 al borrar un procedure

Hola buena gente, recientemente estaba haciendo modificaciones en un procedure propio para la selección de abanderados y al querer borrar el procedure para volver a crearlo con nuevas modificaciones de repente empezó a demorar en el borrado y luego de un tiempo salió el siguiente mensaje de error:

SQL Error (-221): Cannot read sistem catalog (sysprocedures). [ISAM error -172 : ISAM error: Unexpected internal error]

Intenté hacer un update statistics for procedure, pero se queda procesando y no termina nunca, luego intenté un update statistics high, estuvo corriendo durante 4 días y no terminó…

Alguna idea de que puede ser…?

Desde ya muchas gracias.

Fijate de correr el oncheck sobre las tablas del catalogo entre las que se encuentra la sysprocedures:
oncheck -cc nombre_base

Me olvidé de mencionar que ya había corrido el oncheck, sin embargo lo volví a correr y dio un warning en syssyntable : no syssyntable record found

Y sigue tirando el mismo error al intentar hacer un drop del procedimiento…

Si sirve como dato, otros procedimientos los puedo borrar sin problemas, hasta ahora sólo he detectado dos procedimientos que arrojan el error…

Recién descubro que parece que se produce algún problema al hacer drop de un procedure que hace que no se complete, el mensaje del log es el siguiente:

09:35:57  Assert Failed: read_record: deleted rowid = 6d02, partnum = 200011
09:35:57  Informix Dynamic Server 2000 Version 9.21.TC4    
09:35:57   Who: Session(1300, dba@InformixGuarani, 3712, 0)
		Thread(1320, sqlexec, 0, 3)
		File: rsread.c Line: 2273
09:35:57   Results: Record not read
09:35:57   Action: Please notify Informix Technical Support.
09:35:57  stack trace for pid 1736 written to C:\tmp\af.910432c
09:35:57   See Also: C:\tmp\af.910432c, shmem.910432c.0
09:36:25  read_record: deleted rowid = 6d02, partnum = 200011
09:38:54  Fuzzy Checkpoint Completed:  duration was 0 seconds, 424 buffers not flushed.
09:38:54  Checkpoint loguniq 5699, logpos 0x9cfd7c

Gabriel, pudiste hacer un export de la base o el motor se cae cuando realizas el dbexport?

Si corres la siguiente consulta que da?
SELECT * FROM sysprocedures WHERE rowid = 27906; – Hexadecimal “6d02”

Hola Alejandro, no pude hacer un export de la base, ya que igual que en el intento de crear, borrar o mostrar el procedimiento termina colgando el motor, es como si le quedara residuos del procedimiento.

En el export de la base llega a un punto en el que se queda procesando el microprocesador al 25%, pero el proceso de exportación se detiene.

El select que mencionaste no da resultados.

Se podrá rehacer el catálogo y/o los índices? O quitar los restos del procedimiento de alguna manera?

Intenté borrar otro procedimiento que estaba bien, pero el drop se colgó, creo que definitivamente el catálogo tiene algún problema…

Gabriel, cuando corriste el oncheck -cc nombre_base ademas de ese warning que te dio (eso solo te informa que la tabla no tiene registros, no es un problema), te dio algun error? Terminó de realizarse?
¿Dio algun mensaje cuando valida la sysprocedures o sysprocbody?
Podes enviar la imagen de la pantalla de lo que informa el oncheck -cc … ?

Si esta rota la tabla donde registra los procedures y por esto no te djea hacer export de la base y el problema en cada procedure, lo que se puede hacer es ver de borrar lo que tiene esa base relacionado a procedures de Guarani (no los del sistema) e intentar hacer un export. Vos tenes algun otro export anterior de la base de la misma version que hayas podido importar sin problemas en otro motor informix o en el mismo con otro nombre? Te consulto esto por si tenes forma luego de recuperar esos procedures desde otro export…

Alejandro, el oncheck -cc no me dió errores, me los dió, no recuerdo bien, si el oncheck -cd o oncheck -ci o alguna combinación que encontré en el foro, el -cc nunca me dió error…

Y cuando me dió error me acuerdo que fué relacionado con el número de registros que no coincidía, pero supuestamente fueron corregidos y no aparecieron en ningún otro chequeo que realicé…

Hice el update statistics de las tablas con el script que está en el foro, lo hizo correctamente(No se colgó), pero el problema continúa…

No tengo export anteriores, pero la mayoría de los procedures(Personalizados) los tengo en archivos de texto, eso no sería problema, el tema es que si intento borrar con drop se cuelga…

En unos minutos te mando la captura de pantalla del oncheck -cc

Alejandro, te adjunto la captura…


Captura.JPG

Captura.JPG_thumb.png

Segun esa captura de mensajes no hay errores. El Warning es porque avisa que la tabla syssyntable no tiene registros (eso es solo un mensaje de advertencia)

Hola Gabriel

Como el catalogo tiene corrupcion de datos, lo mejor es arrancar desde cero con una base nueva, inclusive si pudieras crear la instancia Informix de cero es lo mas recomendable. Y luego hacer un dbimport.

Me dijo alejandro que no podes hacer un dbexport. No sera posible que hagas unload de todas las tablas mediante un script ?. Probaste de hacer un dbschema que baje todo menos stored procedures ?. Los stored procedures, son parte del codigo del guarani, asi que supongo que Ale tiene alguna forma de recuperarlos. El asunto es poder salvar los datos de las tablas, los procedures se consiguen de alguna manera. O tienen customizaciones ?

Yo sugiero poner el foco en encontrar una forma de sacar los datos de la base y como volver a restaurarlos

saludos
Ignacio

Hola Gabriel,

Podrias abrir un GDS y subir un ontape -s tomado con la base en modo off line ?. ASi yo lo restauro local e intento hacer un export de la base

saludos
Ignacio

Gabriel:

Esa es una base de producción?? Nunca hicieron un export de la misma?

Yo hace poquito tuve un problema parecido, se había dañado las SYSTABLES y no me dejaba hacer ni el DROP de la base.

La solución fue tomar un import anterior (hacemos un export todos los días a las 3 de la mañana, en forma automática) e importarla en otro Dbspace, con un nombre distinto. Ahora estamos armando otro servidor y la pasaremos allí cuando esté armado, y finalmente volveremos a reinstalar el Informix en el motor que quedó dañado.

Espero que puedas tener manera de recuperar los datos … Y/o que Ignacio te pueda ayudar haciendo un export.

Saludos

Gustavo

Hola Ignacio, efectivamente no me deja hacer un dbexport, cuando llega a los procedimientos con problemas se cuelga el export. Ahora encontré una solución temporal para continuar con la tarea que estaba realizando, lo que hice fue crear los procedimientos con nombres distintos y no tuve problemas, pero igualmente quiero corregir los problemas de la base(pensando en la migración a la versión 3), resulta que consultando a Alejandro Guerra me pasó unas consultas para buscar los procedimientos por id, pero no hay rastros de los procedimientos en las tablas relacionadas, evidentemente el problema está en el catálogo.

Tengo listo el ontape, pero no he hecho nunca un GDS, me indicarías como hacerlo?

Gracias.

¡Buen día Gabriel!:
Las personas de rectorado que cuentan con acceso para cargar de GDS son Guillermo Calleja, Eugenia Castillo, Fernando Martinez y Andrea Puebla; por favor contactate con ellos o pedile al Responsable del proyecto que gestione para vos el permiso de generación de GDS.
¡Saludos!

Hola Chicos y Chicas ya tengo posibilidad de cargar GDS, pero la limitante de tamaño de adjuntos me complica para subir el backup son casi 400 mb, lo parto en volúmenes o dónde puedo subirlo para que le llegue a Ignacio?

Gabriel:

Lo deberías poder subir en el repositorio personal tuyo, en la cuenta de Comunidad, pero lo tenés que subir comprimido.

Saludos

Gustavo

Hola Gustavo, si comprimido pesa 73mb pero el límite del GDS es de 5mb, el repositorio personal no lo encuentro, en la opción de repositorios sólo tengo buscador y navegador de archivos.

Saludos.

Mmmm … quizás debas pedir que te lo habiliten … yo tengo 3 opciones: buscador de archivos, navegador de archivos. y repositorio personal, donde en algún momento hube de subir exports por algún problema que tuve.

Te deberías comunicar con alguien del SIU, o quizás solo tengan repositorio personal los técnicos de Rectorado, como menciona Emilse que solo ellos tenían permisos para el GDS.

Saludos

Gustavo

Hola Ignacio, ya tengo en mi repositorio personal el archivo con el ontape, cómo te lo hago llegar?

Saludos.
Gabriel.-