Una forma segura de realizar tareas de mantenimiento a la Base de Datos es renombrarla (darle otro nombre). De esta manera te aseguras que nadie se pueda conectar a ella mientras realizas dichas tareas. Entonces, tranquilamente realizas tus tareas de mantenimiento y al terminarlas la vuelves a renombrar a la Base de Datos con su nombre original.

MiBaseDatos.fdb —> MiBaseRenombrada.fdb —> MiBaseDatos.fdb

Todo eso está muy bien, pero a veces quieres renombrarla y no puedes. ¿Por qué no?

Porque el Windows no te permite renombrar un archivo (sea el que sea) si otro programa lo está usando. Tú estás seguro que nadie está usando la Base de Datos, todos los usuarios están desconectados, sin embargo no puedes renombrarla ¿por qué, cuál es el problema?

El problema es que el Servidor del Firebird mantiene a la Base de Datos abierta por varios minutos más después que el último usuario se ha desconectado.

¿Y por qué hace eso?

Porque el costo de reconectarse es alto y hay entornos (típicamente cuando se conectan desde Internet) en el cual las conexiones son cortas y son frecuentes. Entonces, para el Servidor del Firebird es mejor mantener la conexión, lo cual implica que la Base de Datos está siendo usada por un programa (el Servidor del Firebird) y en consecuencia el Windows no puede renombrarla.

¿Cómo se soluciona?

Hay dos alternativas:

1. Esperar unos cuantos minutos, hasta que el Servidor del Firebird se desconecte de la Base de Datos

2. Detener al Servidor del Firebird.

Eso lo haces mediante:

Inicio

Panel de Control

Firebird Server Manager

Stop

Una vez detenido: renombras tu Base de Datos, le realizas todas las tareas de mantenimiento necesarias y vuelves a reiniciar el Servidor del Firebird (no te olvides de esto o nadie podrá conectarse a la Base de Datos).

El problema con esta segunda alternativa es que si hay otras bases de datos a las cuales los usuarios están accediendo todas ellas serán desconectadas y eso puede causar muchos inconvenientes. Por lo tanto solamente puede ser usada con seguridad cuando hay una sola Base de Datos.