Error en dbimport

Buenas tardes:

Estoy intentando hacer el upgrade de versión, pero para ello y antes de correr los scripts estoy intentando armar un nuevo ambiente. Para ello hice un dbexport y luego un dbimport con otro nombre. Al hacerlo, me levanta los triggers, procedures, etc. pero no las tablas ni las vistas… alguna idea que puede ser?

Muchas gracias.

José Luis
IFTS6 - GCBA

Hola José Luis, fijate en el archivo dbimport.out del directorio. Las últimas sentencias son las de update statistics luego debe decir “dbimport complete.”. Por supuesto sin ningún error.
Si editaste los archivos, deben tener cuidado con los editores que usan. Si pueden sacar de producción el sistema un tiempo, pueden intentar lo siguiente:
Hacer un export
Renombrar la base de datos de producción
Importar el export anterior sin modificaciones.

Saludos

Gracias Damian!!
Mirando el dbimport.out, no me dió mucha info, pues efectivamente finalizó sin error con dbimport complete. (Te lo adjunto por las dudas)…
Con relación a la opción que me comentás de renombrar la base productiva para levantar la otra en su lugar. Como le cambiás el nombre? con dbaccess?
Saludos.


Hola José Luis, primero que nada fijate si hay espacio en el dbspace en donde intentás importar:

onstat -d

Los tamaños están en páginas (2kb para linux 4 kb para windows)
El nombre lo podes cambiar con cualquier editor de sql (incluido el dbaccess) conectado a otra base de datos y ejecutando:

rename database nombre_original to nombre_nuevo

El dbimport no terminó, ya que faltan las partes de las tablas, índices y estadísticas.

Damian:

Te cuento el resultado… renombré la base e intenté hacer el dbimport sin alterar nada sobre lo que bajé, con el mismo resultado. No puedo visualizar las bases ni las vistas.
El dbspace es suficiente ya que sobre 500000 quedaron luego de este dbimport 377067, teniendo además 2 de 500000 con 499997 libres en ambos casos…

Bueno, malas noticias entonces. Vas a tener editar el archivo .sql que está adentro del directorio del dbexport. Separalo en dos partes. En una (que quede con el mismo nombre original) dejá la parte de creación y carga de datos en las tablas. En la otra parte el resto de las definiciones de sp, triggers, indices, constraints y demas.
Quedaría, en el archivo original:

{ DATABASE nombre_db  delimiter | }

grant dba to "dba";
.....
.....
{ TABLE "dba".acc_acciones row size = 50 number of columns = 2 index size = 19 }
{ unload file name = acc_a00100.unl number of rows = 19 }

create table "dba".acc_acciones
  (
    accion varchar(8) not null ,
    descripcion varchar(40) not null ,
    primary key (accion)  constraint "dba".xpkacc_acciones
  )  extent size 16 next size 16 lock mode page;
revoke all on "dba".acc_acciones from "public";
....
....
grant select on "dba".sga_sedes_hist_cmb to "public" as "dba";
grant update on "dba".sga_sedes_hist_cmb to "public" as "dba";
........
.....

--hasta que empieze la creación de vistas.

En el otro archivo, el resto: sp, triggers, indices, constraints, vistas, estadísticas, etc.

Luego hace el dbimport como lo venís haciendo. Cuando finalice, en un editor de sql abrí el archivo nuevo y ejecutalo.

Saludos

Hola Jose Luis

A la importación la hicistes con el usuario dba?
Me resulta raro que se hayan creado los triggers sin las tablas.
Puede ser un problema de permisos.

Emilio

Emilio:

Si, el usuario es dba y también me parece muy raro, pues no hace mucho tiempo había hecho algo similar para tener una base de homologación para hacer unas pruebas y no había tenido ningún problema…

ahora, las tablas no existen?
select * from systables

o no tienen datos?

update statistics primero y luego con la consulta anterior fijate nrows

Emilio

Josè y Emilio:

A mi me ha pasado varias veces lo que cuenta Josè. Nunca le encontrè una buena explicación, máxime teniendo en cuenta que volviendo a intentar el import se importaba bien.En general mi solución fue la que comenta Damiàn.

Cada vez que tengo dificultad con un import, hago lo explicado por Damián que es una vieja receta. Después del import solo queda una base con los datos (tablas) y luego se completa con el resto via SQLEDitor o programa similar.

Josè: si tenès algùn otro problema ya tenès mi TE. Si es necesario, mandame el .sql del export y te lo devuelvo dividido como dice Damiàn, para hacer el import de tablas y luego el resto.

Saludos

Gustavo

GRACIAS A TODOS!!

Finalmente al partir el sql en 2 logré levantar esta nueva instancia que necesitaba crear…
Muchas gracias por la paciencia y la data.

Saludos.
José Luis

Hola a todos!!!
Hicimos un dbexport de una base y queremos levantar con el dbimport en otro servidor, que es virtual, tiene el mismo sist. operativo, y cuando editamos el dbimport.out no figura en la última linea que se completo.

         Que puede estar fallando??, o como se puede trasladar la exportación hecha en otro servidor y poder levantarlo en el virtual? el dbexport salio bien.

                   Gracias

Hola Erica,
El dbexport termino OK ?.
Por lo que decis entiendo que el dbimport cancela por la mitad. es asi ?. En ese caso, si tenes el dbexport.out y el dbimport.out por la mitad, fijate la ultima linea del dbimport.out cual es, y buscala en el dbexport.out, ahi vas a encontrar cual fue el comando SQL que no pudo completar.
Si te da algun mensaje de error especifico, por favor postealo y tambien postea un onstat -d para ver si el espacio en disco es suficiente.
saludos!
Ignacio

Erica:

Hiciste lo que recomendaba Damián, de dividir el archivo .sql en 2?

Me parece raro si hiciste eso que no te funcione. Si no lo hiciste, hacelo y vemos que pasa. En el import generas todas las tablas con sus datos y con el sql del resto generás SP, triggers y vistas.

Saludos

Gustavo