Importar Base de Datos Informix

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?

1 respuesta

Respuesta
1
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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas