En este articulo vamos a hablar sobre las opciones que tenemos al momento de querer sincronizar dos bases de datos en diferentes servidores y hablaremos un poco sobre mi situación especial en la que también podrías encontrarte.
Antes de iniciar debo aclarar que solo hablaremos sobre las distintas opciones que existen y no entraremos a detalle sobre ninguna de las opciones. Antes que nada les comento un poco la situación..
El proyecto en el que estaba metido era en un lugar donde la conexión a Internet no era confiable y tenia fallas en la señal.
Desarrollamos un software el cual sería utilizado por varias personas y donde la información se almacenaría en un servidor local. Dadas las circunstancias en este punto no hay mucho problema, la conexion a la base de datos local, mysql por cierto, no debería de tener problemas si no hay Internet.
Otro detalle es que también se desarrollaría una plataforma web desde la cual los dueños de la empresa deben de monitoriar la información en todo momento y desde cualquier lugar.
Se contrato un hospedaje web en Internet para dicha plataforma por lo que ahora la situación era como sincronizar la base de datos local con la base de datos remota de la cual se alimenta la plataforma web.
No podiamos trabajar directamente con la base de datos remota pues el Internet no era de fiar y la velocidad en la operación era un punto critico.
Por tal motivo se decidio trabajar el software en la empresa de forma local y trabajar en alguna solución para sincronizar la base de datos local con la remota sin afectar el proceso interno.
OPCIONES DISPONIBLES
La primera opción que encontramos fue por supuesto Mysql Replication.
Sin embargo tuvimos que dejar esta opción debido a que para este metodo se necesita realizar diversas configuraciones en ambos servidores y teniendo contratado un hosting compartido es imposible realizar esto.
Otra opción era contratar un servidor dedicado pero el costo era prohibitivo para y se considero para una última opción.
Una alternativa era realizar respaldos en la base de datos local y subirlos al servidor remoto cada cierto tiempo pero rapidamente lo desechamos pues conforme el sistema creciera también lo harían los problemas.
LA SOLUCIÓN
Teniendo en cuenta las posibles soluciones y los requerimientos especiales de la situación de nuestro cliente nos topamos con la siguiente solución basada en dos aspectos.
[Parte 1] Ir guardando todas las instrucciones SQL relacionadas a modificaciones como Insert, Update, Delete en una tabla dedicada a conservar estos textos y con un campo para saber si ya se ha sincronizado con el servidor o no.
[Parte 2] Crear un script para consultar los queries sin sincronizar y ejecutarlas en la base de datos remota.
[Parte 3] Programar un cron para que cada x tiempo ejecute el script en el servidor local.
Y listo! Con esto logramos sincronizar dos bases de datos en diferentes servidores fácilmente y conforme a los requerimintos de la situación de nuestro cliente.
Además de todo sin alentar el proceso de uso del software en las instalaciones donde en ocasiones el Internet es lento o falla.
Espero y esta situación les sea de utilidad a alguién con los mismos problemas donde no puedes utilizar la replicación propia de Mysql.
Te esperamos en los siguientes artículos en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.
Yo tengo exactamente ese problema, y me han dado una gran opcion de solucion, muchas gracias
Hola, muchas gracias por leernos esperamos seguir generando contenido de ayuda e interes, saludos.