He visto el post que pusiste sobre la exportación de DB con informix y me ha funcionado perfectamente, el problema lo tengo cuando intento importar la BD. El error que me da es: 330 -Cannot create or rename database 100 -ISAM error:duplicate value for a record with unique key. Paro el servicio " Informix Dynamic Server" (para poder crear la DB) y me sale el siguiente Error:
908 -Attempt to connect to database server (DATABASE)failed. 61- Connection refused. ¿Estoy haciendo algo mal?. Sigo el procedimiento que indicaste. ¿Puedo importar la DB a otra ubicación, para después poderla copiar a pelo?
La verdad no me acuerdo del post que mencionas pero dame más detalles y te puedo ayudar :). Al parecer suena a que el error es algún parámetro que falta para que pise datos que ya han sido exportados previamente :) De nuevo pásame más detalles del procedimiento que estas haciendo así te puedo ayudar Éxitos Kaos
Hola Kaos: Supongo que no te acuerdas de este post porque es del 2002, dice así: ----------------------------------------------------------------------------------------------------------------- Hola amiga para poder realizar tu cometido necesitas ir a la pc con el informix y ejecutar el COMANDO dbexport que Exporta la base de datos a un archivo de texto. Aquí la sintaxis dbexport [ -c ] [ -q ] database [ -o directory-path | -t device -b blksize -s tapesize [ -f pathname ] ] dbexport es el comando. -c Que siga si hay errores -q -que no muestre detalles del export en la consola database -Nombre de la bd que vas exportar -O Para que el archivo vaya a este dir \tu_directorio -t Para guardar el export en cinta -b blksize specifies the tape block size in kilobytes. -s tapesize specifies the capacity of one tape reel. -f pathname tells the program to write data definition statements to the file pathname and not to the tape. Notas 1. Debes entrar como DBA 2. La base de datos se lockea de modo exclusivo así que conviene que no trabaje nadie mientras 3. Ese comando escribe un archivo dbexport.out con el detalle de todo el export. Es lo mismo que verías en la consola salvo que le pongas la opción -q 5. The dbexport escribe muchos archivos con datos de la bd. 6. Si llegaras a marcar la -t option, hay que especificar tambien tape device, the block size, and the volume capacity. 7. Cuando NO pones la -t option, el destino del export es un directory en el disco con el nombre database.exp. Si el directorio no existe el programa lo crea solo. 8. Por defecto te tira la bd en el directorio actual. 9. Cuando el destino del export es el disco, el archivo conteniendo los scripts de definición de datos y otros comandos para el dbimport es escrito al archivo database.sql en el directorio database.exp En tu caso puedes usar simplemente (-c ignora errores, tu_bd es el nombre de tu base de datos) Osea: dbexport -c tu_bd (ESTO TE CREARE TU DIR TU_BD.EXP CON TODOS LOS FILES) OK AHORA Para restablecer la base de datos EN TU SERVIDOR DESTINO necesitas también con el informix tirar el comando dbimport desde la consola(que seria lo inverso) COMANDO dbimport crea una base de datos a partir de un archivo ascii Syntax dbimport [-c] [-q] database [-i directory-path |-t device -b blksize -s tapesize [-f pathname] ] [-d dbspace] [-l [ logpath | buffered] ] [-ansi] Detalles -c de nuevo que siga si hay errores a menos que sea algo grave -q anula detalles de import en la salida estándar (consola) database es el nombre de la base de datos que vas a importar -i path a un directorio de entrada -t device specifies input from a particular tape device. -b blksize specifies the tape block size in Kbytes. -s tapesize specifies the capacity of one tape reel. -f pathname tells the program to read data definition statements from the file pathname and not from the tape. -d dbspace when importing to INFORMIX-OnLine only, specifies the dbspace where the new database is to go. -l specifies that the imported database is to use transaction logging. logpath when importing to the standard database engine only, specifies the pathname of the transaction log file. buffered when importing to INFORMIX-OnLine only, specifies buffered or unbuffered logging (unbuffered is the default). -ansi tells the program to create the new database as MODE ANSI. The dbimport Utility Notas 1. Siempre se crea un archivo dbimport.out en el directorio actual con detalles del import La persona que realiza el dbimport se le asigna permiso de dba 5. Use the -l option to establish transaction logging for the imported database. This option is equivalent to the WITH LOG IN clause of the CREATE DATABASE statement. A database created as MODE ANSI requires transaction logging. In this situation, you must include the -l option. 6. The dbimport utility reads multiple files containing database data from either disk or tape. Use the -t option to specify the source as tape; the default is disk. When you include the -t option, you must also specify the tape device, blocksize and volume capacity. 7. When you include the -t option, dbimport reads the data definition statements and other dbimport commands from the tape. Use the -f pathname option to instruct the program to read the database.sql file in pathname (instead of the tape) for the data definition statements and other commands. To use the -f option you must have also used it when you executed the dbexport program. 8. If you do not specify the -t option, the source of the database data is a disk directory with the name database.exp. The dbimport program looks for this directory in the current working directory, or on the path specified with the -i option. In either case, the program takes data definition and other commands from the file database.sql in the directory database.exp. (This is why the name database must be the same as was given to dbexport.) Example The following command imports the stores database from a tape with a blocksize of 16 Kbytes and capacity of 24,000 Kbytes. The file of data definition statements and other import commands was put in stores.imp in the /tmp directory when dbexport was run. dbimport -c stores -t /dev/rmt0 -b 16 -s 24000 -f /tmp/stores.imp Tu debes usar por ejemplo este comando y parámetros dbimport -c tu_bd -i /tu_directorio_donde_esta_el_export SI NO ENTIENDES EL INGLES NO TE PREOCUPES TE HE TRADUCIDO LO BÁSICO Y NECESARIO PARA QUE UTILICES. Si quieres ampliar el comando dbimport y dbexport lo puedes encontrar en la página web http://publibfi.boulder.ibm.com/epubs/pdf/7044.pdf O Simplemente pegarme un grito. Bueno amiga espero que esta info sea de tu ayuda. Estoy muy satisfecho de poder ayudarte. Solo te pido que consideres mi esfuerzo. Éxitos Kaos --------------------------------------------------------------------------------------------------------------- Este es el procedimiento que sigo para generar el fichro de exportación: set INFORMIXDIR=E:\INFORMIX set INFORMIXSERVER=ol_mastin set ONCONFIG=ONCONFIG.ol_mastin set PATH=E:\INFORMIX\bin;%PATH%; set INFORMIXSQLHOST=\\SREGISTRO set DBTEMP=E:\INFORMIX\infxtmp set CLIENT:LOCAL=EN_US.CP1252 set DB_LOCAL=EN_US.CP1252 set SERVER_LOCAL=EN_US.CP1252 set DBLANG=EN_US.CP1252 mode con codepage select=1252 C: del c:\copia\soloreg.exp\*.* /q rmdir c:\copia\soloreg.exp del c:\copia\dbexport.exp cd c:\copia dbexport soloreg Esto me genera una carpeta " soloreg.exp" y un fichero "dbexport.out", que con tiene todo la base de datos "soloreg".( Esto me funciona bien ). EL resultado que pretendo obtener es la restauración de la base de datos "soloreg", no la creación de la base de datos (¿o es que tengo primero que borrar la base de datos para poderla importar después? ¿Cómo se hace?) Para ello ejecuto el siguiente comando: c: cd copia c:\COPIA\DBIMPORT SOLOREG Y a partir de aquí es donde me he quedado. Un saludo y espero yu respuesta.
Un gusto poder ayudarte de nuevo. Conéctate a la base de datos y borra todo el schema, o crea una base de datos nueva. Luego utiliza esta linea: dbimport -c tu_bd -i /tu_directorio_donde_esta_el_export trata de trabajarla a mano sin scripts ejecutando linea por linea. Luego me cuentas como te fue. Exitso Kaos
Hoa kaos: Ha sido más fácil de lo que yo pensaba. He entrado en la consola de administración de informix, he renombrado la base de datos"soloreg" y he ejecutado dbimport soloreg.Vuala ya ha funcionado. Un saludo y gracias por tu dedicación.