Error -746: La base de datos debe tener Logging

Hola a todos,

hice el dbimport de la base, le corrí el ontape -s -U (también el -s -B) pero intento conectarme y me da el mensaje “Problemas al iniciar la sesión, Error -746: La Base de Datos debe tener Logging”. Contacte al Administrador de BD"

Que me puede estar faltando?

Saludos

Juan

La verdad no me acuerdo si el backup por defecto es de nivel 0 pero yo siempre agregue ejecute

ontape -s -L 0 -U <nombre de la db>.

También pode comprobar el log de informix a ver si te da alguna razón por la que no esta cambiando de log.

Desde una consola sql mira tambien si la db realmente no este en modo loggin con la sentencia

select * from sysdatabases where name=<nombre de la db>;

Tenes que comprobar el campo is_logging este en 1 y is_buff_log,is_ansi,is_nls en 0.

Saludos

Tengo el mismo problema y he realizado las comprobaciones que sugieren. Pero no se registraron cambios : sigue dando el mismo error.
Desde ya agradezco la colaboración.

Raúl Merino

Raul, es version 9.21 u otra version?

Ejecuta el siguiente proceso, y fijate si devuelve “S”:
EXECUTE PROCEDURE sp_tiene_log(‘nombre_base’);

Raul, es version 9.21 u otra version?
La versión es 11.10

Ejecuta el siguiente proceso, y fijate si devuelve “S”:
EXECUTE PROCEDURE sp_tiene_log(‘nombre_base’);
[/quote]
El proceso EXECUTE PROCEDURE sp_tiene_log(‘nombre_base’); devuelve N

Gracias.
Raúl.

Raúl:

El comando ontape -s -U <nombre_de base> te retorna que lo hizo bien? Y el nombre de la base es el correcto? No estarán corriendo el comando con otro nombre de base y por eso no efectua el cambio en la base nueva?

Es muy raro que si ejecutan el comando y el comando indica que fue exitoso no lo esté haciendo realmente. Pueden verificarlo también en el log del motor como se sugiere más arriba. Te tiene que decir algo así:

<nombre_de_base> - New logging mode: UNBUFFERED

Saludos

Gustavo

Para que quede registro, me pasó lo mismo…

Ejecuté

EXECUTE PROCEDURE sp_tiene_log('nombre_base');

y me devolvió N

Cuando corría

ontape -s -U <nombre_de base>

me tiraba un error, y era porque había conexiones activas a la DB, por lo que la pasé a modo quiescent y ejecuté el comando nuevamente, hizo un backup de nivel 0, la volví a multiusuario y el procedure respondió S

Saludos!

Efectivamente, Carlos.

Cada vez que se corre el comando para cambiar el modo de logging de la base te informa si fue exitoso o no lo fue, y eso también queda registrado en el log del motor.

En resumen, no alcanza con ejecutar el comando sino que hay que verificar que el mismo sea exitoso, ya que por distintos motivos ese comando pudo no haber sido exitoso. Uno es el que vos mencionas, que haya algún usuario conectados a la base. Usualmente es uno mismo con algún SQLEditor, cuando la base fue recién importada.

Saludos

Verificar que el nombre de la base no tenga mas de 18 caracteres

Buen dia, estamos cambiando el informix a otro servidor.
Estamos en la etapa de prueba y, el sql editor me conectó sin problemas, salvo un poco de lentitud, pero… desde la aplicación me dá este error.
Encontré este mensaje e hice lo que dicen aqui con el motor on line:
EXECUTE PROCEDURE sp_tiene_log(‘nombre_base’);
Esto me da ‘N’ como resultado aun despues de correr el ontape cuyo resultado se envia a null

ontape -s -U pruix_270_1
Archive to tape device ‘/dev/null’ is complete.

Q mas puedo hacer para cambiar el modo a unbuffered logging?
Saludos.-
Mónica.-

Hola, luego de lo que escribí anteriormente hice un onmode -m:
dba@ix1-IBR:informix/Backups 12:34:01 $ onstat -m

IBM Informix Dynamic Server Version 10.00.UC5E – On-Line – Up 1 days 05:47:02 – 39340 Kbytes

Message Log File: /usr/INFORMIX/online.log
11:59:36 Checkpoint loguniq 7, logpos 0x3018, timestamp: 0xea7b06

11:59:36 Maximum server connections 2
12:04:36 Checkpoint Completed: duration was 0 seconds.
12:04:36 Checkpoint loguniq 7, logpos 0x4018, timestamp: 0xea7b0b

12:04:36 Maximum server connections 2
12:15:08 Checkpoint Completed: duration was 0 seconds.
12:15:08 Checkpoint loguniq 7, logpos 0x6130, timestamp: 0xea7b68

12:15:08 Maximum server connections 2
12:15:08 ‘pruix_270_1’ - New logging mode: UNBUFFERED
12:20:36 Fuzzy Checkpoint Completed: duration was 0 seconds, 1 buffers not flushed.
12:20:36 Checkpoint loguniq 7, logpos 0x8050, timestamp: 0xea7ba1

12:20:36 Maximum server connections 2
12:30:36 Fuzzy Checkpoint Completed: duration was 0 seconds, 1 buffers not flushed.
12:30:36 Checkpoint loguniq 7, logpos 0x9050, timestamp: 0xea7be5

12:30:36 Maximum server connections 2

y figura la base como :
12:15:08 ‘pruix_270_1’ - New logging mode: UNBUFFERED

Luego probé la aplicación y ANDA!!!
vuelvo a correr EXECUTE PROCEDURE sp_tiene_log(‘nombre_base’); y me sigue dando ‘N’
No tendría que darme ‘S’?
Saludos.

Hay un tema, puede ser que el nombre de la base tenga mas de 18 caracteres aunque segun el nombre que detallaste en el mensaje tiene menos de 18 caracteres?
Creo el problema puede venir por alli, si es asi fijate de hacer un rename database y cambiarlo por un nombre que como máximo tenga 18 caracteres (longitud del parametro que recibe ese procedure) y luego volve a probar ese sp.

proba lo siguiente y fijate si devuelve 1 (tiene logging) o 0 (no tiene)

SELECT is_logging	FROM sysmaster:sysdatabases	WHERE name = 'pruix_270_1';

Saludos.