![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
probema con firebird, no baja los datos al disco
hola necesito una ayuda urgente, mi servidor tiene algun problema omocional y no esta bajando los datos al disco duro, entrando en el sistema estan todos los registros pero copiando el archivo gdb o haciendo un gbak no estan, se quedaron hasta hace una semana... la pregunta del millon, como hago para no perder estos datos? porque si lo apago se me van, ya me paso
gracias mil |
#2
|
|||
|
|||
perdon, olvide mencionar, estoy usando la version 1.5 aun.
sueño con que haya algun comando de "commid" o algo parecido para darle la orden al motor XD |
#3
|
||||
|
||||
Hola.
Esto es rarísimo, nunca había escuchado (y mucho menos visto) nada parecido. Lo primero que tienes que hacer es actualizar a la última versión de Firebird 1.5 (o sea, Firebird 1.5.6, lo cual no representa ningún cambio para tu base de datos o tu aplicación, pero incorpora todas las correcciones de bugs hasta el presente). Firebird viene por defecto con ForcedWrites (cualquier cambio se graba de inmediato al disco duro). Asegúrate de que nadie te lo haya cambiado por vete a saber que razón (aunque no creo que eso pueda retrasar las grabaciones durante una semana). http://www.firebirdsql.org/manual/qsg15-safety.html La verdad es que tiene todo el aspecto de que vuestra aplicación no está confirmando las transacciones desde las que se introducen los datos. Por eso, desde esa transacción se verían perfectamente los datos introducidos, pero desde cualquier otra transacción es como si aún no se hubiesen entrado. Si cuando cierras todas las aplicaciones que introducen datos, entonces ya parece como si los datos se hayan grabado en disco, eso querría decir que tenéis que corregir la aplicación puesto que no está confirmando las transacciones a medida que se introducen datos. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#4
|
||||
|
||||
Lo explicado por guillotmarc es lo que debes comprobar, desde tu programa debes confirmar todas las transacciones antes de cerrarlo. En cuanto a lo de que pase una semana sin confirmar transacciones, yo sí lo he visto, era un servidor windows con la opción ForcedWrites deshabilitada. Aunque no fue con firebird, fue con interbase 6.0, pero para el caso viene a ser lo mismo.
Así que todo lo recomendado por guillotmarc es lo que debes verificar.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
mmm, no se si me exprese bien... el tema es asi, uno entra por sistema y todo estaba, los dias anteriores, el dia actual, todo, pero en el archivo gdb quedo hasta el dia x, si lo copiaba y usaba, no existian los dias 28 29 y 30 por ej, haciendo gbak tampoco conseguia bajarlos, era como si todo estaba flotando en la memoria. No es la primera ves q pasa pero ya no importa, los datos ya se fueron, no se si es de tanto q trate el gbak pero ya no estan.
gracias de todas formas |
#6
|
||||
|
||||
Cita:
Los ForceWrites desactivados quiere decir que tienes los datos solo en memoria, y que no se van a pasar al archivo físico hasta que al motor no le parezca conveniente. Y cuando lo miras por el sistema, depende de como esté programado lo vas a ver desde la misma transacción con la que se entraron los datos, y por lo tanto aparecen normalmente, pero esos datos van a estar en el limbo, y solo pasarán a estar disponibles para todos en el momento en que finalmente se confirme dicha transacción. En este caso es una mala programación y hay que corregir la aplicación (además, si por cualquier razón como que se apague bruscamente la aplicación, esa transacción no se confirma nunca entonces vas a perder todos esos datos no confirmados, tal y como dices que te ha pasado). NOTA: Recuerda que para hacer una copia directa del archivo (sin pasar por un Backup-Restore), no deberías tener ninguna conexión a ese archivo (cerrar todos los programas que acceden a esa base de datos), y si puedes detener el servicio de Firebird, mejor que mejor. En caso contrario, en cualquier momento te vas a encontrar con una copia corrupta de los datos (lo cual también podría explicar tu problema). Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). Última edición por guillotmarc fecha: 04-01-2011 a las 14:49:53. |
#7
|
||||
|
||||
Aunque voy a parecer una cotorra repitiendo lo que dice guillotmarc, no me importa
![]() Repito todo exactamente como ha indicado guillotmarc. Ese es el problema, pani_alex.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#8
|
|||
|
|||
bueno, entonces q pasa si activo el forcewrites? eso hace q los datos se escriban al momento de darles guardar sin necesidad de modificar el sistema? o solo se ejecuta en el momento?
me respondo solo y pongo el link para los q tengan la misma duda http://www.sinatica.com/blog/en/inde...es-when-to-use Última edición por pani_alex fecha: 05-01-2011 a las 19:06:02. |
#9
|
|||
|
|||
Cita:
Tuve el mismo problema de no saber porque se perdian los datos ante un corte de luz o reseteo del equipo (no uso otra cosa que windows). Utilizo en mis nuevos proyectos los componentes FireDAC y no sabia porque? no encontre quien lo diga y me queme el cerebro buscando soluciones "rapidas" como todos nosotros, nos piden las cosas para ayer. Bien, sin mas vueltas despues de hacer mis procedimiento para insertar y/o modificar registros de mi base pasando parametros y ejecutar funciones SQL etc, etc, osea bien al final escribo: TFDConnection.Commit; (obvio que el TFDConnection tiene el nombre del componente que le asigne, mis caso es MIBASE.Commit). Y uala!!! los datos quedan grabados en disco sin mas. Ya se que debe existir otro mejor procedimiento y perdonen mi brutalidad pero les juro que casi renuncio a todo mi esfuerzo. Gracias. Saludos a todos desde Argentina. |
#10
|
||||
|
||||
Sí, pero ten cuidado porque eso no tiene nada que ver con lo tratado aquí, y puedes perder igualmente los datos.
Te aconsejo que leas con cuidado lo que comenta guillotmarc y yo mismo, más arriba. Saludos.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#11
|
|||
|
|||
Cita:
Saludos |
#12
|
||||
|
||||
Creo que está más que explicado ya, pero básicamente "commit" confirma que guarde los datos. Si no hay ningún commit entonces no estás confirmando nada y se perderán los datos.
Lo de "ForceWrites" es algo muy distinto y tiene más que ver con cómo trabaja el sistema operativo para guardar los datos en disco. Por defecto en windows está habilitado, así que no te preocupes, simplemente no lo deshabilites. En Linux está deshabilitado porque es un sistema mucho más seguro y no necesita "ForceWrites". Y también se puede habilitar, obviamente.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problemas con formato de disco y Firebird | marcoszorrilla | Firebird e Interbase | 13 | 21-10-2010 06:59:33 |
probema al operar con LARGE_INTEGER | bactering | C++ Builder | 2 | 16-04-2009 00:30:51 |
Correr aplicación con firebird en K\: y S.O. en otro disco | coyotaxo | Conexión con bases de datos | 0 | 12-10-2005 22:01:23 |
Enviar datos a disco | Ignacio | Varios | 5 | 07-04-2004 02:49:24 |
datos del disco duro | seduerey | Varios | 2 | 01-07-2003 22:13:09 |
![]() |
|