** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y Otros sistemas
  Mensajes nuevos Mensajes nuevos RSS - Sincronizar datos MySql Local a otro hosting
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoSincronizar datos MySql Local a otro hosting

 Responder Responder
Autor
Mensaje
MayerMayer1 Ver desplegable
Asiduo
Asiduo


Unido: 14/Diciembre/2010
Localización: España
Estado: Sin conexión
Puntos: 266
Enlace directo a este mensaje Tema: Sincronizar datos MySql Local a otro hosting
    Enviado: 10/Octubre/2013 a las 17:33
Buenas tardes.
Sabéis la posibilidad de sincronizar los datos en MySql de un servidor local a un servidor alojado en otro hosting (Nominalia). Es que me gustaría montar un MySql en un servidor local y que los datos se sincronicen en otro mysql de otro hosting, donde las tablas y campos serían idénticos.

El tema de sincronizarlo así es porque en el cliente donde tengo que montar el programa, hecho en access, hay muy mala conexión, y la base de datos está hecha en mysql alojada en un hosting externo.
Y lo de sincronizarlo a un MySql externo es porque lo quieren usar en otra sede distinta donde la conexión es muy buena.

En resumen, en la sede donde hay conexión mala que tiren de la BBDD local, y la otra sede donde la conexión es buena que tiren de la BBDD de Nominalia. Con los mismos datos claro, sincronizados

Donde tienen conexión buena no podemos acceder al servidor local puesto que no hay ip fija.
Y olvidaros de Dropbox y esas cosas, el cliente no quiere.

Espero haberme explicado Wacko

Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 13240
Enlace directo a este mensaje Enviado: 10/Octubre/2013 a las 22:36
A ver si lo he entendido...
Quieres que el sitio "malo" trabaje en local y el "bueno" en red.
Quieres que los datos estén sincronizados. O sea, que al introducir un dato en el "bueno" (red), este se replique en el "malo" (local). Y viceversa.
 
Si es así me parece que, te pongas como te pongas, el sistema malo siempre tendrá que estar conectándose a la red para sincronizarse... con el problema que no sabrá (de forma fácil) que es lo que tiene que sincronizar. Ello implicaría más consumo de recursos aun.
 
Si la sincronización solo fuera en un sentido (del "malo" hacia el "bueno") y esta no requiriera inmediatez, entonces la cosa es más factible.
 
Un saludo
 
Xavi, un minyó de Terrassa

Mi web
Arriba
guarracuco Ver desplegable
Moderador
Moderador


Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3239
Enlace directo a este mensaje Enviado: 10/Octubre/2013 a las 22:54
Pienso que la manera menos difícil, es que se trabaje conectado a local.
Pudieras tener en local una minirutina que compruebe si la IP ha cambiado.
De cambiar, se envía a una tablita en web el nuevo valor.

Del otro lado (buena conexión) comprueba cada cierto tiempo si cambia la IP, de hecho, se genera error de conexión al cambiar la IP.
Es cuando se toma de la web y se revincula nuevamente.
Esto me parece a mi mas sencillo que lidiar con sincronización, aunque tampoco sea tan sencillo como parece.
Arriba
MayerMayer1 Ver desplegable
Asiduo
Asiduo


Unido: 14/Diciembre/2010
Localización: España
Estado: Sin conexión
Puntos: 266
Enlace directo a este mensaje Enviado: 11/Octubre/2013 a las 09:04
En la buena, en principio, solo usarán la aplicación para consultar.

Por otro lado, no hace falta que la actualización del malo al bueno sea inmediata, se puede hacer la sincronización a una determinada hora , desconozco si se pude hacer con MySqlFront o algun gestor parecido, o con alguna tarea de windows.

Es que lo que quiero hacer es dificil.
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 13240
Enlace directo a este mensaje Enviado: 11/Octubre/2013 a las 09:20
Yo tengo un sistema parecido que vuelca los datos de un Access a un MySQL. Y utilizo un Access para eso.
 
Brevemente.
Escenario: un sistema Access que utilizan los usuarios para trabajar y una base de datos MySQL que se utiliza desde un SIG.
Una aplicación situada en el lado "Access" con todas las tablas vinculadas.
La aplicación siempre en marcha.
Una tabla que contiene todos los nombres de tablas a actualizar y el momento del último volcado.
Un formulario siempre abierto con un temporizador.
Ese temporizador evalúa la hora y, si es más allá de la 1 de la madrugada, lanza el proceso.
En mi caso el sistema no busca registros modificados: realiza un borrado de los datos del MySQL y un volcado de Access a MySQL.
Se hace así porque es un "apaño" sobre algo existente. Intentar implementar un sistema que lleve un log de los registros modificados era mucho más complicado que el sistema de volcado "bruto".
 
A ver si te sirve como idea.
 
Un saludo
 
Xavi, un minyó de Terrassa

Mi web
Arriba
MayerMayer1 Ver desplegable
Asiduo
Asiduo


Unido: 14/Diciembre/2010
Localización: España
Estado: Sin conexión
Puntos: 266
Enlace directo a este mensaje Enviado: 11/Octubre/2013 a las 10:35
Me vale como idea, lo intentaré implementar, a ver si soy capaz.

Muchas gracias.
Podemos cerrar.
Arriba
guarracuco Ver desplegable
Moderador
Moderador


Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3239
Enlace directo a este mensaje Enviado: 11/Octubre/2013 a las 13:49
Por si acaso te decides por actualizar,MySQL tiene una instrucción sql llamada replace que inserta si la clave del registro enviado no existe en destino o actualiza en caso de que exista.
Desde microsoft accede puedes crear una conexion a MySQL sin vincular,y ejecutar este tipo de comandos.
Oootra opción seria servicio web por medio de envio/recibir de datos por formularios web. Esto lo uso con buenos resultados.
Arriba
MayerMayer1 Ver desplegable
Asiduo
Asiduo


Unido: 14/Diciembre/2010
Localización: España
Estado: Sin conexión
Puntos: 266
Enlace directo a este mensaje Enviado: 12/Octubre/2013 a las 12:00
Guarracuco, tu idea también es buena, conocía la instrucción replace, lo que pasa que son formularios con muchos campos y opciones, y si cada vez que hago un cambio tengo que hacer un replace creo que iría muy lento.

Yo había pensado hacer algo parecido a lo que ha dicho Xavi, crearme un formulario y que éste formulario actualice los datos de un lado a otro, vaciando las tablas de uno y volviendo a volcar los datos del otro, por ejemplo. Lo malo de esto es que todas las tablas son autonumericos, y hacer que se borren los datos y volcarlos de nuevo se continuaría con el ultimo valor autonumerico, ahí tengo un problema. No sé si el REPLACE me solucionaría esto, en vez de hacer delete y insert para volcar datos.
Esta aplicación se lanzaría con una tarea de windows a una determinada hora.

Por cierto, ¿el servicio web como sería?.

Editado por MayerMayer1 - 12/Octubre/2013 a las 12:00
Arriba
guarracuco Ver desplegable
Moderador
Moderador


Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3239
Enlace directo a este mensaje Enviado: 12/Octubre/2013 a las 15:16
Yo uso una suerte casera de servicio web,enviando la sql con datos listos a una pagina activa PHP a través de un objeto webbrowser.
La php toma la cadena y se ejecuta en servidor. creo bucles de hasta mil registros ya que se puede colocar una fecha vieja si se desea actualizar datos anteriores.
Es decir en local las tablas tienen una columna fecha que se actualiza cuando editas el registro,mas fácil ahora que se pueden crear disparadores.Es cuándo replacehace su trabajo.
Arriba
guarracuco Ver desplegable
Moderador
Moderador


Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3239
Enlace directo a este mensaje Enviado: 12/Octubre/2013 a las 15:22
Si tienes un campo de fecha donde registre creación o modificación sera mucho mas sencillo la actualización de la remota ya que solo envías los registros encontrados a partir de.
Un procedimiento recorre las tablas que estan en una lista y forma la sql con registros,envía por post,espera se libere el objeto, para continuar con la siguiente.
Arriba
MayerMayer1 Ver desplegable
Asiduo
Asiduo


Unido: 14/Diciembre/2010
Localización: España
Estado: Sin conexión
Puntos: 266
Enlace directo a este mensaje Enviado: 12/Octubre/2013 a las 20:18
Esto último me costaría mucho más hacerlo.
Creo que me voy a decantar por hacer un .bat que se ejecute todas las noches en el servidor con una tarea, que lance un programita en access que vuelque los datos de nuevo, borrando e insertando de nuevo de un lado al otro.

Muchas gracias de todos modos de verdad, lo agradezco, me habéis dado ideas.
Thumbs Up
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable