Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Temor por tamaño de BD Firebird (https://www.clubdelphi.com/foros/showthread.php?t=35051)

axelbb 30-08-2006 02:24:51

Temor por tamaño de BD Firebird
 
Saludos a todos!

Tengo un sistemita con Firebird 1.5.3 sirviendo desde una PC con Win XP de 32 bits. Creo que con esta configuración cada archivo FDB puede llegar a los 4GB. El tema es que hay una tabla donde guardan ficheros adjuntos a datos maestros, y son de todo tipo (Excel's, Word's, PDF's, Project's, Autocad's, BMP's a toneladas ...). Al tamaño de página lo puse en 8192, por las dudas que algunos de esos archivos estén más gordos que de costumbre ¿Está bien eso? ¿Hace que todo crezca de manera desproporcionada? Supongo que no.

Y bueno... lo que está pasando es que la pobre FDB se va acercando y acercando a su límite práctico, y quiero preparar un "Plan B" a tiempo. Alternativas que pensé:

1) ¿Hay alguna utilidad compresora, que permita de manera transparente comprimir los archivos antes de subirlos y descompactarlos luego de traerlos? ¿Hay alguna forma de usar WinZip o WinRar, en modo "invisible"?

2) ¿Cómo se hace en Firebird para hacer un select, por ejemplo, que relacione dos tablas que estén en diferentes .FDB?

3) ¿Existe alguna utilidad free o paga que permita "partir" las BD Firebird en varios archivos y usarlos como si fueran una sola BD?

4) ¿Qué tal usar win XP 64 bits? ¿Soporta Firebird 1.5.3 archivos mayores sobre este XP? ¿Hay que apostar por la RC4 de Firebird 2?

5) ¿Pueden convivir en una misma PC un Firebird y un MySQL sin conflictos? Creo que MySQL tiene mejor resuelto este tema de los máximos tamaños de archivo, además de permitir una búsqueda full text en blobs llenos de texto.

:confused: :confused: :confused:

Podría pasar todo a un PostgreSQL, pero la verdad que Firebird, accediéndose con MDO Mercury es algo inmejorable dentro de lo gratuito, dejo toda mi confianza en ese esquema. ;)

En fin... cualquier ensayo que hayan hecho sobre este tema me será de gran utilidad.

Gracias! :D

Casimiro Noteví 30-08-2006 09:22:57

Cita:

Empezado por axelbb
Saludos a todos!

Tengo un sistemita con Firebird 1.5.3 sirviendo desde una PC con Win XP de 32 bits. Creo que con esta configuración cada archivo FDB puede llegar a los 4GB. El tema es que hay una tabla donde guardan ficheros adjuntos a datos maestros, y son de todo tipo (Excel's, Word's, PDF's, Project's, Autocad's, BMP's a toneladas ...). Al tamaño de página lo puse en 8192, por las dudas que algunos de esos archivos estén más gordos que de costumbre ¿Está bien eso? ¿Hace que todo crezca de manera desproporcionada? Supongo que no.

Y bueno... lo que está pasando es que la pobre FDB se va acercando y acercando a su límite práctico, y quiero preparar un "Plan B" a tiempo. Alternativas que pensé:

1) ¿Hay alguna utilidad compresora, que permita de manera transparente comprimir los archivos antes de subirlos y descompactarlos luego de traerlos? ¿Hay alguna forma de usar WinZip o WinRar, en modo "invisible"?

Puedes usar multitud de utilidades desde delphi para comprimir y descomprimir, una muy cómoda es Abbrevia, que además es libre.

Cita:

Empezado por axelbb
2) ¿Cómo se hace en Firebird para hacer un select, por ejemplo, que relacione dos tablas que estén en diferentes .FDB?

Directamente, que yo recuerde, no puedes, deberás hacer la consulta de una y con el resultado obtenido deberás consultar la otra.

Cita:

Empezado por axelbb
3) ¿Existe alguna utilidad free o paga que permita "partir" las BD Firebird en varios archivos y usarlos como si fueran una sola BD?

El propio firebird permite dividir la base de datos en tantos archivos como necesites, prueba a buscar aquí mismo en estos foros, avisa para que te lo expliquemos si no lo encuentras.

Cita:

Empezado por axelbb
4) ¿Qué tal usar win XP 64 bits? ¿Soporta Firebird 1.5.3 archivos mayores sobre este XP? ¿Hay que apostar por la RC4 de Firebird 2?

La verdad, yo usaría un linux, la diferencia es enorme.
Puedes seguir con firebird 1.5 sin problemas hasta que esté definitivamente lista la versión 2

Cita:

Empezado por axelbb
5) ¿Pueden convivir en una misma PC un Firebird y un MySQL sin conflictos? Creo que MySQL tiene mejor resuelto este tema de los máximos tamaños de archivo, además de permitir una búsqueda full text en blobs llenos de texto.

Sí, pueden convivir, aunque no veo la necesidad

axelbb 30-08-2006 13:58:40

Es un comienzo...
 
Gracias, Casimiro, probaré antes que nada con Abbrevia, a ver qué tanto espacio recuperamos. Compactaré lo que ya hay dentro, haré un backup y lo restauraré a ver qué me queda en limpio, y probaré qué tan bien funciona, es información bastante importante para ellos...

Tu dato me resulta muy, muy valioso.

Ahora, donde yo planteaba:
Cita:
3) ¿Existe alguna utilidad free o paga que permita "partir" las BD Firebird en varios archivos y usarlos como si fueran una sola BD?



me refería a alguna utilidad que permita fraccionar y hacer selects a tablas en dos archivos diferentes como si estubieran en el mismo .FDB. Por eso, aquello de:

Cita:
El propio firebird permite dividir la base de datos en tantos archivos como necesites, prueba a buscar aquí mismo en estos foros, avisa para que te lo expliquemos si no lo encuentras.

está dentro de lo que ya he probado. Desde ya que puedo crear tantos .FDB como necesite y manejarlos "por separado", pero la gracia de una base de datos en parte está en eso, en tener todo junto, como haces con Oracle. Salvando las distancias, pensé que podría haber alguna herramientita que permita hacer transparente esa separación, paga o gratuita.

Luego, pedía opinión sobre XP 64 bits, porque en este SO no habría tamaño máximo de archivo. Pero la limitación podría estar en Firebird 1.5.3, por eso preguntaba si para no tener limitación real de tamaño de archivo había que esperar a la versión 2 sobre XP 64 bits:

Cita:
La verdad, yo usaría un linux, la diferencia es enorme.
Puedes seguir con firebird 1.5 sin problemas hasta que esté definitivamente lista la versión 2

Sí, estamos de acuerdo. No expresé muy bien mis ideas :p ...

Finalmente, hablaba de hacer convivir Firebird con MySQL, para usar Firebird en la parte del sistema de gestión (es ideal para eso, y no me preocupa el tamaño de archivo porque sobra con 4GB), y una MySQL para guardar los documentos:

Cita:
Sí, pueden convivir, aunque no veo la necesidad.



La necesidad está en que MySQL está mejor preparada para soportar el tamaño máximo de archivo (creo que InnoDB permite distribuir los blobs en distintos archivos) y que adermás tiene indexación full en blobs, cosa que no tiene Firebird y puede ser útil para guardar versiones texto de los documentos almacenados y luego hacer búsquedas muy eficientes. Pero no me gusta nada para hacer bases de datos de sistemas de gestión.

Pero la respuesta está: pueden convivir sin empezar a matarse entre ellos, ¿Ok?:D Veré en el foro de MySQL con qué puedo accederla desde Delphi 7.

Bueno, solamente me falta que alguien me aclare los conceptos de XP 64 bits.:confused:

Gracias!!:)

nemesio 30-08-2006 14:23:29

Hay un truco que se llama Inserción masiva en donde en un SQL, se leen 2 BD, no he probado si se puede aplicar a una consulta, pero probar no cuesta nada, a lo mejor y puedas resolver la consulta en 2 BD.

Saludos

axelbb 30-08-2006 14:30:24

Ahá?? ya investigaré. Tenkius....

axelbb 30-08-2006 14:34:06

Bajé el Abbrevia. Pinta muy bien!! Es beta, ojalá ande bien. Gracias, Casimiro!

Casimiro Noteví 30-08-2006 15:23:23

Cita:

Empezado por axelbb
[...]
Cita:
3) ¿Existe alguna utilidad free o paga que permita "partir" las BD Firebird en varios archivos y usarlos como si fueran una sola BD?

Por ejemplo:
Código:

CREATE DATABASE "mibasedatos.fdb"
user "SYSDBA" password "masterkey"
PAGE_SIZE 8192
LENGTH 125000 PAGES
FILE "mibasedatos.fd1" STARTING AT PAGE 125001 LENGTH 125000 PAGES
FILE "mibasedatos.fd2" STARTING AT PAGE 250001 LENGTH 125000 PAGES;

Es una sola base de datos dividida en 3 partes, tú la usas como lo que es: una sola base de datos.
Y además es "ampliable" según necesites con el tiempo.

Cita:

Empezado por axelbb
Luego, pedía opinión sobre XP 64 bits, porque en este SO no habría tamaño máximo de archivo. Pero la limitación podría estar en Firebird 1.5.3, por eso preguntaba si para no tener limitación real de tamaño de archivo había que esperar a la versión 2 sobre XP 64 bits:
Cita:
La verdad, yo usaría un linux, la diferencia es enorme.
Puedes seguir con firebird 1.5 sin problemas hasta que esté definitivamente lista la versión 2
Sí, estamos de acuerdo. No expresé muy bien mis ideas :p ...

Realmente, la limitación está en el sistema de archivo que se utilice: FAT32, NTFS, ext3, etc... y no en el sistema operativo en sí.

Cita:

Empezado por axelbb
Finalmente, hablaba de hacer convivir Firebird con MySQL, para usar Firebird en la parte del sistema de gestión (es ideal para eso, y no me preocupa el tamaño de archivo porque sobra con 4GB), y una MySQL para guardar los documentos:
Cita:
Sí, pueden convivir, aunque no veo la necesidad.

La necesidad está en que MySQL está mejor preparada para soportar el tamaño máximo de archivo (creo que InnoDB permite distribuir los blobs en distintos archivos) y que adermás tiene indexación full en blobs, cosa que no tiene Firebird y puede ser útil para guardar versiones texto de los documentos almacenados y luego hacer búsquedas muy eficientes. Pero no me gusta nada para hacer bases de datos de sistemas de gestión.
Pero la respuesta está: pueden convivir sin empezar a matarse entre ellos, ¿Ok?:D Veré en el foro de MySQL con qué puedo accederla desde Delphi 7.

¿Que mysql está preparado para manejar bases de datos mayores que firebird?, pues no lo sé con seguridad, el libro de Helen Borrie dice esto: "Maximun size 7 TB theoretical limit, approximate. There is no known record of a Firebird database as large as 7 TB".




Ah!, sí, el abbrevia lo uso desde hace años y nunca he tenido problema alguno con él.

:)

Delfino 30-08-2006 15:47:08

Cita:

Bajé el Abbrevia. Pinta muy bien!!
La JVCL tiene un componente para comprimir, se llama el JvZlibMultiple, si la tienes instalada ya ese te puede servir,
Cita:

¿Existe alguna utilidad free o paga que permita "partir" las BD Firebird en varios archivos y usarlos como si fueran una sola BD?
Puedes hacer un backup/restore de la BD para partirla en varios archivos, el IBExpert lo permite

Por cierto, pq no guardar en la BD solo la ruta a esos archivos?

mamcx 30-08-2006 16:17:42

Cita:

Empezado por axelbb
5) ¿Pueden convivir en una misma PC un Firebird y un MySQL sin conflictos? Creo que MySQL tiene mejor resuelto este tema de los máximos tamaños de archivo, además de permitir una búsqueda full text en blobs llenos de texto.

El limite de 2 GB por archivo NO es un limite de Firebird. Ni de windows. Es un limite de la plataforma de 32 bits. Si lees la ayuda de Delphi, en el apartado de String, dice que el limite maximo tambien es "2 GB". Eso es un limite de TODA plataforma de 32 bits.


Windows 2000/2003 permite extender a 3GB con un hack pero no es recomendado.

Windows XP/2003 64 bits permite archivos muchisimo mas grande.

De todas maneras, el problema radica en que guardar documentos en archivos blob nunca ha sido una buena idea...

axelbb 31-08-2006 13:34:41

Ahora sí!
 
Bueno, ¡¡¡muchas gracias a todos!!!, he aprendido una tonelada. Probaré la partición de la BD con el IBExpert, pero antes leeré la documentación relativa al punto (reconozco que me dá "fiaca" leer todo ese inglés :D ), la verdad ni sabía que existía esa manera de partir la BD en varios archivos y superar el drama del límite del sistema de archivos. De esta manera ni meterse con MySQL...

¿Que por qué guardo los archivos en blobs? Confieso de nuevo mi ignorancia: No sé cómo guardar en carpetas del servidor los archivos sin dar acceso de ningún tipo a las mismas. Me amparé en no compartir nada del servidor y acceder puramente con la IP. ¿Qué alternativas tengo? (el cursito se está poniendo muy bueno:p ). Mi ignorancia de cuestiones elementales como las que observan, se debe a que no estoy relacionado con la informática, hago estas cosas de puro inquieto, nada más :rolleyes: ...

Saludos a todos, y sigan así!

axelbb 31-08-2006 13:58:41

Alucinante!
 
[quote=Casimiro Notevi]Por ejemplo:
Código:

CREATE DATABASE "mibasedatos.fdb"
user "SYSDBA" password "masterkey"
PAGE_SIZE 8192
LENGTH 125000 PAGES
FILE "mibasedatos.fd1" STARTING AT PAGE 125001 LENGTH 125000 PAGES
FILE "mibasedatos.fd2" STARTING AT PAGE 250001 LENGTH 125000 PAGES;

Es una sola base de datos dividida en 3 partes, tú la usas como lo que es: una sola base de datos.
Y además es "ampliable" según necesites con el tiempo.

Simplemente impresionante, Casimiro!!!

axelbb 13-09-2006 14:00:26

¿Más información?
 
Bueno, he aprendido sobre el tema de dividir las BD Firebird en múltiples archivos, ahora ciertamente me convence 100% Firebird. Es maravillosa, de verdad.

Viendo que pregunté una burrada, me puse a leer un poco la documentación de Interbase 6, y encontré muchas posibilidades. Además, obtuve un apunte de Interbase 5 todo en español, de 350 páginas en Word, ¡Completísimo!. Si a alguien le interesa, me lo pide y se lo envío. Algo anticuado con Firebird 2 en puerta, pero cuando se empieza desde cero ayuda bastante.

Pero sigo con algunas dudas, que espero me ayuden a comprender (reitero que no soy informático). Por ejemplo, el tema de las páginas. Al dividir en archivos, debo poner la cantidad de páginas a guardar en cada uno. ¿Cómo decido ese valor?. Por ejemplo, si tengo un tamaño de página de 8192, si elijo 10000 páginas me creará archivos de unos 80 megas máximo? Es decir, me gustaría saber con qué criterios elijo ese valor de cantidad de páginas. Desde IBExpert no encontré cómo restaurar el backup en múltiples archivos ¿Cómo se hace? (sí pude con las utilidades de comando de Firebird).

Gracias.

jachguate 13-09-2006 17:20:18

Hola!

Cita:

Empezado por axelbb
el tema de las páginas. Al dividir en archivos, debo poner la cantidad de páginas a guardar en cada uno. ¿Cómo decido ese valor?. Por ejemplo, si tengo un tamaño de página de 8192, si elijo 10000 páginas me creará archivos de unos 80 megas máximo? Es decir, me gustaría saber con qué criterios elijo ese valor de cantidad de páginas.

El criterio es el que ya hasa mencionado... ¿de que tamaño máximo queres que sean los archivos?

No de páginas = Tamaño máximo en bytes/tamaño de la página en bytes.

Por ejemplo,

2.5Gb/8Kb = 327680 páginas.

Así, al llegar a ese número de páginas, firebird sigue automáticamente con el siguiente archivo que has indicado al crear la bd.

Hasta luego.

;)

axelbb 14-09-2006 13:23:48

Confirmado!!
 
Lo sospeché desde un principio :p .

Gracias!


La franja horaria es GMT +2. Ahora son las 20:45:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi