Tutorial: Compartir base de datos entre 2 PCs

19 respuestas
11/03/2010 11:47
1
Ibesan
Cash Project
Nivel 34
1.088 mensajes

Necesitamos:

1. Un disco duro externo

2. Tutorial para Postgres 8.4

3. Una copia de seguridad de nuestras manos/base de datos por si la liamos. (ver tutorial)

Si sigues este tutorial es bajo tu propia responsabilidad (¿a que da miedo? xD). No te asustes, es fácil ;)
Léelo entero al menos una vez antes de empezar.

Si no estás muy puesto recomiendo encarecidamente utilizar el Combo de HM en ambos PCs para que la instalación sea idéntica (versión de base de datos y configuración de cuentas de usuario y claves)

PASO 1. PC1

1. Instalar la base de datos -postgres- en el PC1 (lo voy a llamar así xD).

2. Conectar el Disco duro externo. Nuestro PC le va a dar una letra de unidad que puede ser D, E, F... etc. Fíjate en cuál es esa unidad. Puedes cambiarla (ver más abajo punto 1.1 Paso 2). Yo recomiendo conectar también el disco duro al PC2 y ver qué unidad le da. Si ves que van a haber conflictos, cámbiala ya en PC1 y elige una letra libre en ambos PCs (repito, ver punto 1.1 Paso 2).

Dentro del disco duro externo crea esta ruta mediante carpetas "Program Files\PostgreSQL\8.4\data". Esto quiere decir que en la raiz de tu disco duro creas la carpeta Program Files, dentro de ella la carpeta PostgreSQL, dentro de ésta creas 8.4 y dentro de ésta última la carpeta data.

3. Postgres sabe que los datos los tiene que guardar en -por defecto- C:\Program Files\PostgreSQL\8.4\data Pero tú ahora no los quieres guardar ahí, quieres que postgres los guarde y los vaya a buscar a D:\Program Files\PostgreSQL\8.4\data (D, si tu unidad de disco duro externo es la D, si es otra, pues la que sea). Por tanto, hay que cambiar esa ruta, y eso se hace en el registro de Windows:

IMPORTANTE: tienes que detener el servicio de postgres primero que nada. Clic en botón Inicio/Todos los programas/PostgresSQL 8.4/Stop Service

Pica en el botón de inicio/Ejecutar y tecleas "regedit" sin comillas. Si tienes windows Vista o 7, en el cuadro de Buscar programas y archivos teclea regedit y te aparecerá regedit.exe, dale ahí. ¡Ojo aquí! Que si la lías, la lías parda :p. En el árbol de la izquierda, navega hasta HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\postgresql-8.4

En la ventana de la derecha verás varias claves, la que tienes que cambiar es ImagePath. Clic derecho Modificar. A mí me aparece una ruta tal que así

service -N "postgresql-8.4" -D "C:/Program Files/PostgreSQL/8.4/data" -w

Pues ahí es donde tienes que cambiar lo de "C:/Program Files/PostgreSQL/8.4/data" por la letra de la unidad de tu disco duro externo (D, E, F o la que sea). Comprueba otra vez que la ruta de carpeta que has creado en tu disco duro externo coincide con la ruta que hay en el registro. En mi caso quedaría:

service -N "postgresql-8.4" -D "E:/Program Files/PostgreSQL/8.4/data" -w  Porque mi disco duro externo tiene asignada la unidad E.

Le das a aceptar y cierras todo. Reinicia el PC para que los cambios surtan efecto.

 

PASO 2. PC2

Bien, ya tienes conectada la base de datos de PC1 al disco duro externo, ahora vamos a conectar el PC2 también a ese disco duro.

1. Si al conectar el disco duro externo a PC2 te lo reconoce con la misma letra de unidad que en PC1, cojonudo, si no hay que cambiarla y forzar a PC2 a que le asigne la misma letra de unidad que PC1. ¿Cómo la cambio?

1.1. Clic derecho sobre Mi PC/Administrar. En el menú de la izq: Administración de discos. En la ventana de la derecha, clic derecho sobre la unidad a cambiar/Cambiar letra y rutas de acceso a la unidad. Seleccionas una letra que no esté ocupada y que sea la misma que en PC1 para tu disco duro externo. Aceptar y cerrar.

Vamos bien, ¿eh? Ya queda menos.

2. Instala el Postgres. La versión del postgres debe ser la misma en ambos PCs (8.4 para este tutorial). Cuando te pregunte por la clave -si lo hace- tienes que poner el mismo nombre de usuario y clave que en PC1. Creo que el combo del HM te lo hace todo del tirón y no te pide nada... de ahí que recomiende usar éste método en ambos casos. Así tendrás dos copias iguales sin mucho lío.

NOTA: Si al instalar el PG te sale una ventana con la opción "Initialise Database Cluster" marcada, debes desmarcarla y seguir adelante.

3. Sigue los pasos de PC1 para cambiar la ruta del registro. Acuérdate de detener el servicio de la base de datos (Stop Services)

¡WoW! ¡Ya lo tienes! xD

Importante: cuando desconectes el disco duro externo de un PC y lo vuelvas a conectar sin haber reiniciado, es posible que el servicio de la base de datos se haya detenido. Si el HM te da error de que no puede conectar con la BD, dale a reconnect o ciérralo e inícialo tú manualmente en botón Inicio/Todos los programas/PostgresSQL 8.4/Start Service.

SL2!!

11/03/2010 16:05
Niclos
Cash Project
Nivel 37
1.638 mensajes
11 premiados

Gran manual, este post debería tener chinqueta!!

13/03/2010 17:36
neowacka
Cash Project
Nivel 34
476 mensajes

Ostia no habia visto esto, me viene de perlas, gracias kanario!

02/07/2010 01:14
boogaliza
Cash Project
Nivel 11
4 mensajes

¿Se podría instalar el HM en un disco duro externo, utilizando así una sóla licencia y poder usar el HM en más de un ordenador? 

Edito: No sé si debería ir aquí esta pregunta, la puse por lo del disco duro externo. Si eso que algún moderador la borre y listo.

26/07/2010 18:40
sacul_dan…
Cash Project
Nivel 8
2 mensajes

hola tengo una duda juego con dos maquinas una pc y una netbok. como puedo tener las manos de las dos computadoras en cada unade ellas

26/07/2010 21:17
Ibesan
Cash Project
Nivel 34
1.088 mensajes

Lo que pone este tutorial es una opción, otra sería exportar tus manos cada sesión que juegues e importarlas en el otro lado. Más engorroso pero más barato si no tienes DD externo o no tienes mucha idea de todo esto ;)

SL2!!

27/07/2010 10:39
kapitano
Cash Project
Nivel 72
347 mensajes
16 premiados

Hola Knario, dos dudas?

Esto en la práctica como lo hago...mientras juego dejo el pc externo unido al PC1, y luego voy al PC2 dos y le doy a import?? no se muy bien el proceso para compartir como va...es decir, los pasos los entiendo, pero en la practica no se como llegan las manos de un PC1 a PC2.

Otra cosa...se podría tener dos ordenadores en red y que compartan base de datos directamente, es decir, no tener que estar moviendo las manos fisicamente??

y si en mi mismo ordenador tengo varios usuarios...como hago para que compartan las manos? lo hacen directamente?

Gracias!saludos!!

27/07/2010 14:51
Ibesan
Cash Project
Nivel 34
1.088 mensajes

Hola kapitano,

No, el holdem manager conecta con tu base de datos y busca en ella. Si lo haces todo bien, no debes hacer nada desde el holdem manager al cambiar tu disco duro entre PC1 y PC2, él simplemente conecta con la base de datos y lee la información que ella contiene. La base de datos de cada PC está instalada en cada ordenador por separado, pero su información la va a ir a buscar a la carpeta Data del disco duro externo en ambos casos. Por eso cambiamos el registro ;)

Respecto a la conexión en red es algo que a mí se me escapa :S No sé si será posible ponerle en la ruta del registro, de alguna manera, que las manos las guarde en una carpeta compartida o algo... Es posible, pero no lo sé :/



SL2!!

 

27/07/2010 15:00
Gush
Cash Project
Nivel 86
1.822 mensajes

Yo también estoy buscando como conectar la base de datos en red, por la tarde juego en un sobremesa y por la noche en un portatil (el sofá es lo que tiene jejeje) y tengo que andar cada 2 o 3 dias importando manos de un sitio para otro, la opcion de Knario aun siendo muy buena no me sirve por el rollo de tener que llevar un HDD externo "colgando" del portatil, también he pensado hacerlo en un pendrive pero probablemente la velociadad no sea buena y sigue siendo un coñazo tener el pendrive pinchado en el portatil.

28/08/2010 20:39
kapitano
Cash Project
Nivel 72
347 mensajes
16 premiados

Retomando el tema, tengo mas dudas:
-Entiendo que esto lo puedo hacer con mas de dos PCs, es decir, repitiendo el proceso, no?
-Realmente, las manos se quedan grabadas en el PC1 (si estoy jugando en este), pero se graban en las 2 base de datos (pc1, y 2)??
-Si conecto tres ordenadores con una disco exteerno, y estan los 3 encendidos...estan guardando manos al momento?

Gracias

29/08/2010 02:48
salihadmi…
Cash Project
Nivel 25
360 mensajes

Hay que tener cuidado con este sistema de compartición, ya que puede darnos alguna sorpresa si se malentiende lo que está ocurriendo. Aunque parezca evidente, debemos tener claro que por un lado está el software de gestión (postgresql) y por otro lado las bases de datos. Dos sistemas de gestión de bases de datos NO PUEDEN ESTAR OPERANDO SIMULTÁNEAMENTE SOBRE LOS MISMOS DATOS en disco, ya que se perdería la coherencia de los datos. Cuando se necesita acceder a una base de datos (para guardar o consultar información) se debe hacer a través del software (con consultas SQL), ésto es, conectándose remotamente a postgresql. Por eso, cuando se instala el Hodem Manager es necesario crear una conexión a la base de datos. Realmente no se necesita tener instalado postgresql en tu pc, bastaría con que tuvieras acceso remoto a una instalación de postgresql en otra computadora.

En base a esto, creo entender que lo que sugiere @kapitano de compartir la base de datos entre varios pcs encendidos sobre la misma base de datos no se puede conseguir. La forma de hacerlo sería la siguiente. Una de las PCs (PC-SERVER) debe tener instalado y ejecutando postgresql, con su correspondiente base de datos (en un disco duro local o externo, da igual). En el Holdem Manager de esa PC se indicaría que la base de datos está en esa máquina (localhost/127.0.0.0). En el HM del resto de PCs habría que especificar que el sistema de gestión de base de datos está en otra PC (PC-SERVER). Bastaría con indicar la IP de esa máquina, contraseña, etc... De esta forma podrías tener tres máquinas compartiendo la información de los villanos e importando manos a diestro y siniestro...

¿Desventajas? PC-Server siempre tendría que estar encendida para acceder a la base de datos.

En mi caso particular, no me complico tanto. Lo que hago es compartir sólo las manos entre PCs utilizando Dropbox o Syncplicity, aplicaciones gratuitas que te dan un disco duro online de 2Gb y te permiten tener sincronizados tus archivos entre ese espacio online y otras máquinas. En cada máquina tengo instalado 1 HM y 1 postgresql, cada cual importa las manos a su base de datos PROPIA. Es una mierda, porque se importan las manos tantas veces como máquinas use, con los mismos errores de importación de HM (p.e. con Everest el HM no pilla bien el buy-in de los SnG y tengo que corregirlo manualmente).

Espero no haberles dado demasiado la chapa... con que os aclare algo las dudas....

29/08/2010 10:18
kapitano
Cash Project
Nivel 72
347 mensajes
16 premiados

Por lo que comentas, la solución es similar a la expuesta inicialmente, no? me refiero a tener direccionado el HM a un PC o disco externo...
De cuanta capacidad deberia de ser el disco externo?? no me gustaria petarlo muy rapido

29/08/2010 22:30
salihadmi…
Cash Project
Nivel 25
360 mensajes

No kapitano, ni se parece.

A ver si este esquema aclara mejor lo que digo:
[HM (en PC1)] -----|
[HM (en PC2)] -----|-------- [POSTGRESQL (PC1) ] ----> [BASE DE DATOS (PC1)]
[HM (en PC3)] -----|
[HM (en PC4)] -----|
...

30/08/2010 01:00
Hal9000
Cash Project
Nivel 27
75 mensajes

se puede hacer esto en un servidor o host y conectar los dos/tres/cuatro/etc.. pc's al mismo servidor postgres?

HM PC1 \
---> servidor internet (postgres con base de datos)
HM PC2 /

¿Algo asi?

30/08/2010 01:13
salihadmi…
Cash Project
Nivel 25
360 mensajes

+1

Sí, no debería haber problema alguno. No lo he intentado, pero vamos, lo lógico es que si se pudiese hacer y, por cierto, esta sería una forma muy razonable de compartir la información sin tener tanto pc encendido... Supongo que deben existir servicios de hosting gratuitos que ofrezcan postgresql... luego habría que mirar el tiempo de respuesta (no es lo mismo hacer consultas dentro tu propio ordenador, que hacerlas a través de internet)...

09/09/2010 18:36
DrNekton
Cash Project
Nivel 18
14 mensajes

Hay un tema relacionado con todo esto: velocidad de acceso al disco. Y también integridad de los datos.
Si usamos un disco externo USB como almacén de base de datos (y lo conectamos a PC1, PC2, ... PCx..) se me ocurren algunos problemas:
- el acceso al disco duro externo USB puede ser significativamente más lento (como 10 veces) que un disco interno conectado directamente a la placa con SATA2. Para bases de datos grandes es un problemón.
- los discos externos USB son más susceptibles de perder datos, menos fiables (en general claro). Así que cuidado con el disco que utilicemos...
- la base de datos está unicamente en este disco externo (a priori menos fiable)... cómo haremos los backups?

23/10/2010 10:06
GoodChicken
Cash Project
Nivel 17
3 mensajes

A ver, no suelo hablar por aqui, pero como ingeniero informático hablaré xDDD.

El HM funciona como programa cliente accediendo a una BBDD de donde saca toda su información.

Por decirlo de alguna forma el HM sin BBDD no es nada.

Si queremos compartir datos lo que hay que hacer es:

- Tener n ordenadores en red con n HM instalados con sus respectivas licencias.
- En 1 ordenador, instalar el servidor de BBDD "PostgreSQL".
- Tener IPs fijas (almenos para el servidor de BBDD).
- En el apartado dirección de todos los ordenadores que se quieran conectar a la BBDD, en lugar de poner "127.0.0.1" que es la dirección local, hay que ponar la dirección IP del servidorde BBDD.
- Y ya esta xD.

Con un disco duro externo, tenemos muchos problemas, falta de velocidad, peligro de perder la información se si nos cae, lo que sea y podriamos tener algun problema con la coherencia de la BBDD ya que acceden 2 SGBD a esta, y aunque las sentencias que maneja son simples inserts y selects, se podria dar el caso de dar 2 identificadores iguales para una misma mano si se importan 2 o mas manos en la misma fracción de tiempo (es dificil.... pero todos conocemos de % jeje).

Y no tiene más.... incluso (lo he llegado a probar) he dejado mi ordenador accesible desde el exterior para conectarme desde mi trabajo al servidor de BBDD de mi casa y me ha funcionado perfectamente, solo que para consultar datos es un infierno... ya que estos viajan a traves de internet, aunque para jugar, iba perfectamente ya que se importaban unas 2 manos/segundo, asi que no hay problema ni con el HUD ni nada.

Un saludo a todos

Hiper

03/02/2011 09:45
tyryton
Cash Project
Nivel 21
317 mensajes
1 premiado

Hola a todos,

yo lo he hecho de una manera que creo que no esta mal, en lugar de HM uso pokertracker 3 y en su version para mac. Simplemente lo que he hecho es el tema de la importacion de manos, me explico, Tengo una cuenta en la " nube" dropbox que hasta 2 gb es gratuita , al software de poker ( pokerstars en mi caso), le digo que guarde las manos ( no son mas que archivos de texto .txt de cada sesion) en esa ruta en la nube (dropbox te crea una carpeta local en tu equipo que te la mantiene sincronizada en todos y cada uno de los equipos desde los que accedas ), y entonces al pokertracker le digo que importe las manos de esa ruta, por supuesto tengo desmarcada la opcion de que mueva de sitio las manos ya importadas para asegurarme de que cada vez que abro el pokertracker 3 estan ahi todas las manos.

De vez en cuando y cuando estoy seguro de que ya tengo las mismas manos en ambos equipos entro en esa carpeta de dropbox y borros esos txt para no saturar cada vez que importa manos.

En un sistema mas sencillo de lo que parece en la explicacion que no se si ha quedado clara. Este sistema aunque no os lo creais no siempre requiere de que tengas conexion a internet en todo momento ya que se guardan las manos en tu carpeta local de dropbox y cuando detecta conexion a internet se sincronizan y au, pero vamos que hoy en dia creo que hay internet por todos los sitios donde juguemos.

En cuanto a lo de la velocidad pues no he notado nada nada raro,,,, si alguien quiere probarlo que me cuente y si tiene alguna duda tambien,

Espero haber aportado mi granito de arena.

Un saludo

tyryton

04/02/2011 18:47
gandreu
Cash Project
Nivel 24
100 mensajes

Supongo que todos los sistemas comentados funcionan mas o menos perfectamente, en teoria todos son viables.

Yo tengo un servidor en red con postgresql al cual ataco con PT o HM y no da ningun problema, de hecho alguna prueba he realizado con diversos equipos (no simultaneos) y ha funcionado sin problemas.

Me gustaria preguntar si alguien a probado a atacar la base de datos de postgresql desde dos equipos simultaneos diferentes, obviamente con diferentes usuarios.

Es un tema que en su dia me parecio interesante y no tuve la posibilidad de probar.

Un saludo.

Responder

¿Quieres participar?
Inicia sesión o crea tu cuenta gratis para formar parte de la comunidad de EducaPoker.