no estoy pudiendo efectuar un dbexport ya que me sale error por inconsistencias en tablas sys. Me decía Alejandro que en la UNR tuvieron un problema similar y utilizaron una aplicación de terceros para efectuar el backup.
Yo por ahora lo que estoy haciendo es lo siguiente, genero una consulta que su resultado a su vez despues la ejecuto para obtener los archivos con los mismos nombres con los que lo exporta el dbexport. Pero realmente es muy tedioso actualizar el archivo sql (tampoco me funciona el dbschema).
select 'UNLOAD TO ‘’ || tabname[1,5] || lpad(tabid,5,‘0’) || ‘.unl’ DELIMITER ‘|’ SELECT * FROM ’ || tabname || '; ’ from systables where tabid >= 100 and tabtype = ‘T’
Que errores te da (tanto el dbexport como el dbschema)? Seguro que es muy tedioso … Hay que ver si no es más fácil encontrar y arreglar las inconsistencias en las systables que hacer lo que estás haciendo … Ya que después también deberás “importar” o reconstruir la base “a pedal …”.
Hola Gustavo, si, era una base de producción. El problema era de corrupción a nivel físico de los chunks. Y no era el disco porque esta en una maquina virtual y la máquina funcionaba lo más bien.
El dbschema y el dbexport tiraba el error:
-105 BAD ISAM FILE FORMAT
Y luego de hacer onchecks el error estaba a nivel de páginas.
El dbexport llegaba hasta los usuarios (es decir, ni siquiera tiraba los stored procedures). Y el dbschema no arrancaba directamente. Las que estaban rotas era (a mi entender) las tablas sys*
Antes de seguir intentando (tenía que trabajar por las noches ya que el sistema en “modo consulta” igualmente funcionaba) lo que hice fue exportar a pedal efectuando el volcado de datos como mencioné en el primer mensaje y tenía un archivo .sql intacto de un backup muy reciente. Cambiamos de equipo y ya está en funcionamiento.
Por otro lado estaba mal configurados tanto TAPEDEV como LTAPEDEV que estaban apuntando a /dev/null, así que por esa vía tampoco pude.
Una conjunción de problemas. Solamente perdí los últimos registros de una tabla log. Hacías un select * from log_… y me daba el error: Could not do a physical-order read to fetch next row.
Claramente había un problema en en uno de los chunks del dbspace de los datos
Bueno, Juan, me alegro que hayas podido salir adelante.
Està muy buena esa sentencia que utilizaste, no se me hubiera ocurrido. Yo hubiera recurrido al ùltimo export bueno y hubiera dado por perdidos los datos posteriores. O si puedo recuperar los datos hubiera tomado los procedures, triggers y vistas de cualquier export anterior.
De todas maneras, yo tengo automatizados los export para que se realicen todos los dìas en las bases de producción. Y además tengo automatizados el backup binario (archive) de nivel 0, 1 y 2. Yo en general trabajo en Windows, no sé vos.
Si no tenés automatizados los backup, sugiero que lo hagas. Y hay que monitorear cada tanto que se hace bien y que se puede recuperar la base a partir de cualquiera de ellos.
Lamentablemente uno en general aprende más de sus errores. Lo que es bueno a veces es aprender de los errores / problemas de los demás.
supongamos que hago los backups como rezan los manuales (de nivel 0, 1 y 2), como se recuperan? con solo guardar esos “tapes” me alcanza? si tienen un resumen o “recetario” bienvenido.
Se recuperan con el comando ontape (fijate los parámetros que admite) y además de los backups de nivel 0, 1 y 2 tenés que tener el backup de los logical logs (ontape -a , ontape -c si es continuo).
Para recuperarlo tenés que tener otra PC con hardware similar y con el msimo servidor Informix instalado (conviene guardar también el ONCONFIG).
Quizás alguien más pueda sumar su experiencia, si alguna vez recupero del archive.
Como siempre, si se puede conviene cada tanto “simular” la recuperación para verificar que todo funcione adecuadamente. Para lo cual hay que tener la PC de backup disponible, y si es posible con Informix instalado (un clon del servidor sería).
La ventaja es que no recuperas 1 sola base sino todas las que tengas, y aparte si todo sale bien recuperás hasta la última transacción válida (o buena).