GBAK Scheduler

1 comentario

GBAK Scheduler realiza backups automáticos, a las horas prefijadas, permitiéndote así tener varias copias de seguridad (puedes tener varias por día si quieres) que puedes restaurar en caso de necesidad. Usa muy pocos recursos y corre como un servicio del Windows (o sea que se inicia automáticamente cuando enciendes tu computadora y ya empieza a trabajar, sin que tengas que hacer algo).

Enlace: https://sites.google.com/site/gbakscheduler/home

Disponibilidad: Freeware

Anuncios

Entendiendo NUMERIC y DECIMAL

2 comentarios

Algo que suele costarles entender a quienes empiezan a utilizar Firebird son estos tipos de columnas: NUMERIC y DECIMAL, así que trataré de ponerle un poco de luz al asunto.

1. El Firebird almacena internamente a las columnas NUMERIC y a las columnas DECIMAL como números enteros

2. Eso significa que escribas lo que escribas en esas columnas, internamente se guardará como un número entero

3. La cantidad de valores numéricos distintos que se pueden almacenar en un tipo de columna depende de la cantidad de bytes que le corresponda a ese tipo de columna. Un byte = 256 valores distintos, 2 bytes = 65.536 valores distintos, 3 bytes = 16.777.216 valores distintos, 4 bytes = 4.294.967.296 valores distintos y así sucesivamente.

4. SMALLINT usa 2 bytes, INTEGER usa 4 bytes, INT64 usa 8 bytes

5. La mitad de esos valores son positivos y la otra mitad son negativos, por lo tanto: SMALLINT (de -32.768 a +32.767), INTEGER (de -2.147.483.648 a +2.147.483.647), INT64 (de -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807)

6. Cuando se define una columna como NUMERIC o como DECIMAL se toman en consideración dos parámetros: precisión (p) y escala (s). Se representan como NUMERIC(p, s) y DECIMAL(p, s)

7. La precisión (abreviada como “p”) es la cantidad de dígitos que tiene la parte entera del número. La escala (abreviada como “s”, inicial del inglés “scale”) es la cantidad de dígitos que hay en la parte decimal del número. Por ejemplo, NUMERIC(7, 3) significa que hay 7 dígitos en la parte entera del número y 3 dígitos en la parte decimal del número: eeeeeee.ddd

8. La cantidad de bytes que el Firebird utiliza para guardar una columna NUMERIC o DECIMAL depende de la precisión elegida, aquí no importa la escala, solamente importa la precisión:

Precisión  Tipo entero utilizado                                Rango de valores posibles
  1 a  4   SMALLINT para NUMERIC                                        -32.768 a +32.767
           INTEGER para DECIMAL                           -2.147.483.648 a +2.147.483.647
  5 a  9   INTEGER                                        -2.147.483.648 a +2.147.483.647
 10 a 18   INT64                  -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807

9. Cuando se especifica una escala (s) se divide por 10 elevado a la escala elegida. Por ejemplo NUMERIC(4, 1) puede almacenar números desde (-3.276,8 hasta +3.276,7). NUMERIC (4, 2) puede almacenar números desde (-327,68 hasta +327,67). En el primer caso se dividió por 10 porque la escala era 1 y en el segundo caso se dividió por 100 porque la escala era 2. Si la escala es 3 se divide por 1.000 y así sucesivamente.

10. El Firebird no permite disminuir la precisión de una columna (para aumentar la precisión no hay problema). Por ejemplo, si tenemos una columna definida como NUMERIC(9, 2) y la queremos cambiar a NUMERIC(9, 3) se enojará y no nos permitirá hacer el cambio. ¿Por qué eso? porque cuando es NUMERIC(9, 2) la parte entera tiene 7 dígitos (9 – 2 = 7), en cambio cuando es NUMERIC(9, 3) la parte entera tiene 6 dígitos (9 – 3 = 6). Y aunque nosotros estemos seguros que todos los números cabrán cómodamente en la nueva definición, el Firebird no verifica eso y simplemente no nos permite disminuir la precisión.

11. El punto 10. se puede solucionar de dos formas:

a. Creamos una nueva columna como NUMERIC(9, 3), copiamos todos los valores de la columna NUMERIC(9, 2) a la columna NUMERIC(9, 3) que acabamos de crear, borramos la columna NUMERIC(9, 2), renombramos a la columna NUMERIC(9, 3)

b. Cambiamos la definición de la columna NUMERIC(9, 2) a NUMERIC(10, 3). Como la precisión seguirá siendo 7 (9 – 2 = 7 y también 10 – 3 = 7), el Firebird no se enojará con nosotros

12. Cuando definimos a una columna como NUMERIC(p, s) o como DECIMAL(p, s) debemos tener en cuenta la tabla de arriba para estar seguros de que todos los valores posibles cabrán en nuestra definición. Por ejemplo, definir el PRECIO como siendo NUMERIC(9, 4) puede ser insuficiente en muchos casos porque el precio máximo que podremos almacenar es 214.748,3648. Dependiendo de lo que estemos vendiendo, podría quedarse corto.

 

Reparación de una base de datos corrupta

8 comentarios

Aunque en general las bases de datos Firebird son “a prueba de fuego” porque muy raramente tienen problemas, esa es una posibilidad que siempre existe: cualquier archivo de computadora puede ser dañado.

Si eso te llegara a ocurrir, estos son los pasos que debes dar para recuperarla:

Método 1.

  1. Detener el Servidor del Firebird. No sigas usando la Base de Datos corrupta porque eso solamente conducirá a más corrupción. Además, no copies la Base de Datos cuando el Servidor está corriendo, porque lo que obtendrás será una copia corrupta y quizás también empeore la corrupción de tu Base de Datos. Entonces siempre el primer paso es detener el Servidor del Firebird.
  2. Hacer una copia de la Base de Datos corrupta. Siempre debes guardar la Base de Datos original, en algún momento podrías volver a necesitarla
  3. Reinicia el Servidor del Firebird y ejecuta estos comandos:
    • gfix -v -full -user SYSDBA -password masterkey MiBaseDatos.fdb
    • gfix -mend -user SYSDBA -password masterkey MiBaseDatos.fdb
    • gbak -b -v -user SYSDBA -password masterkey MiBaseDatos.fdb MiBackup.fbk

4. Si el backup se completó exitosamente, hay que restaurar la Base de Datos

    • gbak -c -v -user SYSDBA -password masterkey MiBackup.fbk MiBaseDatos.fdb

5. Si gbak falló, puedes descargar FirstAID Diagnostician, instalarlo y ejecutar Diagnose en la Base de Datos original. Envía el texto de error completo (o la captura de pantalla) a support@ib-aid.com

Método 2.

gbak -b -g -ig -user SYSDBA -pass masterkey MiBaseDatos.fdb MiBackup.fbk

gbak -c -user SYSDBA -pass masterkey MiBackup.fbk MiBaseDatos.fdb

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

 

 

 

 

 

Firebird Data Sync

1 comentario

Firebird Data Sync es una herramienta poderosa y fácil de usar para comparar y sincronizar bases de datos. Sus características incluyen:

  • Compara y sincroniza el contenido de bases de datos
  • Crea en forma automática los scripts de sincronización, los cuales no tienen errores
  • Muestra en un formato fácil de leer las diferencias encontradas al comparar las bases de datos
  • Graba todas las opciones en un proyecto para que sea fácil reutilizarlas
  • Se pueden personalizar las claves de comparación
  • Control total sobre la comparación y la sincronización
  • Poderosa interface de línea de comandos para una integración contínua

Enlace: http://www.sqlmaestro.com/products/firebird/datasync/

Disponibilidad: Comercial

Firebird PHP Generator

2 comentarios

Firebird PHP Generator es una herramienta visual que genera scripts PHP para las tablas y vistas seleccionadas, permitiendo trabajar con ellas en la web. Sus características:

  • Administración de datos: agregar, editar, borrar y copiar filas
  • Personalización de la apariencia HTML
  • Capacidades de filtro y ordenamiento
  • Protección de los datos
  • Presentaciones maestro-detalle
  • Administración del contenido conducido por eventos
  • Exportación de los datos a PDF, XML, CVS, Excel y Word
  • El código que genera es muy claro y fácil de entender y puede ser modificado a tu gusto

Enlace: http://www.sqlmaestro.com/products/firebird/phpgenerator/

Disponibilidad: Freeware y Comercial

Firebird Code Factory

1 comentario

Firebird Code Factory es una herramienta orientada al desarrollo de scripts y consultas SQL.

  • Constructor visual de consultas
  • Editor SQL con texto en colores
  • Ejecución simultánea de varias consultas a través de multi-hilo
  • Administración de datos: puede editar, agrupar, ordenar y filtrar
  • Importa los datos desde Excel, CSV, archivos de texto y más
  • Exporta los datos a 18 formatos
  • Editor y visor de columnas BLOB
  • Construcción de diagramas visuales para datos numéricos
  • Personalizar la interfaz del usuario

Enlace: http://www.sqlmaestro.com/products/firebird/codefactory/

Disponibilidad: Comercial

Firebird Data Wizard

1 comentario

Firebird Data Wizard es una herramienta para importar y exportar datos.

  • Data Pump: Transfiere cualquier esquema y dato a Firebird
  • Data Import: Desde Excel, CSV, archivos de texto y más
  • Data Export: Se puede exportar a 18 formatos
  • Generador ASP.NET: Crea los scripts para ASP.NET
  • Programador de tareas flexible
  • Puede ejecutar las tareas en segundo plano
  • Tiene interfaz de línea de comando

Enlace: http://www.sqlmaestro.com/products/firebird/datawizard/

Disponibilidad: Comercial

Older Entries