Acceder a BD Access a través de una LAN

Ernesto Revilla aerd en retemail.es
Lun Sep 1 12:55:57 CEST 2003


Curiosamente, no he tenido demasiados problemas accediendo desde Access a la
base de datos en una red local sin desactivar el bloqueo optimista, y sí se
me ha corrumpido desde Python. Quizá Access haga algún tipo de limpieza
antes de cerrarse, y el cierre de Python no ha sido del todo limpio (salgo
con un system.exit(0), pero cerrando la base de datos antes). En todo caso,
desactivar el bloqueo optimista es más que recomendable.

He tenido problemas con:
1. Windows 98, primera edición: tiene un fallo en el driver Realtek 8029.
2. La máquinas con Win98 son bastante menos estables y pueden interrumpir
una
operación de escritura, dejando la base de datos inservible. Mucho más
estabilidad he conseguido con NT4, Win2K, WinXP debería ser + ó - como
Win2k.
3. Todavía trabajo con Jet 3.51. Es obligatorio tener instalado los dos
service packs de Office
para este caso. Supongo que usarás Jet 4.0. No sé si la (in)estabilidad es
la misma.
4. Equipo de red. No es bueno mezclar ordenadores con tarjetas de 10 y 100.
Con los de 100 siempre he tenido menos problemas.
5. La velocidad de los ordenadores importa. Cuanto más lento, más
probabilidades de corrupción. Si observas bien qué es lo que hace, escribir
en un archivo compartido, queda claro que el servidor tiene que ser
suficientemente rápido para soportar varios clientes (realizan muchos
bloqueos de fichero y escituras pequeñas).
6. Compactar frecuentemente la base de datos, dependiendo de los
movimientos, entre 1 vez al día y 1 vez al mes.
7. Cuánto más pequeños son los recordsets y menos tiempo estén abiertos,
menos probabilidad de corrupción, i.e., no abrir toda la tabla y trabajar
sólo con filtros. Usar sentencias SQL optimizadas si posible.
8. Haz copias frencuentes, mínimo 1 al día.
9. He sobrevivido todos los crashes, reimportando las tablas o copiando y
pegando registros (sí, algunas veces la importación falla, y sí  se puede
abrir para copiar y pegar).
10. La base de datos es muy rápida, si las consultas están (manualmente)
adecuadamente optimizadas, aún en entornos con 10 personas.

Curiosamente, he tenido problemas cuando la base de datos era muy pequeña.
Después de crecer un poco (>5MBytes) los problemas has desaparecido y
vuelven cuando la base se hace muy grande (>150 MBytes).

A ver si puedo encontrar la causa de las corrupciones de Python en una red
local.

Saludos cordiales,
Erny

----- Original Message ----- 
From: "Marcos Sánchez Provencio" <rapto en arrakis.es>
To: "La lista de python en castellano" <python-es en aditel.org>
Sent: Sunday, August 31, 2003 10:45 AM
Subject: Re: [Python-es] Re: Acceder a BD Access a través de una LAN


> Perdon por el desastre de lo del wiki, envio mejor el doc de m$
>
> http://support.microsoft.com/default.aspx?scid=kb;[LN];300216
>
> Lo de samba vale
>
> Marcos Sánchez Provencio wrote:
>
> > Víctor R. Ruiz wrote:
> >
> >>  Hola:
> >>
> >> El Viernes, 29 de Agosto de 2003 14:19, Tomás Javier Robles Prado
> >> tecleó:
> >>
> >>
> >>> Gracias a ambos, lo he solucionando "Conectando una unidad de red"
> >>> en el
> >>> equipo en el que accedo a la bbdd.
> >>> Así sólo tengo q poner F:\pruebas\nueva.mdb
> >>>
> >>
> >>
> >>  Tenía entendido que Jet no soportaba accesos concurrentes y
> >> compartir la unidad para que accedan varios Access era una manera
> >> directa de terminar con la BB.DD corrompida.
> >>
> >>  Saludetes,
> >>
> >>
> > No hay problema, solo un par de precauciones:
> >
> > * No va a ir tan rapida como en local y en uso exclusivo.
> > * Hay un uso del cache demasiado optimista que si que corrompe las BD
> > bajo uso intensivo, pero se puede evitar haciendo mas pesimista el
> > cache. Copio un fragmento del wiki de la intranet de mi empresa:
> >
> >
> >  Problemas con Base de Datos Access en servidores Windows/Samba
> >
> > Los servidores SMB/CIFS (Samba y Windows) tienen una función que se
> > llama Bloqueo Oportunista. Esta función puede perjudicar a Gotta,
> > cuando utiliza MS Jet (el formato de MS Access) como Base de Datos,
> > bloqueando la descarga de datos en Base de Datos Física y corrompiendo
> > la base de datos en niveles altos de carga.
> >
> > Para Windows XP:
> >
> > La solucción es entrar en el Editor de Registros (*RegEdit*) dónde se
> > encuentra la base de datos y seguir la siguiente ruta:
> >
> >    * /*HKEY_LOCAL_MACHINE\System\CurrentControlSet
> >      CurrentControlSet>\Services\MRXSmb\Parameters\*/
> >
> >
> > En este punto crearémos las siguientes entradas:
> >
> >    * Nombre de Entrada: OplocksDisabled, Valor:
> >      *REG_DWORD*, Información del Valor: *1*
> >    * Nombre de Entrada: *EnableOplocks
> >      EnableOplocks>*, Valor:
> >      *REG_DWORD*, Información del Valor: *0*
> >
> > Reiniciamos el equipo para que recoja la información y podemos seguir
> > trabajando.
> >
> > Para Samba:
> >
> > Editar el fichero smb.conf que suele estar en /etc o en /etc/samba
> >
> > Añadir las siguientes líneas en [global] o en la sección del recurso
> > compartido afectado:
> >
> >        level2 oplocks = False        oplocks = False
> > Reiniciar Samba o enviarle un -HUP al proceso para que vuelva a leer
> > la configuración. En linux:
> >
> > killall -HUP smbd
> >
> >
> >
> > PS: ¡Se me han vuelto a ir los acentos del Mozilla! ¡Volvemos a 1999!
:-(
> >
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en aditel.org
> > http://listas.aditel.org/listinfo/python-es
>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>




Más información sobre la lista de distribución Python-es