Error: dbimport en Informix 12.10

Hola! Estoy migrando una base de guarani de un servidor informix 9.21 en windows 2000 server a otro informix 12.10 sobre debian.

Luego de configurar el motor, archivos y parámetros se lo inicializó sin problemas. Varios inconvenientes se fueron solucionando en la medida que se presentaron, pero entiendo que no está todavia optimizado.

Ahora, el error que aparece cuando se intenta importar una BD es el siguiente :
“458 - Long transaction aborted.
12204 - RSAM error: Long transaction detected.”

Creo que es un problema de espacio, pero no encuentro donde puede estar el problema.

Paso algunos datos:
dbspaces creados:
rootdbs_dat .000 2.000.000 kb
datos_dat.000 2.000.000 kb
datos_dat.001 2.000.000 kb
datos_dat.002 2.000.000 kb
temp1_dat.000 300.000 kb
temporal_dat.000 500.000 kb

Adjunto el archivo onconfig del servidor.
Características del servidor, HP DL160 Gen9 Intel Xeon, 32 Gb de RAM, 2 discos de 1Tb

Desde ya muchas gracias.
Saludos!
Daniela Rolon
FCEQyN - UNaM


onconfig.ol_exactas.txt (83.9 KB)

Hola Daniela,

Tenes un error por long transaction. Hay 2 posibles soluciones

  1. achicar la transaccion. eso es del lado de la aplicacion. QUizas sea posible intercalar algun commit dentro de la transaccion. o partirla en varias operaciones separadas. de esa manera, al ser mas chica la transaccion no te dara el error. SI es un dbimport, eso no aplica

  2. Tenes que agregarle mas logs logicos a tu instancia informix. Si haces un onstat -l te muestra cuantos logs logicos tiene. Agregar los logs es un poquito complicado. Se hace con el comando onparams. Si necesitas hacerlo y se te complica contactame que te doy un instructivo mas detallado

saludos
Ojo, no incrementes los parametros LTXHWM y LTXEHWM como solucion porque es riesgoso, Mas aun, deberias tenerlos en 40 y 50.

saludos
Ignacio

Luego de importar la base le cambiaste el modo de logging a buffered o unbuffered logging?

Ale:

No le cambió el modo de logging porque el problema es que no la pudo importar. Como el problema es en el IMPORT, tampoco aplica lo que comenta Ignacio en el punto 1.

Si creo que debería aumentar y bastante tanto la cantidad como el tamaño de los logical logs, y los debería generar en un dbspace separado, no en el rootdbspace.

Otra cosa que sería bueno es aumentar los valores de:

SHMVIRTSIZE - The initial size, in KB, of the virtual segment of shared memory

SHMADD - The size, in KB, of additional virtual shared memory segments

sobre todo teniendo en cuenta que tiene un CPU con 32 GB de RAM!!

Los valores que tiene son:
SHMVIRTSIZE 53248
SHMADD 8192

Tranquilamente los puede multiplicar por 4 y quizás mucho más.

Pero para mi lo principal en este caso son los logical logs.

Saludos

Gustavo

Buen dia!! …muchas gracias por los aportes!!

Ignacio, comenzaria a probar aplicando la opcion 2 de tu respuesta: “… agregarle mas logs logicos a tu instancia informix. Se hace con el comando onparams.”
Quisiera hacerlo, y no se como. Me podrias enviar el instructivo que mencionaste?

Saludos,
Daniela Rolon
FCEQyN - UNaM

Daniela mira estemensaje
La opcion a usar es -a
Fijate que en el dbspace donde lo agregues tengas espacio libre.

Aunque la version 12 de informix agrega logical logs automaticamente a media que los necesita, a diferencia de la version 9.x

Hola
Aqui te dejo un documento para agregar logs logicos a la instancia informix
saludos
Ignacio


agregado_de_logs.pdf (958 KB)

Buen dia! …con el instructivo enviado pude agregar los logical log al dbspaces de informix (rootdbs) e intente importar una base nuevamente.

El proceso de importacion se colgo en un momento dado, y detecte que el backup de los logical log se habia detenido tambien.
El tamaño del archivo configurado en la variable LTAPEDEV habia llegado a su limite.

Intente poner en modo quiescent el motor para modificar el valor de la variable LTAPESIZE, y ahora el motor quedo en modo Shutting Down. No puedo cambiarlo de estado. Intente con el comando onmode y con el comando shutdown.

Alguna idea de como continuar?

Muchas gracias por su ayuda.
Saludos,
Daniela
FCEQyN - UNaM

Hola Daniela,

vos estas haciendo un dbimport, y al mismo tiempo esta activo el backup de logs logicos ? me gustaria entender un poco que procesos estan activos durante el dbimport. y que error te da.

si el LTAPESIZE llega a su limite, se frena el backup de logs, como si tuvieras que cambiarle una cinta. El backup de Informix, esta orientado a hacerse en cinta, y por eso

trata de cortar con control C o cerrando la terminal el proceso de backup de logs

saludos

Hola Ignacio, si los dos procesos estaban corriendo, el dbimport y el ontape –c.

El dbimport no me dio error, quedo como tildado… no avanzo más (por más de una hora).

Casi al mismo tiempo el backup de los logs se freno pidiendo que se monte una nueva cinta.

Verifique el tamaño del archivo configurado en la variable LTAPEDEV y note que habia llegado a su límite. Por eso intente cortarlo para probar otras cosas.

En el servidor actual en produccion (v9.21), no me habia pasado nunca esta situacion. Por eso estoy un poco desorientada.

Saludos,
Daniela