Por el uso (y abuso) diario las bases de datos normalmente van perdiendo performance, volviéndose más lentas todas las operaciones que se realizan en ellas. Una forma de mantener a la Base de Datos saludable es a través del siguiente archivo .BAT

CLS

@ECHO OFF

ECHO IMPORTANTE: El nombre de la Base de Datos NO DEBE TENER LA EXTENSION para que este archivo .BAT funcione bien.

@ECHO ON

SET ISC_USER=SYSDBA

SET ISC_PASSWORD=masterkey

SET CarpetaFirebird=C:\Program Files\Firebird\Firebird_2_5\bin\

SET CarpetaBaseDatos=E:\SQL\DATABASES\

SET CarpetaBackup=E:\SQL\BACKUPS\

SET NombreBaseDatos=INTEGRAL

C:

CD "%CarpetaFirebird%"

GFIX "%CarpetaBaseDatos%%NombreBaseDatos%.FDB" -shut single -force 0

GFIX "%CarpetaBaseDatos%%NombreBaseDatos%.FDB" -validate -full -ignore

GFIX "%CarpetaBaseDatos%%NombreBaseDatos%.FDB" -mend -ignore

GFIX "%CarpetaBaseDatos%%NombreBaseDatos%.FDB" -online

IF EXIST "%CarpetaBackup%%NombreBaseDatos%_GBAK.LOG" DEL "%CarpetaBackup%%NombreBaseDatos%_GBAK.LOG"

GBAK "%CarpetaBaseDatos%%NombreBaseDatos%.FDB" "%CarpetaBackup%%NombreBaseDatos%.FBK" -e -g -ig -l -nt -b -v -y "%CarpetaBackup%%NombreBaseDatos%_GBAK.LOG"

IF EXIST "%CarpetaBackup%%NombreBaseDatos%_GBAK2.LOG" DEL "%CarpetaBackup%%NombreBaseDatos%_GBAK2.LOG"

IF EXIST "%CarpetaBaseDatos%%NombreBaseDatos%_NEW.FDB" DEL "%CarpetaBaseDatos%%NombreBaseDatos%_NEW.FDB"

GBAK "%CarpetaBackup%%NombreBaseDatos%.FBK" "%CarpetaBaseDatos%%NombreBaseDatos%_NEW.FDB" -o -r -v -REP -y "%CarpetaBackup%%NombreBaseDatos%_GBAK2.LOG"

GFIX "%CarpetaBaseDatos%%NombreBaseDatos%.FDB" -shut -force 0

E:

IF EXIST "%NombreBaseDatos%_ANTERIOR.FDB" DEL "%NombreBaseDatos%_ANTERIOR.FDB"

RENAME "%NombreBaseDatos%.FDB" "%NombreBaseDatos%_ANTERIOR.FDB"

IF EXIST "%NombreBaseDatos%.FDB" DEL "%NombreBaseDatos%.FDB"

RENAME "%NombreBaseDatos%_NEW.FDB" "%NombreBaseDatos%.FDB"

C:

GFIX "%CarpetaBaseDatos%%NombreBaseDatos%.FDB" -online

@PAUSE

Como seguramente ya sabes, los archivos .BAT son los archivos de lotes (batch, en inglés) del antiguo Sistema Operativo D.O.S. y que el Windows ha heredado. En estos archivos .BAT puedes escribir varios comandos, los cuales se ejecutarán en el mismo orden establecido.

Este archivo .BAT realiza las siguientes tareas:

  1. Borra la pantalla
  2. Muestra un mensaje al usuario
  3. Establece las variables de entorno. Son todas las que empiezan con la palabra SET. Fíjate que para no estar escribiendo el nombre del usuario y su password en cada comando GFIX y GBAK que hay más abajo, se asignaron sus valores a dos variables. No es obligatorio hacer así, pero se escribe menos.
  4. El nombre de la Base de Datos debe escribirse sin la extensión (o sea, sin el .FDB). Por eso, aunque el nombre real de la Base de Datos usada en este ejemplo es INTEGRAL.FDB en la variable se escribió solamente INTEGRAL
  5. El comando GFIX -shut single -force 0 permite que solamente el usuario SYSDBA pueda estar conectado a la Base de Datos, nadie más. El -force 0 cerrará inmediatamente todas las conexiones. ¿Qué implica eso? Que este archivo .BAT solamente debe ejecutarse cuando nadie está usando la Base de Datos. De lo contrario, los usuarios que estén conectados perderán la conexión y posiblemente el trabajo que estaban haciendo.
  6. Los siguientes dos comandos GFIX sirven para validar y corregir errores en la Base de Datos
  7. El cuarto comando GFIX vuelve a permitir que otros usuarios se conecten a la Base de Datos
  8. Antes de realizar el backup se verifica si existe el archivo LOG (en los archivos de LOG se guarda información con respecto a la ejecución de un comando). Si existe, se lo borra
  9. Se realiza el backup y las tareas que realizó se guardan en un archivo de LOG, que es un archivo de texto que puede ser revisado en cualquier momento
  10. Idénticamente, antes de restaurar el backup se verifica si existen su archivo de LOG y un archivo con el mismo nombre del que será restaurado. Si existen, se los borra
  11. Se realiza la restauración del backup
  12. Nuevamente se desconecta a todos los usuarios. Esto es necesario para que el nombre de la Base de Datos pueda ser cambiado, si alguien la estuviera usando, su nombre no podría cambiarse
  13. Se cambian los nombres de dos archivos
  14. Y finalmente, se vuelve a permitir que todos los usuarios puedan conectarse a la Base de Datos

Si en el punto 14. obtienes un error, no te preocupes, significa que todos ya podían conectarse y le volviste a pedir que todos se pudieran conectar.

Algunos puntos importantes a recordar:

  1. Este archivo .BAT debe estar en la computadora del Servidor, no funcionará remotamente
  2. Debes crear un archivo de texto con la extensión .BAT para que funcione. Para mayor facilidad, puedes colocar un acceso directo en el escritorio.
  3. Si ejecutas este archivo .BAT periódicamente, te asegurarás que tu Base de Datos siempre se encuentre en buen estado y que todas las operaciones en ella sean lo más rápidas posibles
  4. Debes ejecutarlo solamente cuando estás seguro que nadie está conectado a la Base de Datos, porque este archivo .BAT desconectará automáticamente a todos quienes estén conectados y eso les podría ocasionar pérdida de sus trabajos
  5. La carpeta BACKUPS debe existir, si no existe obtendrás un mensaje de error y este .BAT no cumplirá su misión
  6. Debes establecer los valores de las variables de entorno (las que empiezan con SET) acordemente a tu situación particular. Las que ves aquí son solamente un ejemplo
  7. Antes de renombrar los archivos (casi al final del .BAT) se cambia a la unidad E:, porque en esa unidad tengo yo mis bases de datos. En tu caso, debes colocar allí la letra que corresponda (C:, D:, E:, F:, la que sea)

Artículo relacionado:

El índice del blog Firebird21

Anuncios