Jump to content

duda al igualar bases de datos


Recommended Posts

tengo 1 servidor con mysql en forma remota y tengo un PC

 

habia desarrollado una aplicacion en visual basic net y guarda los datos en el servidor todo OK

 

pero en el local donde trabaja mi aplicacion se cae constantemente el internet lo que conlleva a que se queden sin sistema por mucho rato y muchas veces en la semana (por lo cual el objetivo de que la aplicacion este funcionando no se cumple)

 

 

se me ocurrio instalar la base de datos en forma local (en el PC) entonces cuando se cae internet que guarde toda la informacion en la base de datos local y cuando vuelva la coneccion, toda la data guardada en el pc local sea transferida en la base de datos del servidor.

 

se me habia ocurrido simplemente ir recorriendo la base de datos local y buscar dicho dato en el servidor y si no lo encuentra que lo grabe, asi va quedando respaldado "PERO" eso llevaria a saturar mucho mi server

 

entonces mi pregunta es.

 

lo hago como lo tengo planeado nomas

 

o existe alguna sentencia SQL o algo que me permita comparar la base de datos completa (todas mis tablas) y que se igualen ???? ya sea que de la base de datos en el servidor me copie datos a mi base local y viceversa esto con el fin de que si se cae el internet tenga mi base actualizada en todo momento ?????

 

 

ojala se entienda mi problematica y me puedan ayudar con alguna idea

Link to comment
Share on other sites

Creo que lo más fácil sería que repliques la información(http://dev.mysql.com/doc/refman/5.0/en/replication.html). Otra solución es crear un dump en el PC, luego mover este a tu server y cargarlo en la base de datos.

De todas formas creo que el diseño que diste a la solución está algo cojo, no me queda clara la necesidad de tener 2 servidores online y más aún, tener que manejar la consistencia de las bases de datos manualmente.

 

Saludos

Link to comment
Share on other sites

lei tu problema amigo, y creo que te estas "dando por vencido" al problema real, el cual es la internet en tu server... no veo que duplicar la base de datos continuamente sea la solucion.

 

personalmente creo que debes pedir a tu proveedor de internet que arregle el problema. y fin del problema.

 

pero si no tienes las ganas hay 2 opciones instalando un servidor php:

 

1.- si el servidor php instalado tiene phpmyadmin, exporta tu bd y la importas en el server local.

 

2.- recorres la base de datos con php y la guardas en una suerte de archivo formateado como un excel, access, csv, sql, etc.. o simplemente formatear en archivo de texto con strings, o caracteres escapados, como tab, new line u otros... ergo lees el archivo tambien con php e ingresas los datos a la bd en el servidor local

 

 

Saludos

:adios:

Link to comment
Share on other sites

No especificas que bases de datos usas, pero si es SQL server, puedes usar las herramientas de sincronización para hacerlo. Claro que si dices que el problema es la conectividad de internet, a menos que hagas un movimiento directo de los datos, cualquier cosa que intentes hacer remotamente corre el riesgo de que falle.

 

http://technet.microsoft.com/en-us/sqlserver/dd407782.aspx

Edited by The Duke of Quakem
Link to comment
Share on other sites

Sí, existe y no sólo en Sql Server, si no en todos los sistemas informáticos.

 

Busca por MERGE.

Ejemplo: http://msdn.microsoft.com/es-es/library/bb510625.aspx

 

está lleno en internet, slds!

 

Edito para añadir que concuerdo con cañangasñangas, tu proveedor debe solucionar el problema del internet, sin embargo, te recomiendo generar un script todos los días y hacer un backup si la conexión se pierde.

 

Instalarla local no es el problema, podrías hacer un MERGE todas las noches en base a un script de actualización, preguntando antes obviamente de que haya conexión con el servidor remoto.

 

Edited by RALCN
Link to comment
Share on other sites

gracias a todos por sus respuestas, el tema es que si se corta la luz (se cae el internet ni idea pk pero se cae) obviamente tienen una UPS que soporta el PC, router, cable/modem del ISP

 

sino es la electricidad es el servicio propio del iSP

 

 

lo otro es que es un poco complicado explicarle al usuario como hacer un dump cada vez que haya que actualizar la base de datos, por eso preguntaba para poder implementar la solucion en la aplicacion asi cada vez que abran la aplicacion (o presionen algun boton que les programe) automaticamente iguale las bases de datos (este sistema lo tienen los supermercados UNIMARC, cuando no hay coneccion las ventas se almacenan en la base de datos local que tienen y cuando la coneccion vuelve, la bd se replica al server)

 

yo no estoy a cargo de nada, solo les hice la aplicacion y ahora me piden que intente solucionar ese problema que tienen con la conectividad en la cual obvio yo no puedo disponer de si el ISP o la compañia de electricidad van a estar dando el servicio siempre

por eso la idea de cada vez que pase hacer un dump no es lo optimo para este caso

 

vere lo que indican sobre MERGE, gracias por las sugerencias

 

 

Link to comment
Share on other sites

gracias a todos por sus respuestas, el tema es que si se corta la luz (se cae el internet ni idea pk pero se cae) obviamente tienen una UPS que soporta el PC, router, cable/modem del ISP

 

sino es la electricidad es el servicio propio del iSP

 

 

lo otro es que es un poco complicado explicarle al usuario como hacer un dump cada vez que haya que actualizar la base de datos, por eso preguntaba para poder implementar la solucion en la aplicacion asi cada vez que abran la aplicacion (o presionen algun boton que les programe) automaticamente iguale las bases de datos (este sistema lo tienen los supermercados UNIMARC, cuando no hay coneccion las ventas se almacenan en la base de datos local que tienen y cuando la coneccion vuelve, la bd se replica al server)

 

yo no estoy a cargo de nada, solo les hice la aplicacion y ahora me piden que intente solucionar ese problema que tienen con la conectividad en la cual obvio yo no puedo disponer de si el ISP o la compañia de electricidad van a estar dando el servicio siempre

por eso la idea de cada vez que pase hacer un dump no es lo optimo para este caso

 

vere lo que indican sobre MERGE, gracias por las sugerencias

 

 

 

cumpa a lo que voy yo, es que si tu "servidor" tiene problmas electricos, donde se corta el suministro electrico y por ende se pierde conexion a internet, tu servidor pierde toda cualidad de servidor, y es por eso que te digo que deberias arreglar los problemas de raiz o cambiar de localidad el servidor para dejar de tener problemas.

 

en cuanto a una herramientas para hacer lo que pides, con php lo puedes lograr facilmente con un script no muy engorroso ni largo, ahora si no logras crear uno, yo te podria ayudar..

Link to comment
Share on other sites

El problema real, es que estás tratando de resolver con tu aplicación, algo que ni siquiera es culpa de ella, es bueno tener controlado el tema de las caídas y todo eso, pero hasta cierto punto, el solo hecho de instalar en cada PC un mysql propio, ya lo convierte en una locura.

Link to comment
Share on other sites

yo no estoy a cargo de nada, solo les hice la aplicacion y ahora me piden que intente solucionar ese problema que tienen con la conectividad en la cual obvio yo no puedo disponer de si el ISP o la compañia de electricidad van a estar dando el servicio siempre

 

 

Como es que decia la cancion? Ese muerto no lo cargo yo.

 

Ese problema es del cliente, no suyo. Ellos deberían velar por la estabilidad de sus sistemas informáticos y no ud, como tercero hacerles la pega.

 

Mi opinion profesional es que les diga que ellos deberían hacer y no ponerse a resolverles el problema, ya que el único que va a quedar mal ahí es ud.

 

Claro, podrías hacer algo como lo que pides, pero mientras sigan teniendo esa inestabilidad, el sistema no va a operar como debe, y de cualquier forma lo van a tildar de "chanta".

Edited by The Duke of Quakem
Link to comment
Share on other sites

Hola! I'm back... :tonto:

 

Bueno... La solución MERGE no sirve como única herramienta... Más bien es un INSERT/UPDATE/DELETE todo en uno...

 

Si estás desarrollando la aplicación en WebForms... http://stephenwalther.com/archive/2011/01/12/asp-net-and-html5-local-storage tendrías que usar HTML5 (http://stackoverflow.com/questions/1744522/best-way-to-synchronize-local-html5-db-websql-storage-sqlite-with-a-server-2) para tener un repositorio de datos (base de datos) local en el cliente... Si estás usando WinForms tienes mejores posibilidades...

 

La idea es que la aplicación grabe los datos directamente a la base de datos local (http://msdn.microsoft.com/en-us/library/ms171890.aspx), luego, la misma aplicación o una aplicación o servicio de windows que se ejecute periódicamente enviará los datos al servidor central... Cuando envíe los datos (reciba una respuesta afirmativa desde el servidor) entonces se borran los datos de la base de datos local... Obviamente, tienes que controlar muy bien las excepciones y la duplicación de datos (si tu base de datos tiene integridad, entonces no tendrás mayor problema).

 

Otra solución http://msdn.microsoft.com/en-us/library/vstudio/cc714038(v=vs.100).aspx

 

Mi opinión "profesional" es que sí vale la pena mejorar tu sistema, siempre y cuando hayan lukas de por medio por ese arreglo... Como dicen más arriba, no es tu culpa la inestabilidad de internet... Si la aplicación la desarrollaste (y te pidieron desarrollarla) bajo el supuesto que la conexión eléctrica y de internet eran estables, entonces, este arreglo tienes que cobrarlo...

 

Suerte!

Edited by Ra
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...