Aumentando la velocidad de NBACKUP

2 comentarios

Como recordarás, Firebird viene con dos programas que te permiten hacer backups de las bases de datos:

  • GBAK.EXE
  • NBACKUP.EXE

Ambos tienen sus ventajas y sus desventajas, y es por eso que existen dos. Si uno de ellos fuera mejor en todo entonces el otro no existiría, no tendría razón de ser.

Cuando se hace el backup con el programa NBACKUP.EXE se puede usar el parámetro -D para aumentar la velocidad en que se realiza el backup.

¿Qué significado tiene el parámetro -D?

Habilita o deshabilita la copia directa, es decir sin la intervención del caché del sistema de archivos del sistema operativo.

A veces, escribiendo -D ON se consigue una mayor velocidad y a veces es escribiendo -D OFF se consigue una mayor velocidad.

¿Qué se debe escribir?

NBACKUP -U SYSDBA -P masterkey -B 0 MiBaseDatos.FDB MiBackup.NBK -D ON

Reemplazando por supuesto el ON por el OFF para probar la forma alternativa

¿Cómo saber cuál opción es mejor?

Probando de ambas formas y midiendo los tiempos empleados en realizar los respectivos backups.

En unas pruebas que hizo el autor de este blog con una Base de Datos de 580 Mb, los resultados fueron:

  • con el parámetro -D ON, 27 segundos
  • con el parámetro -D OFF, 12 segundos

En ese caso evidentemente -D OFF fue mejor, pero no siempre será así, dependiendo de tu Sistema Operativo y del tamaño de tu Base de Datos eso podría variar. Entonces, hay que probar.

Conclusión:

Si haces backups por intermedio del programa NBACKUP.EXE entonces deberías probar con el parámetro -D para descubrir si poniéndolo en ON o en OFF se obtienen mejores resultados.

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

 

Anuncios

El ciclo BACKUP/RESTORE usando GBAK

11 comentarios

Si trabajas en Informática desde hace meses o años seguramente sabes muy bien la importancia de tener backups actualizados y confiables de todas tus bases de datos, no será necesario repetírtelo.

En Firebird hay varias maneras de hacer backup:

  • Usando el programa GBAK
  • Usando el programa NBACKUP
  • Usando un programa de administración gráfica (como el EMS SQL Manager, IBExpert, FlameRobin, etc)
  • Copiando el archivo (con el Explorador del Windows, por ejemplo)

De todas ellas la más recomendable es usar el programa GBAK

¿Por qué?

Porque GBAK no solamente hace un backup, también mejora el rendimiento de la Base de Datos restaurada. O sea que al ejecutar GBAK:

  1. Realizas el backup

Al restaurar tu backup, también usando para ello el programa GBAK obtienes:

  1. Una Base de Datos sin basura
  2. Unos índices perfectos
  3. Un menor tamaño de la Base de Datos
  4. Mayor velocidad

Cuando realizas el backup, en ese backup no se guarda la basura que tenía la Base de Datos original, o sea que el backup nunca tiene basura. Tampoco se guardan los índices (sí la definición de los índices, pero no el contenido) y así esos índices son reconstruídos al restaurar el backup y por lo tanto al finalizar la restauración su selectividad es perfecta. Además, como en el backup no se guardó la basura cuando lo restauras te encuentras con un archivo .FDB de menor tamaño que el original. Y como no hay basura y los índices están perfectos, entonces la velocidad en que se ejecutan todas las operaciones (INSERT, UPDATE, DELETE, SELECT) es mayor.

Por todos estos motivos  es que periódicamente debes realizar el ciclo backup/restore usando el programa GBAK. Estos beneficios no los obtendrás si realizas el backup mediante algunos de los otros métodos, solamente los obtendrás si usas el programa GBAK.

Pero … nunca debes confiar que el backup obtenido se encuentra en perfectas condiciones. A veces, por diversas circunstancias, puedes descubrir que el backup no se realizó correctamente y que el archivo está dañado e inservible.

¿Qué implica eso?

Que siempre después de realizar el backup debes restaurarlo para verificar que está todo ok. Si no lo haces entonces puedes encontrarte con una sorpresa muy desagradable cuando quieras usarlo.

De nada te servirá tener 40 backups si cuando quieres restaurar uno de ellos descubres que está dañado, quieres restaurar el segundo y también está dañado, quieres restaurar el tercero y también está dañado y así sucesivamente. Desperdiciaste tiempo y espacio en disco porque ninguno de esos backups te resultó útil cuando lo necesitaste.

Por lo tanto, la regla de oro es la siguiente:

Siempre inmediatamente después de hacer un backup se debe restaurarlo para verificar que el backup está ok

Fíjate que la regla dice “inmediatamente”. No dice una hora después, un día después, una semana después, o algún día cuando se te ocurra. Dice “inmediatamente”, lo cual significa que apenas terminó el backup ya debe empezar la restauración.

Desde luego que si la restauración falló (sea por el motivo que sea) inmediatamente tendrás que hacer otro backup y otra restauración. Y así sucesivamente, hasta que estés 100% seguro de que puedes restaurar el backup exitosamente.

Dependiendo de las actividades de la Empresa y del tamaño de la Base de Datos puedes programar hacer el backup con GBAK cada día, cada dos días, cada semana, cada quincena, etc. pero debes realizar el ciclo backup/restore sí o sí.

No es algo opcional, es algo obligatorio si quieres tener la tranquilidad y la seguridad de que está todo ok.

Artículos relacionados:

Los métodos para hacer backup

El índice del blog Firebird21