Para respaldar una base de datos en informix, tenemos lo que posteamos en otro post (http://mistrucosinformaticos.blogspot.com/2010/02/importar-y-exportar-base-en-informix.html), pero también tenemos, y es más fácil, dbexport y dbimport.
Par exportar la base de datos, ejecutamos:
dbexport –d nombre_base_de_datos
ejemplo: dbexport –d mibase
Esto nos genera una carpeta mibase.exp, con muchos .unl, y un mibase.sql
Para importar este respaldo, lo que hacemos es nos paramos donde esta la carpeta .exp, por ejemplo si ejecutamos el comando anterior en /home/informix, nos genera una carpeta /home/informix/mibase.exp, y para ejecutar el siguiente comando nos paramos en /home/informix.
Entonces para importar, ejecutamos lo siguiente
dbimport mibase –d datosdbs (si queremos levantar a datosdbs, sino al que sea).
Este sería el caso en que todo anda bien, ahora vamos a poner 2 ejemplo en los cuales podemos tener algún problema.
El primer caso seria que la base que respaldo se llame mibase, y la base donde tengo que levantarla se llama migase2, entonces para poder importarla tenemos que hacer 2 cosas.
La primera es renombrar la carpete, en el ejemplo seria mibaes a mibase2.
mv mibase.exp mibase2.exp
Y lo siguiente es entrar en la carpeta mibase2.exp, encontrar el archivo mibase.sql, editarlo y en el primer renglón donde dice mibase, cambiarlo a migase2, y también renombrar el archivo mibase.sql a migase2.sql.
Luego de esto solo se debe de importar con dbimport la base y listo.
Ahora el segundo inconveniente, es si tenemos la fecha americana en un informix (ejemplo 12/31/2010) o la fecha española (ejemplo 31/12/2039). Si tenemos diferencia en el servidor donde hacemos el backup y el servidor donde lo levantamos, cuando ejecutemos el dbimport nos dará un error y no nos levantara la base de datos entera.
Para detectar que debemos hacer, debemos editar alguno de los unl, y ver en que formato esta la fecha, y dependiendo del formato agregar los siguiente:
Fecha inglesa: export DBDATE=MDY4/
Fecha española: export DBDATE=DMY4/
Luego de esto se corre el dbimport, y listo.
9 comentarios:
buenas.. una consulta: estoy intentando realizar un dbimport pero me sale el siguiente mensaje de error:
can not write data to disk and tape at the same time
que puedo hacer..
cortarte las venas con una galletita maria
JA. JA.
José, ese error es de permisos, no te deja escribir en la cinta donde estas intentando realizar la copia
Es probable que después de 4 años la respuesta ya se la sude un poco. Pero buen intento no obstante.
Hola,
yo quiero hacer un dbexpor y obtengo el error
ERROR: Could not initialize the security subsystem. Please ensure that this account has the necessary privileges and ensure INFORMIXSERVER value exists in the registry and environment.
Pudiste resolverlo?
Si te sale ese error y estas con Windows solo debes abrir el terminal como adminsitrador, si esta en linux verifica que este con el usuario informix
Lo interesante es que ese dbimport puede llevar la opcion -l buffered para que la base de datos a crear sea transaccional
Publicar un comentario