![]() |
BBDD Firebird Abierta
Como puedo saber si una base de datos firebird esta abierta? gracias de antemano, algun truco ?
|
Desde dónde? (tu aplicación, el sistema operativo, una aplicación externa)
Desde el sistema operativo puedes ver las conexiones al puerto 3050, por ejemplo. (netstat -n en dos/win/linux) Código:
Microsoft Windows XP [Versión 5.1.2600] Código:
top - 18:42:52 up 18 days, 3:32, 1 user, load average: 0.00, 0.00, 0.00
|
EL problema reside en....
dos aplicaciones, una hace copia de seguridad de la base de datos, y la otra lee la base de datos pues bien mientras esta haciendo copia de seguridad no puede leer la base de datos, alguna solucion?
|
Pues entonces estás haciéndolo mal. (Espero no te ofenda el comentario...)
Mediante GBAK debes hacer un backup de la base de datos y eso es lo que debes copiar en tu copia de seguridad. GBAK funciona sin importar otras conexiones. Yo tengo automatizada un GBAK cada noche o cada mediodía en los clientes. Los clientes hacen copia de sus datos y del directorio c:\backup en donde les dejo backups de las bases. Si es en Windows, hago 5 tareas programadas. Las llamo una cada día para que generen el backup del día. Por ejemplo: Código:
backup_lunes.bat |
utilizo el copyfile
es decir hago copia de seguridad del fichero GDB de la base de datos y si esta abierta por cualquier otro programa me da un error.
|
Pues como he dicho antes. Es una práctica equivocada!
Debes hacer un backup (que genera un archivo GBK o FBK o con la extensión que quieras) y hacer copia de eso. Nunca se debe copiar la GDB directamente. No garantizas que no haya nada abierto, en proceso o alguna otra cosa rara. |
ya pero lo hago asi
Se te ocurre algo de como puedo hacerlo para que no me interrumpa el proceso de copia mientras lee el otro programa, gracias de antemano. o detectar que esta copiando el archivo para asi interrumpir el proceso de lectura del otro programa.
|
Ahora entiendo menos que antes...
¿Qué programa interrumpe a cuál? ¿Qué es lo que estás copiando? ¿Estos dos programas son tuyos? Postea el código de como haces el backup y la copia. Quizás logremos entender qué es lo qué quieres. ¿El programa de copias de seguridades de terceros? ¿Cuál? - Si es de terceros, supongo que tiene una hora a la que hace la copia. De ser así, debes generar tu backup un poco antes. - Algunos programas de Backup pueden ejecutar procesos antes de empezar. Si es así, puedes decirle que haga un "gbak -t ..." Si das una explicación detallada, te podremos ayudar. De lo contrario, ... |
UN Programa (primero) hace copia de seguridad de la base de datos copyfile y el otro accede(segundo) a la bbdd por lo tanto si accede el segundo programa la copia del primer programa se interrumpe, lo que quiero es que en el segundo programa detecte que el primero esta haciendo copia de seguridad para asi que no lea hasta que no acabe de hacer la copia de seguridad o avisar que el otro programa esta haciendo copia de seguridad, gracias.
|
Que tal, por experiencia propia no se deberia hacer copias a traves de un copy, me ha pasado que se han dañado datas de clientes por este motivo (te dire es un poco tedioso y complicado recuperar datas con las herramientas que se ofrecen en el mercado pero lo he logrado :)) pero esto acarrea costos adicionales y molestias a los clientes, en esto momentos utilizamos las herramienta FIBS 2.02 nos a ahorrado muchos dolores de cabeza. Espero que te sirva mi recomendación.
|
La franja horaria es GMT +2. Ahora son las 05:31:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi