transaccional tablas sincronizar servidor replicar replicacion instalar herramientas duplicar datos bases sql mysql sqlite synchronization air

tablas - sincronizar bases de datos sql server



Sincronización de bases de datos (2)

Puedo pensar en un par de formas:

  1. Periódicamente, volca tu base de datos MySQL y crea una nueva base de datos SQLite del volcado. A continuación, puede servir a la base de datos SQLite (las bases de datos SQLite están contenidas en un solo archivo) para que el cliente de sus usuarios descargue y reemplace la base de datos actual.

  2. Cree un script diff que genere las declaraciones necesarias para actualizar la base de datos actual (varias instrucciones INSERT, UPDATE y DELETE). Para hacer esto, debe registrar el tiempo de cada cambio continuamente en su base de datos (la hora de creación y actualización para cada fila, y mantener un historial de filas eliminadas). El cliente del usuario descargará el archivo diff (un archivo de texto de varias declaraciones) y lo aplicará en la base de datos local.

Ambos enfoques tienen sus propios pros y contras: al eliminar toda la base de datos, se asegura de que se cumplan todos los datos. También es mucho más fácil que crear el diff, sin embargo, puede poner más carga en el servidor, dependiendo de la frecuencia con la que la base de datos se actualiza entre los volcados.

Por otro lado, la diferencia entre la base de datos le dará solo los datos que cambiaron (con suerte), pero está más abierta a errores lógicos. También generará una carga adicional en el cliente, ya que tendrá que crear / actualizar todos los registros necesarios en lugar de solo copiar un archivo.

Estoy desarrollando una aplicación Adobe AIR que almacena datos localmente usando una base de datos SQLite. En cualquier momento, quiero que el usuario final sincronice sus datos locales a una base de datos central de MySQL.

¿Alguna sugerencia, consejos para hacer esto bien? El rendimiento y la estabilidad son la clave (además de la seguridad;))


Si solo está sincronizando desde el servidor al cliente, la solución de Eran debería funcionar.

Si solo está sincronizando desde el cliente al servidor, simplemente inviértalo.

Si estás sincronizando en ambos sentidos, diviértete. Como mínimo, es probable que desee mantener los registros de cambios, y deberá descubrir cómo manejar los conflictos.