2010-11-02 26 views
6

HI tutti, ho una domanda se ho un computer in esecuzione sqlite, e voglio fare sqlite sincronizzare il server Mysql nella rete esterna. Se i dati in sqlite sono stati (modificati/modificati), come posso sincronizzare il mio DB MYSQL e sqlite in modo che i dati in sqlite siano (modificati/modificati) quando i dati nel DB MYSQL vengono modificati/modificati?come sincronizzare sqlite a Mysql

grazie a tutti.

+0

La sincronizzazione del database è un'area molto complessa e ampia. Esistono numerose tecniche e strumenti, che implicano tutti compromessi di un tipo o dell'altro. In breve, non c'è una risposta breve a questo, specialmente tra diversi motori di database. –

risposta

4

Si può provare greplicator

geplicator è una soluzione in tempo reale progettato per replicare i dati da MySQL database a qualsiasi altro database relazionale , come Oracle, Microsoft SQL Server, IBM DB2 UDB e MySQL.

+0

Il link a greplicator è morto. Hai un nuovo link? – hriziya

2

Ho un problema simile di sincronizzazione a 2 vie tra un DB sqlite Android e un DB MySql centrale. Il problema arriva davvero quando gli inserimenti sono fatti, perché ammette la possibilità di chiavi primarie replicate.

Ho creato un sistema un po 'indietro che utilizzava chiavi primarie GUID hardware e basate sul tempo invece di chiavi primarie semplici e monotonicamente crescenti. La teoria è che se i nuovi record vengono inseriti sul telefono usando sqlite, o nel server centrale usando mysql, le chiavi non entreranno mai in conflitto perché sono globalmente uniche.

Sfortunatamente, questo significa che si è entrati nella gestione delle chiavi primarie invece di prendere solo quella automatica che viene fornita con entrambi i motori DB. Ma in teoria questo approccio consente di combinare facilmente i dati di molti telefoni diversi nel database centrale e di ridistribuirli a tutti i telefoni. Sto considerando questo approccio per il mio problema con Android, anche se spero ancora di trovare una soluzione già predisposta.

+2

Follow-up: Ho realizzato un'implementazione chiave guid su Android e una complementare sul servizio web usando django e python. Creo le mie chiavi dall'ID Android e una combinazione di System.currentTimeMillis() e System.nanoTime(). Mentre i tasti risultanti non sono sequenziali, almeno sono monotoni, che spero possano migliorare il clustering. I guids hanno questo aspetto: 'A000002276D37D-01339e06f7ab-5be854e'. Il 1 ° bit è l'ID Android, 2 ° è currentTimeMillis, 3 ° è l'ultimo 7 cifre esadecimali di nanoTime. Io uso anche un 'lastGuid' statico per assicurarmi di non ripetere mai un id. – joecascio