Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-03-2009
madmai madmai is offline
Miembro
 
Registrado: oct 2005
Posts: 117
Poder: 19
madmai Va por buen camino
BBDD Firebird Abierta

Como puedo saber si una base de datos firebird esta abierta? gracias de antemano, algun truco ?
Responder Con Cita
  #2  
Antiguo 10-03-2009
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Desde dónde? (tu aplicación, el sistema operativo, una aplicación externa)

Desde el sistema operativo puedes ver las conexiones al puerto 3050, por ejemplo.
(netstat -n en dos/win/linux)

Código:
Microsoft Windows XP [Versión 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Duilio>netstat -n

Conexiones activas

  Proto  Dirección local        Dirección remota       Estado
  TCP    127.0.0.1:1049         127.0.0.1:1050         ESTABLISHED
  TCP    127.0.0.1:1050         127.0.0.1:1049         ESTABLISHED
  TCP    127.0.0.1:1051         127.0.0.1:1052         ESTABLISHED
  TCP    127.0.0.1:1052         127.0.0.1:1051         ESTABLISHED
  TCP    127.0.0.1:1053         127.0.0.1:1054         ESTABLISHED
  TCP    127.0.0.1:1054         127.0.0.1:1053         ESTABLISHED
  TCP    127.0.0.1:1062         127.0.0.1:1063         ESTABLISHED
  TCP    127.0.0.1:1063         127.0.0.1:1062         ESTABLISHED
  TCP    127.0.0.1:2340         127.0.0.1:62514        ESTABLISHED
  TCP    127.0.0.1:2343         127.0.0.1:62514        ESTABLISHED
  TCP    127.0.0.1:2344         127.0.0.1:62516        ESTABLISHED
  TCP    127.0.0.1:2345         127.0.0.1:62516        ESTABLISHED
  TCP    127.0.0.1:5152         127.0.0.1:1059         CLOSE_WAIT
  TCP    127.0.0.1:62514        127.0.0.1:2340         ESTABLISHED
  TCP    127.0.0.1:62514        127.0.0.1:2343         ESTABLISHED
  TCP    127.0.0.1:62516        127.0.0.1:2344         ESTABLISHED
  TCP    127.0.0.1:62516        127.0.0.1:2345         ESTABLISHED
  TCP    192.168.152.200:445    192.168.152.26:1722    ESTABLISHED
  TCP    192.168.152.200:3050   192.168.152.252:2541    ESTABLISHED
  TCP    192.168.152.200:3345   192.168.152.252:139    ESTABLISHED
  TCP    192.168.152.200:4539   72.14.247.18:80        TIME_WAIT
  TCP    192.168.152.200:4544   62.43.189.164:119      ESTABLISHED
  TCP    192.168.152.200:4547   69.63.186.12:80        ESTABLISHED
  TCP    192.168.152.200:4565   192.168.152.252:23     ESTABLISHED
  TCP    192.168.152.200:4567   216.239.122.102:80     TIME_WAIT
  TCP    192.168.152.200:4568   216.239.122.178:80     TIME_WAIT
  TCP    192.168.152.200:4569   216.239.122.227:80     TIME_WAIT
  TCP    192.168.152.200:4570   216.239.122.178:80     TIME_WAIT
  TCP    192.168.152.200:4571   216.239.122.227:80     TIME_WAIT
  TCP    192.168.152.200:4575   168.75.68.60:80        TIME_WAIT
  TCP    192.168.152.200:4576   209.85.133.83:80       ESTABLISHED
  TCP    192.168.152.200:4579   69.63.176.167:80       ESTABLISHED

C:\Documents and Settings\Duilio>
Puedes ver los servicios abiertos con un top en linux.
Código:
top - 18:42:52 up 18 days,  3:32,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  89 total,   1 running,  88 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0% us,  0.1% sy,  0.0% ni, 99.9% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:   1024588k total,   838460k used,   186128k free,    33096k buffers
Swap:  2064376k total,      160k used,  2064216k free,   674580k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 2818 canna     16   0 29616  25m  572 S  0.0  2.6   0:00.49 cannaserver
22827 firebird  16   0 22804  19m 2736 S  0.0  1.9   0:01.38 fb_inet_server
22846 firebird  16   0 19448  15m 2612 S  0.0  1.6   0:00.30 fb_inet_server
 2934 root      16   0 19220 6756 1580 S  0.0  0.7   1:36.19 hald
22841 firebird  16   0  8876 6532 2412 S  0.0  0.6   0:00.08 fb_inet_server
22763 firebird  16   0  7840 5764 2668 S  0.0  0.6   0:00.53 fb_inet_server
 2727 ntp       16   0 18544 5288 4216 S  0.0  0.5   0:00.22 ntpd
22824 root      16   0 88172 4860 2980 S  0.0  0.5   0:19.51 smbd
 2392 root      15   0 66412 4460 3248 S  0.0  0.4   4:20.68 procfgd
22840 root      16   0 71500 3832 2844 S  0.0  0.4   0:02.82 smbd
22828 root      16   0 76828 3820 2928 S  0.0  0.4   0:00.07 smbd
22875 root      16   0 72408 3688 2908 S  0.0  0.4   0:00.00 smbd
 2756 root      16   0 27916 3624 2200 S  0.0  0.4   0:00.02 sendmail
 2806 htt       18   0 36512 3344 2696 S  0.0  0.3   0:00.00 htt_server
 2764 smmsp     16   0 27768 3140 2068 S  0.0  0.3   0:00.00 sendmail
22825 firebird  16   0  5840 3072 2036 S  0.0  0.3   0:00.00 fb_inet_server
 2870 root      16   0 69548 2920 2232 S  0.0  0.3   0:00.53 smbd
 2879 root      18   0 69544 2868 2184 S  0.0  0.3   0:00.00 smbd
Desde tu aplicación podrías ver la propiedad del componente DataBase
Código Delphi [-]
   if (DataBase.Active) then ...

Última edición por duilioisola fecha: 10-03-2009 a las 18:40:10.
Responder Con Cita
  #3  
Antiguo 11-03-2009
madmai madmai is offline
Miembro
 
Registrado: oct 2005
Posts: 117
Poder: 19
madmai Va por buen camino
EL problema reside en....

dos aplicaciones, una hace copia de seguridad de la base de datos, y la otra lee la base de datos pues bien mientras esta haciendo copia de seguridad no puede leer la base de datos, alguna solucion?
Responder Con Cita
  #4  
Antiguo 11-03-2009
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Pues entonces estás haciéndolo mal. (Espero no te ofenda el comentario...)

Mediante GBAK debes hacer un backup de la base de datos y eso es lo que debes copiar en tu copia de seguridad.

GBAK funciona sin importar otras conexiones.

Yo tengo automatizada un GBAK cada noche o cada mediodía en los clientes.
Los clientes hacen copia de sus datos y del directorio c:\backup en donde les dejo backups de las bases.
Si es en Windows, hago 5 tareas programadas. Las llamo una cada día para que generen el backup del día.

Por ejemplo:
Código:
backup_lunes.bat

gbak -t BASE.FDB BASE_LUNES.FBK -user SYSDBA -pass masterkey
copy BASE_LUNES.FBK DIRECCION_DESTINO_COPIA_SEGURIDAD

backup_martes.bat

gbak -t BASE.FDB BASE_MARTES.FBK -user SYSDBA -pass masterkey
copy BASE_MARTES.FBK DIRECCION_DESTINO_COPIA_SEGURIDAD

...

Última edición por duilioisola fecha: 11-03-2009 a las 08:56:23.
Responder Con Cita
  #5  
Antiguo 11-03-2009
madmai madmai is offline
Miembro
 
Registrado: oct 2005
Posts: 117
Poder: 19
madmai Va por buen camino
utilizo el copyfile

es decir hago copia de seguridad del fichero GDB de la base de datos y si esta abierta por cualquier otro programa me da un error.
Responder Con Cita
  #6  
Antiguo 11-03-2009
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Pues como he dicho antes. Es una práctica equivocada!

Debes hacer un backup (que genera un archivo GBK o FBK o con la extensión que quieras) y hacer copia de eso.

Nunca se debe copiar la GDB directamente. No garantizas que no haya nada abierto, en proceso o alguna otra cosa rara.
Responder Con Cita
  #7  
Antiguo 11-03-2009
madmai madmai is offline
Miembro
 
Registrado: oct 2005
Posts: 117
Poder: 19
madmai Va por buen camino
ya pero lo hago asi

Se te ocurre algo de como puedo hacerlo para que no me interrumpa el proceso de copia mientras lee el otro programa, gracias de antemano. o detectar que esta copiando el archivo para asi interrumpir el proceso de lectura del otro programa.
Responder Con Cita
  #8  
Antiguo 11-03-2009
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Ahora entiendo menos que antes...
¿Qué programa interrumpe a cuál?
¿Qué es lo que estás copiando?

¿Estos dos programas son tuyos?
Postea el código de como haces el backup y la copia. Quizás logremos entender qué es lo qué quieres.

¿El programa de copias de seguridades de terceros? ¿Cuál?
- Si es de terceros, supongo que tiene una hora a la que hace la copia. De ser así, debes generar tu backup un poco antes.
- Algunos programas de Backup pueden ejecutar procesos antes de empezar. Si es así, puedes decirle que haga un "gbak -t ..."

Si das una explicación detallada, te podremos ayudar. De lo contrario, ...
Responder Con Cita
  #9  
Antiguo 11-03-2009
madmai madmai is offline
Miembro
 
Registrado: oct 2005
Posts: 117
Poder: 19
madmai Va por buen camino
UN Programa (primero) hace copia de seguridad de la base de datos copyfile y el otro accede(segundo) a la bbdd por lo tanto si accede el segundo programa la copia del primer programa se interrumpe, lo que quiero es que en el segundo programa detecte que el primero esta haciendo copia de seguridad para asi que no lea hasta que no acabe de hacer la copia de seguridad o avisar que el otro programa esta haciendo copia de seguridad, gracias.
Responder Con Cita
  #10  
Antiguo 22-03-2009
cdac901 cdac901 is offline
Miembro
 
Registrado: feb 2008
Posts: 12
Poder: 0
cdac901 Va por buen camino
Que tal, por experiencia propia no se deberia hacer copias a traves de un copy, me ha pasado que se han dañado datas de clientes por este motivo (te dire es un poco tedioso y complicado recuperar datas con las herramientas que se ofrecen en el mercado pero lo he logrado ) pero esto acarrea costos adicionales y molestias a los clientes, en esto momentos utilizamos las herramienta FIBS 2.02 nos a ahorrado muchos dolores de cabeza. Espero que te sirva mi recomendación.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta a tabla de bbdd Firebird externa Gonbamon Firebird e Interbase 4 05-07-2008 05:32:26
BBDD Firebird y IIS Dongato3310 Internet 2 20-08-2007 08:13:15
saber si tabla esta abierta anubis Tablas planas 3 13-08-2007 15:04:59
Carta abierta a Borland SMTZ Debates 287 13-06-2007 20:55:49
Copia de seguridad de BD gdb abierta glopez Conexión con bases de datos 2 19-05-2005 20:04:07


La franja horaria es GMT +2. Ahora son las 17:15:26.


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