Generalmente para hacer el backup de nuestra Base de Datos utilizamos el programa GBAK.EXE, el cual además de realizar el backup también la limpia de la basura que pueda tener.
Este programa tiene varias opciones, pero si lo que estamos queriendo es que el backup lo haga lo más rápidamente posible, esta es la forma de decírselo:
GBAK -g -user SYSDBA -password masterkey -se MiServidor:service_mgr MiBaseDatos.fdb MiBackup.fbkLa opción -g le indica que no recolecte la basura, la opción -se le indica que use el Service Manager
Ejemplo:
GBAK -g -user SYSDBA -password masterkey -se WALTER-PC:service_mgr E:\DATABASES\ELECCIONES.FDB E:\DATABASES\ELECCIONES.FBK
Sin embargo hay allí un (quizás) pequeño problema, y es el siguiente: el GBAK no te muestra lo que está haciendo. Para que no se quede mudo y uno pueda saber lo que está haciendo (aunque tarda unos segundos más) generalmente lo recomendable es agregarle la opción -v que muestra paso a paso lo que ocurre. En otras palabras, para la generalidad de los casos lo más conveniente sería escribir:
GBAK -v -g -user SYSDBA -password masterkey -se WALTER-PC:service_mgr E:\DATABASES\ELECCIONES.FDB E:\DATABASES\ELECCIONES.FBK
de esta manera, aunque tardará unos segundos más en terminar, uno podrá ver que el programa está trabajando.
Puedes hacer una pequeña prueba: Verificas cuanto tiempo le tomó al programa GBAK hacer el backup sin las opciones -g y -se y luego cuanto tiempo le tomó hacer el backup con las opciones -g y -se. Casi siempre, usando -g y -se el tiempo se reduce a la mitad, a un tercio, a un cuarto, a un décimo e inclusive menos, dependiendo del tamaño y el contenido de tu Base de Datos.
En la prueba que yo hice antes de escribir este artículo, con una Base de Datos de 1.26 Gigabytes
– Sin usar -g -se tardó: 3 minutos y 35 segundos
– Usando -g -se tardó: 2 minutos y 20 segundos
Y a mayor tamaño de la Base de Datos, mayor será la ganancia de tiempo.
Sin embargo, no olvides que parte de la ganancia de tiempo es debido a haber usado la opción -g o sea que no se recolectó la basura. Pero la basura deberá ser recolectada alguna vez así que lo que hayas ganado allí luego lo tendrás que pagar cuando ocurra el sweep. Para no afectar a tus usuarios podrías ejecutar un sweep manualmente cuando ninguno esté conectado.
.
May 03, 2013 @ 02:01:11
Saludos mi BD se esta llenando cada día como hago para borrar los historiales de la BD?
May 03, 2013 @ 02:22:49
¿A qué te refieres con “historiales de la BD”? ¿puedes ser más específico?
Una Base de Datos en actividad nunca se llena, siempre está creciendo.
Si a lo que te refieres es a eliminar definitivamente la basura que va quedando cuando las filas se modifican y se borran, un ciclo backup/restore del programa gbak.exe hará la tarea. También reconstruirá los índices y recalculará las estadísticas de esos índices.
Saludos.
Walter.
El índice del blog Firebird21 | Firebird SQL
Jun 16, 2013 @ 20:41:25