Hola a todos, esta corriendo los script de actualización para pasar a la versión 2.6.5 y en una consulta se quedó ejecutando mucho tiempo, viendo el log veo el error:
Nunca volvió a levantar Informix, ahora cuando quiere arrancar tira esto:
`10:17:38 IBM Informix Dynamic Server Version 9.40.TC6
10:17:38 Who: Session(1, informix@guaranisrv.GUARANISRV, 0, 00000000)
Thread(6, main_loop(), 0, 1)
File: rspartn.c Line: 7812
10:17:38 Results: Chunk 2 is being taken OFFLINE.
10:17:38 Action: Restore chunk from archive.
10:17:38 stack trace for pid 1476 written to C:\tmp\af.3eef7f2
10:17:38 See Also: C:\tmp\af.3eef7f2
10:17:41 chunk failed sanity check
10:17:41 chunk failed sanity check
10:17:42 I/O error, Primary Chunk ‘C:\IFMXDATA\ol_guaranisrv\ol_guaranisrv_dat.000’ – Offline (sanity)
10:17:44 Assert Warning: Chunk 2 is being taken OFFLINE.
10:17:44 IBM Informix Dynamic Server Version 9.40.TC6
10:17:44 Who: Session(1, informix@guaranisrv.GUARANISRV, 0, 00000000)
Thread(6, main_loop(), 0, 1)
File: rsmirror.c Line: 1895
10:17:44 Results: Dynamic Server will block at next checkpoint
10:17:44 Action: Shutdown (onmode -k) or override (onmode -O)
10:17:44 stack trace for pid 1476 written to C:\tmp\af.3eef7f2
10:17:44 See Also: C:\tmp\af.3eef7f2
10:17:46 Releasing server from system block
10:17:46 Chunk 2 is being taken OFFLINE.
10:17:46 Chunk 2 is being taken OFFLINE.
10:17:47 IBM Informix Dynamic Server Initialized – Shared Memory Initialized.
10:17:47 Physical Recovery Started at Page (1:276).
10:17:47 Physical Recovery Complete: 78 Pages Examined, 78 Pages Restored.
10:17:47 Logical Recovery Started.
10:17:47 10 recovery worker threads will be started.
10:17:47 Fast Recovery Switching to Log 137
10:17:47 Fast Recovery Switching to Log 138
10:17:52 Rollforward of log record failed. iserrno = 135
10:17:52 Log Record: log = 138, pos = 0x1a218c, type = OLDRSAM:DELITEM(29), trans = 5
10:17:52 Rollforward of log record failed. iserrno = 135`
Y se queda generando por HORAS archivos en la carpeta tmp.
Esta dando error en este chunk: C:\IFMXDATA\ol_guaranisrv\ol_guaranisrv_dat.000, y no levanta el dbspace al que pertenece este chunk.
El problema es el tamaño del Fisical Log, el cual es mas grande que el tamaño del dbspace en donde se esta creando.
¿Que dbspace tiene definido el parámetro PHYSDBS ?
El problema se origino en que el PHYLOG esta dimensionado mas grande que el dbspace donde reside. Con bajar el parametro PHYSFILE 2048000 a un valor menor no hubiera ocurrido.
El asunto es que se marco como OFFLINE un chunk, y eso es complicado de arreglarlo. Lo mas facil es si tenes un backup restaurarlo y luego antes de repetir el proceso que fallo cambiar el valor de PHYSFILE a un valor menor, 1638400 (por ejemplo)
Lo solucioné reinstalando Informix y haciendo un dbimport.
El tema es cuando estoy corriendo los script de actualización (es una versión 2.6.4) no me pase lo mismo (Cannot Allocate Physical Log File), alguna recomendación?
Agustin, podes pasar los datos del onconfig y caracteristicas del servidor?
Asi vemos que modificaciones debes hacer para ajustar la configuracion del informix al servidor donde lo tenes instalado.
Si el equipo tiene mas de un cpu, podrias cambiar algunos parámetros relacionados con esto.
Adjunto nuevamente el onconfig. Lo que podes hacer es cambiarlo y volver a reiniciar la instancia con “oninit -iv”. Esto va a reiniciar la instancia, es decir borrará todos los dbspaces y creará nuevamente el root dbspcae con el tamaño que especifiqué que es de 2Gb.
Agregué mas logical logs y cambie el tamaño del fisical log.
Igualmente despues podes crear un dbspace para poder alojar alli el Physical log. (Lo cambias de lugar y tamaño con el parámetro onparams)
También deberias crear un dbspace temporal de 2gb y agregar el nombre del dbspace en el parámetro del onconfig DBSPACETEMP.
Deberías setear correctamente el archivo a donde vas a hacer backup de la instancia, parámetro TAPEDEV que actualmente tenes el nombre “C:\BackupsTapes\NUL”, es decir que va a crear un archivo llamado NUL donde se hará el backup. Si no queres hacer backup simplemente debes poner NUL.
Aunque es recomendable que hagas backup (con el parámetr ontape) tanto de las bases de datos como de los logical logs, con lo cual deberias setear correctamente los nombres de los archivos a donde haras backup (TAPEDEV y LTAPEDEV).