FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
¿Dónde colocar la Base de Datos?
Hola a todos !
Puede ser que la pregunta resulte muy básica, pero realmente no se me había planteado esta cuestión hasta ahora. Después de trabajar con mi aplicación durante años en clientes, por fin nos vamos a poner a realizar el instalador ! Hasta ahora la instalación siempre se hacía manual. Utilizo Firebird (actualmente 2.5) y la aplicación es local y se instala en cada uno de los ordenadores que va a ejecutar la aplicación. Ahora me surge donde y cómo grabar la base de datos. Hasta ahora siempre la había colocado en una carpeta de una unidad de disco duro (C:, D: o la que fuera), y en una carpeta Unidad:\MiAplicación\Data en el servidor que ejecutase Firebird. Compartía dicha carpeta y listo, desde los demás ordenadores (junto con un fichero INI) se localizaba y se accedía a dicha carpeta. De la misma manera, en cada puesto de trabajo diferente (que no fuera el 'servidor' donde se ejecuta Firebird), creaba una carpeta Unidad:\MiAplicación y ahí grababa el EXE principal junto con todos los archivos adicionales (INI, DLL's, etc), y en el INI tenía puesta la ruta al nombre de servidor y carpeta correspondiente. Ahora, (para hacerlo bien !!), quiero colocar la aplicación en \Archivos de Programas y no sé cuál es la mejor ubicación para los datos. En principio, la base de datos puede crecer bastante (llegando a superar el Giga o más) y por la tanto tendría sentido que el usuario decidiera no colocarla necesariamente en C: Si coloco la BBDD en %ProgramData% debería ser siempre la unidad principal donde está instalado Windows, lo cual, como indica antes, pudiera ser 'inconveniente'. Por otro lado, si quiero en algún momento obtener alguna ruta de dónde se encuentra la base de datos, si fuera en una carpeta o localización diferente, si esa carpeta o localización no estuviera compartida, no podría acceder a dicha información desde otro ordenador. Por otro lado, tengo muchos clientes que tienen los ordenadores con códigos de acceso de usuarios y no siempre podré obtener la información que pido (no estoy hablando de acceder al propio contenido de la base de datos a través de Firebird) si no conociera ciertas credenciales de usuario. Por ello es lo que os pido consejo de cuál sería la mejor ubicación para la base de datos y no tener que colocarla en una carpeta 'tan' visible o accesible como Unidad:\MiAplicación\Data Gracias por adelantado y saludos.
__________________
Piensa siempre en positivo ! |
#2
|
||||
|
||||
Creo que no te sirve mi caso, pero la BD siempre va en un servidor (linux) dedicado. Y no tiene nada compartido con nadie, sólo abierto el puerto 3050.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Cita:
Yo no uso firebird pero imagino que funcionará igual bajo windows que bajo linux, particularmente pienso que el instalador debería de pedir la ruta de la base de datos proponiendo una por defecto y los clientes no necesitan saber donde está la base de datos, ¿no?. Aunque creo que eso de tener un ejecutable en cada cliente es algo engorroso sobre todo para el tema de mantenimiento y actualizaciones. ¿No puedes compartir una carpeta donde se instala el ejecutable desde el que "tiran" los clientes y la base de datos ubicarla en una carpeta no compartida?. Saludos
__________________
Be water my friend. |
#4
|
||||
|
||||
Precisamente la siguiente problemática que tenemos es el tema de actualizaciones, pero esa cuestión no es para plantearla en este hilo.
Ya estamos haciendo el proceso de actualizaciones y precisamente ahí es cuando nos hemos topado también con la ubicación. Pero el problema inicial ha de ser resuelto por supuesto en el programa de instalación. Añado : Además precisamente si el EXE estuviera sólo en el servidor, tendríamos de nuevo problemas para la compartición de carpetas, sobre todo si queremos instalar la aplicación en %archivos de programas%
__________________
Piensa siempre en positivo ! Última edición por gluglu fecha: 15-05-2013 a las 13:48:14. |
#5
|
||||
|
||||
Es que entiendo que quiere hacer un instalador automático, y en ese caso ni con linux ni con windows podrá instalar la BD en un servidor (ordenador distinto donde está haciendo la instalación del programa) en todos los casos, dependería mucho de cada caso particular, permisos, lo que esté compartido, etc.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
||||
|
||||
Cita:
Edito: Es que soltar tonterías es una especialidad mía.
__________________
Be water my friend. |
#7
|
||||
|
||||
El programa de instalación tendrá la opción de elegir si estoy instalando el servidor, o estoy instalando un cliente.
Pero insisto, esta es una cuestión diferente !! Lo que me gustaría saber cuál es la mejor ubicación para la BBDD para evitar futuros 'inconvenientes' sobre todo por estos dos diferentes tipos de acceso, servidor y cliente. Saludos
__________________
Piensa siempre en positivo ! |
#8
|
||||
|
||||
No, claro, de hecho en los últimos sitios que trabajé teníamos un instalador que daba elegir entre cliente y servidor.
Cita:
Algo así como: /home/un-usuario-firebird/datos/labasedatos.fdb Y en cliente puede estar en un subdirectorio de tu programa, suponiendo que no necesite algún permiso o privilegio especial para acceder al mismo.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
||||
|
||||
Yo trabajo con SQL Server y la base de datos esta en: C:\<TuAplicación>\Databases del servidor.
Es independiente si es un servidor o cliente, sólo tienes que decir donde se ubica la base de datos mediante la IP y el puerto del equipo. Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. Última edición por olbeup fecha: 16-05-2013 a las 10:39:44. |
#10
|
||||
|
||||
Cada OS tiene sus "buenas practicas" de como se hacen las cosas, incluyendo como y donde se instalan los programas. Si se siguen, no solo es posible automatizar al 100% las cosas sin fallos, sino que se evitan dolores de cabezas.
En el caso de windows: http://msdn.microsoft.com/en-us/libr.../gg487403.aspx Y luego estan las practicas recomendadas para cada BD. Que normalmente cubren estas ideas universales: 1- Un engine de BD preferiblemente deberia estar en un servidor dedicado, "cerrado" en seguridad (osea, solo exponer el puerto pa las comunicaciones, en una zona protegida por firewall y todo eso, no expuesto a internet ni en una subred expuesta a internet) que solo escucha de una(s) IPs y puerto(s) especificos, que solo responden a un usuario/apps especificos. 2- Deberia tener su *propio* disco(s), solo para esa BD 3- Esos disco, no estan compartidos con nadie mas. Repito lo anterior. Osea, no se instala en donde este el OS. (Pero si no hay mas discos, entonces seguir las recomendaciones para ese OS en particular de donde van las cosas, a menos que haya una razon para desvariar) En el caso de lo que comentas, lo ideal es que la BD este por fuera de la unidad de sistema. Porque el OS se deberia poder reinstalar tan rapido como sea posible, sin afectar los datos. De hecho, es muy popular -en los servicios de hosting- usar un NAS o similar como disco de las BD, para poder desconectar el disco, moverlo a otro servidor y seguir andando. Basicamente, los datos son mas importantes que los programas. Y con lo que sea visible y todo eso? La carpeta donde este la BD deberia estar protegida con su propio usuario y todas las medidas de seguridad del caso. "Esconderla" en un directorio "raro" es idiota (http://en.wikipedia.org/wiki/Security_through_obscurity). Lo que no me suena es compartir por RED la carpeta de la BD. Eso es casi lo peor a nivel de seguridad. Ademas, no es necesario saber las credenciales de cada usuario/equipo. Lo correcto es que crees un usuario solo para esa BD (que es lo normal con sql server, postgress) o uses un usuario de bajos privilegios (lo mas comun en sql server es usar "Network Service Account" que es un usuario que esta en todos los windows, de bajo perfil y privilegios) junto con autenticacion integrada de windows (http://msdn.microsoft.com/en-us/library/ff647396.aspx). Osea, es todo saber realmente como se manejan las practicas correctas de cada OS, en vez de inventarselas. Con windows tambien es posible tener un OS estable/seguro, el problema es que todos se pasan por la galleta los pasos correctos.
__________________
El malabarista. |
#11
|
||||
|
||||
mamcx,
Cita:
Nelson. |
#12
|
||||
|
||||
Cita:
........
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#13
|
||||
|
||||
jejejejejeje...
__________________
Be water my friend. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Colocar datos de un DBgrid en DBedits | Er0s | Conexión con bases de datos | 5 | 16-09-2010 17:27:45 |
Enlazar con base de datos este donde este | 4-0 | C++ Builder | 5 | 12-01-2007 21:33:00 |
Como colocar datos en un formato horizontal en QReport | MAngelito | Impresión | 0 | 23-11-2005 20:12:54 |
Limitar la carpeta donde crear la base de datos | fcios | Firebird e Interbase | 0 | 01-11-2005 07:03:22 |
de donde sacar Base de datos de provincias poblaciones y CP? | Halfo | Varios | 1 | 23-07-2004 16:49:15 |
|