Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   ¿Restaurar DB si se esta usando? (https://www.clubdelphi.com/foros/showthread.php?t=74893)

JXJ 15-07-2011 20:52:54

¿Restaurar DB si se esta usando?
 
hola
aca tengo un problema con la restauracionde las
bases de datos firebird.

usando gbak

del firebird 2.1

¿se puede restaurar una base de datos si el la DB es usado
por otros ya sea en local o en red?

me sale esta leyenda y yo creo que es ese que la db se esta usando
pero
¿'como le hago para desconectar a los usuarios desde el gbak?

¿o como se hace una restauracion?



gbak: ERROR:could not drop database localhost:C:\Program Files\miapp\db\miDB.FDB (database might be in use)
gbak:Exiting before completion due to errors

Casimiro Noteví 15-07-2011 21:00:20

Evidente y lógicamente, NO puedes restaurar una BD si está siendo usada ;)

Deberán desconectarse todos, puedes hacerlo de varias formas: quitando el cable de red :D, usando gbak -shut etc..., si es un servidor linux puedes cerrar todas las conexiones con iptables, etc.
Luego restauras y vuelves a echar a andar el servicio firebird.

JXJ 16-07-2011 17:16:08

Cita:

Empezado por Casimiro Notevi (Mensaje 406538)
Evidente y lógicamente, NO puedes restaurar una BD si está siendo usada ;)

Deberán desconectarse todos, puedes hacerlo de varias formas: quitando el cable de red :D, usando gbak -shut etc..., si es un servidor linux puedes cerrar todas las conexiones con iptables, etc.
Luego restauras y vuelves a echar a andar el servicio firebird.


gracias

Casimiro Notevi

ya lo ando revisando.. que en un restore se necesita desconectar a todos
y de preferencia dar de baja toda actividad en la empresa

PepeLolo 29-07-2011 00:08:03

En mi caso lo que hago es lo siguiente:

Desde un programa que corre como un servicio realizo el Backup y restore de la BBDD con otro nombre. Cuando se finaliza el restore almaceno en la una tabla la fecha y nombre del Backup que dispara desde un trigger de esta tabla un evento.

Este evento es capturado por las aplicaciones de los usuarios y en ese preciso momento se desconectan las aplicaciones abiertas de la BBDD, mostrando un aviso al usuario de la acción que se esta produciendo.

Se remplaza el nombre de la BBDD por el original y ya esta. Si todo es correcto el servicio se vuelve a conectar a la BBDD. Las aplicaciones mientras tanto se mantienen en espera durante 30 segundos, concluidos estos se conectan de nuevo a la BBDD.

Un saludo.:D

Casimiro Noteví 29-07-2011 00:42:35

Pero de esa forma, todo lo que se haga desde que se inicia el backup hasta que vuelve a estar operativo... ¡¡¡ se pierde !!! :confused:

PepeLolo 29-07-2011 00:50:25

Cita:

Empezado por Casimiro Notevi (Mensaje 407817)
Pero de esa forma, todo lo que se haga desde que se inicia el backup hasta que vuelve a estar operativo... ¡¡¡ se pierde !!! :confused:

No, la desconexión de la BBDD se ejecuta solo cuando las aplicaciones capturan el Evento de BBDD , que es cuando el servicio confirma que el proceso a concluido y solo queda por hacer el renombre del la BBDD. Por eso hay un lapsus de espera de 30 segundos ¡por poner un tiempo!

Casimiro Noteví 29-07-2011 01:00:05

A ver si no lo he entendido bien, me ha parecido que haces lo siguiente:

- Inicias el backup (esto equivale a a iniciar una transaction que los demás usuarios no ven)
- Cuando terminas de hacer el backup entonces haces un restore. (Durante ese tiempo los usuarios han estado trabajando y los cambios que se hagan no lo ve la transaction del backup ni, evidentemente, la del restore)
- Sustituye la BD que están usando los usuarios por la nueva que has restaurado.

Por lo tanto... pierdes los datos desde que se inició el backup.

PepeLolo 29-07-2011 01:19:18

Cita:

Empezado por Casimiro Notevi (Mensaje 407826)
A ver si no lo he entendido bien, me ha parecido que haces lo siguiente:

- Inicias el backup (esto equivale a a iniciar una transaction que los demás usuarios no ven)
- Cuando terminas de hacer el backup entonces haces un restore. (Durante ese tiempo los usuarios han estado trabajando y los cambios que se hagan no lo ve la transaction del backup ni, evidentemente, la del restore)
- Sustituye la BD que están usando los usuarios por la nueva que has restaurado.

Por lo tanto... pierdes los datos desde que se inició el backup.

Cierto, no mencione que la copia es usada como BBDD secundaria para procesos de consultas de históricos, no usamos la BBDD principal.

Casimiro Noteví 29-07-2011 01:42:09

Entonces es sólo para consultas, bien, en ese caso no hay problema :)


La franja horaria es GMT +2. Ahora son las 09:45:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi