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)
-   -   Varios Firebird (https://www.clubdelphi.com/foros/showthread.php?t=81016)

trex2000 02-10-2012 22:11:31

Varios Firebird
 
Saludos a todos.

Mi duda es como puedo varios versiones de Firebird al mismo tiempo en la misma pc o servidor?

Las versiones que necesito que funcionen juntas son la 1.5, 2.0 y la 2.5?

Se podra tener varias instancias corriendo al mismo tiempo?

De antemano muchas gracias.

Espero haberme explicado.

Casimiro Noteví 02-10-2012 22:28:20

No se puede porque tienen el mismo nombre.

maeyanes 02-10-2012 22:47:05

Hola...

Aparte que, de forma predeterminada, todas usan el mismo puerto.


Saludos...

Delphius 03-10-2012 00:37:52

Cita:

Empezado por Casimiro Notevi (Mensaje 446108)
No se puede porque tienen el mismo nombre.

Tengo entendido que debería ser posible tener varias instancias ejecutando amigo.
La versión 1.5 no sólo era de transición hacia la 2.0 sino que además, la idea era preparar el trabajo para el soporte de múltiples instancias... si bien era algo elemental y básico en la 1.5 se esperaba que a partir de la 2.o el soporte fuera entero.
Yo nunca he probado esta alternativa pero recuerdo haber leído algo sobre esto.

EDITO:
Ya estuve leyendo y si, la idea era de poder soportar múltiples instancias... y fue algo que se propuso para 1.5.3 pero luego se dio marcha atrás debido a dificultades. Además, haciendo memoria el instalador de Firebird de forma automática comprueba de que no haya una instalación previa de Firebird.

Tienes razón amigo. No se puede. No me hagas caso.

Saludos,

Casimiro Noteví 03-10-2012 00:47:04

Cierto, así es, pero no recuerdo haberlo visto funcionando ni haber leido nada al respecto de que esté disponible.
Se puede indicar en la configuración que use un puerto u otro, eso sí, pero ahora mismo no llego a recordar cómo ejecutar varias instancias del mismo, puesto que tienen el mismo nombre, usan la misma fbclient.dll y no sé cómo diferenciaría desde un programa qué versión de firebird usar (si hay más de uno funcionando).
Lo mismo se puede, pero no recuerdo que se pueda.

Delphius 03-10-2012 00:52:28

Respondiste justo cuando edité mi mensaje. Estuve buscando y al final eso quedó descartado debido a dificultades técnicas. No resultó como se esperaba.
Asi que oficialmente sigues teniendo razón amigo. ;)

Saludos,

Casimiro Noteví 03-10-2012 01:15:16

No me extraña que tuvieran dificultades técnicas. Además de que no le veo mucha utilidad.

mightydragonlor 03-10-2012 02:36:00

La verdad yo tampoco le veo utilidad alguna, puesto de opciones muy específicas en sentencias de cierta versión de Firebird y el servidor de base de datos sea dedicado exclusivamente a servidor de base de datos, valga la redundancia.

Saludos.

Lepe 03-10-2012 09:47:32

Antes de nada, prueba bajar la versión Embeded de Firebid descomprimirlo en la misma carpeta del ejecutable. Mira los manuales que trae. Para (Me refiero a "Stop" xD) el Servicio Firebird en la máquina para asegurar que usa la Embeded.

Eso permitiría ejecutar los programas de 1.5 y 2.0 (con suerte), después instalas 2.5 con soporte para versiones antiguas (última pantalla del asistente de instalación).

Otra forma: instalar máquinas virtuales para cada versión, es un follón, es más no creo que la versión servidora de las 3 versiones vayan a ir bien. Si de alguna forma colisionan, tendrías que poner 3 tarjetas de red, con distintas IP y tal... no sé hasta que punto será viable.

cointec 03-10-2012 15:04:04

Hola, no hay problema en tener activas varias instancias de Firebird en un mismo PC o servidor.
Yo las tengo instaladas en sistemas Windows. En concreto, en mi portátil tengo fb1.03,fb 2.1.4 y fb2.5.2. En el caso de Firebird 2.5, tengo instalada tanto la versión classic/superclassic como la superserver.

Sólo tienes que instalarlas en carpetas distintas de forma manual. Editar el archivo Firebird.conf, cambiar el puerto 3050 a cualquier otro e instalar el servicio de forma manual, asignando a cada instancia un nombre de servicio distinto.

No deberías encontrar ningún problema

Casimiro Noteví 03-10-2012 15:36:14

Cita:

Empezado por cointec (Mensaje 446195)
e instalar el servicio de forma manual, asignando a cada instancia un nombre de servicio distinto.

¿Cómo haces eso?.
Cuando ejecutas un programa que se conecta a una BD ¿cómo le dices a cual debe conectar?
¿Cómo distingues desde un programa qué versión de firebird debe ejecutarse?

maeyanes 03-10-2012 15:42:09

Hola...

Cita:

Empezado por Casimiro Notevi (Mensaje 446199)
¿Cómo haces eso?.
Cuando ejecutas un programa que se conecta a una BD ¿cómo le dices a cual debe conectar?
¿Cómo distingues desde un programa qué versión de firebird debe ejecutarse?

Pues le indicas el puerto del servicio en la cadena de conexión...


Saludos...

Casimiro Noteví 03-10-2012 16:53:56

Sí, esa es la parte fácil :)

Quiero decir: instalo firebird 1.0 y hay un fbserver ejecutándose y un fbguard ejecutándose y una fbclient.dll.
Ahora instalo firebird 1.5... ¿qué haces para que no "choque" con firebid 1.0 teniendo en cuenta que son fbserver, fbguard y fbclient?
Después instalas firebird 2.0... ¿?
Después instalas firebird 2.1... ¿?
Después instalas firebird 2.5... ¿?

maeyanes 03-10-2012 18:19:51

Hola...

Pues me imagino que el problema es por el nombre del servicio, no pueden existir en Windows dos servicios con el mismo nombre, así que cambiando el nombre del servicio y el puerto debes poder hacer que convivan varias versiones de Firebird en la misma PC... ahora, no le veo gran utilidad a eso... :p


Saludos...

Casimiro Noteví 03-10-2012 18:22:25

Vale, le cambias el nombre del servicio. Pero ¿cómo le dices a cada versión de firebird que use uno distinto?, ¿modificas el código fuente?, ¿es configurable?

maeyanes 03-10-2012 18:28:34

Hola...

Según cointec si, vía el archivo Firebird.conf...


Saludos...

mightydragonlor 03-10-2012 18:40:26

Según leo, al ser servidor, las librerías que usa, serían las del Bin, si te conectas como cliente en el servidor, supongo que usa la úktima libreria instalada del fbClient.

maeyanes 03-10-2012 18:41:49

Investigando un poco, parece ser que esto solo se puede hacer con Firebird a partir de la versión 2.1...

Running several Firebird Instances per Server Machine


Saludos...

Casimiro Noteví 03-10-2012 18:43:41

Pues me parece que no es posible, no he visto nada en la configuración que lo permita, salvo "lo de siempre":

Cita:

# ----------------------------
# TCP Protocol Settings
#
# The TCP Service name/Port number to be used for client database
# connections.
#
# It is only necessary to change one of the entries, not both. The
# order of precendence is the 'RemoteServiceName' (if an entry is
# found in the 'services.' file) then the 'RemoteServicePort'.
#
# Type: string, integer
#
#RemoteServiceName = gds_db
#RemoteServicePort = 3050

Casimiro Noteví 03-10-2012 18:49:59

Pues está complicado, por lo visto dice que se podría hacer pero ejecutando como "Aplicación", no como "Servicio".
En fin, de todas formas, no veo utilidad a ese montaje como para complicarse tanto la vida :)

maeyanes 03-10-2012 18:54:07

Lo mismo pienso, no le veo utilidad a hacer algo así...


Saludos...

cointec 03-10-2012 20:29:59

Hola,
En windows es distinto el nombre del ejecutable al nombre de servicio. En la carpeta bin de Firebird, hay varios archivos por lotest (install_super.bat etc), que admiten un parámetro que es el nombre del servicio. Si no pones nada lo crea como defaultinstance, pero si ejecutas el bat con una cadena como parámetro, te cambia el nombre del servicio por el que quieras, añadiendo a FirebrdServer el parámetro del bat. Por ejemplo si ejecutas en firebird 2.5 "Install_super.bat Firebird25SS", crea el servicio FirebirdServerFirebird25SS.
Esto se soporta desde la versión 2.0 de firebird, por lo que la 1.0, la tengo instalada en el puerto 3050 y con la instalación por defecto.
¿Para que sirve tener varias versiones de Firebird instaladas?
Tengo clientes con versiones distintas. Hay que probar scripts en distintas versiones para ver su compatibilidad y comprobar que funcionan correctamente.
¿Porque tengo de una misma versión instalada la versión Classic o Superclassic y Superserver?
Para lo mismo, hay veces que hay que hacer tests de pruebas de rendimiento y comparar ambas versiones. Otra utilidad puede ser tener distribuidas bases de datos con motores y que no afecte pruebas que se esten realizando. Por ejemplo, imaginamos el caso de un servidor, donde quieres tener un motor para hacer pruebas y otro que es el que se utiliza para el entorno de producción y no quieres que uno afecte al otro. Hay veces que contamos con servidores de pre-producción, pero otras veces el servidor de pre-producción y producción son el mismo, por lo que teniendo dos motores dan seguridad cuando se quieren hacer pruebas sin interferir en producción.
Por supuesto, no tengo todas las instancias activas en mi portatil, las que no suelo utilizar tienen un inicio manual de servicio.

Casimiro Noteví 03-10-2012 20:38:17

Estupendo que se pueda hacer y que te sirva esa opción.

Aunque personalmente no me sirve para nada, todos los sistemas que instalo son linux con la versión classic (ahora superclassic).

cointec 03-10-2012 21:22:01

Cita:

Empezado por Casimiro Notevi (Mensaje 446265)
Estupendo que se pueda hacer y que te sirva esa opción.

Aunque personalmente no me sirve para nada, todos los sistemas que instalo son linux con la versión classic (ahora superclassic).

Por ahora superclassic no es lo más estable para sistemas críticos en producción, aunque sí no has tenido incidencias con ella, es una buena opción.

trex2000 11-10-2012 22:36:34

Pero entonces como podria hacerle para no tener que instalar y desinstalar siempre los firebird que necesite cada programa, una manera rapida y sencilla.

Ya probe las posibles soluciones que me dieron pero no me funcionaron :confused:

De antemano muchas gracias.

cointec 12-10-2012 23:11:40

Que es lo que no te funciona? Bueno antes de nada des instala lo que tengas instalado y prueba los siguientes pasos, son muy simples. No utilices los instaladores, descarga las versiones en formato zip.

Descomprime en dos carpetas distintas dos versiones de firebird, por ejemplo en c:/firebird/firebird2_1/ la versión firebird 2.1.5 y en c:/firebird/firebird_2_5/ la version 2.5.2.

Edita el archivo de firebird.conf de firebird 2.5 y cambia la línea de puerto por defecto de 3050 a 3051, quitando el carácter inicial #.

Ejecuta dentro de la carpeta "bin" de firebird 2.1 "install_super.bat fb21".

Ejecuta dentro de la carpeta "bin" de firebird 2.5 "install_super.bat fb25".

Copia una base de datos de firebird 2.1 en una carpeta, por ejemplo c:/bd/fb21/database21.fdb

Copia una base de datos de firebird 2.5 en una carpeta, por ejemplo c:/bd/fb25/database25.fdb

Crea una conexión en la herramienta que utilices,con la siguiente cadena localhost/3050:c:/bd/fb21/database21.fdb y prueba la conexión, debería funcionar.
Crea otra conexión en la herramienta que utilices, con la siguiente cadena localhost/3051:c:/bd/fb25/database25.fdb y prueba la conexión, debería funcionar.

Casimiro Noteví 12-10-2012 23:31:40

Cita:

Empezado por cointec (Mensaje 446986)
..

Mejor explicado... imposible ^\||/


La franja horaria es GMT +2. Ahora son las 07:59:01.

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