2010-11-02 15 views
6

HI everybody, Mam pytanie jeśli mam uruchomić komputer sqlite, i chcę, aby sqlite zsynchronizować serwer Mysql w sieci zewnętrznej. Jeśli dane w sqlite zostały (zmienione/zmodyfikowane), w jaki sposób mogę zsynchronizować moje MYSQL DB i sqlite tak, aby dane w sqlite będą (zmieniane/modyfikowane), kiedy dane w MYSQL DB zostaną zmienione/zmodyfikowane?jak zsynchronizować sqlite do Mysql

dziękuję wszystkim.

+0

Synchronizacja baz danych to bardzo złożony i szeroki obszar. Istnieje wiele technik i narzędzi, z których wszystkie wiążą się z takimi lub innymi kompromisami. Krótko mówiąc, nie ma na to krótkiej odpowiedzi, szczególnie w przypadku różnych silników baz danych. –

Odpowiedz

4

Można spróbować greplicator

geplicator to rozwiązanie w czasie rzeczywistym zaprojektowany do replikacji danych z MySQL bazy danych do innych relacyjnych bazy danych, takich jak Oracle, Microsoft SQL Server, IBM DB2 UDB i MySQL.

+0

Link do greplicator jest martwy. Czy masz nowy link? – hriziya

2

Mam podobny problem z dwukierunkową synchronizacją między bazą danych SQL sqlite systemu Android a centralną bazą danych MySql. Problem pojawia się, gdy wkładki są tworzone, ponieważ dopuszcza możliwość replikacji kluczy podstawowych.

Zbudowałem system z powrotem, który wykorzystywał podstawowe klucze sprzętowe i czasowe GUID zamiast prostych, monotonicznie rosnących kluczy podstawowych. Teoria jest taka, że ​​jeśli nowe rekordy są wstawiane albo na słuchawce przy użyciu sqlite, albo na centralnym serwerze przy użyciu mysql, klucze nigdy nie będą sprzeczne, ponieważ są globalnie unikalne.

Niestety, oznacza to, że korzystasz z podstawowej działalności związanej z zarządzaniem kluczami, a nie tylko z automatu dostarczanego z obydwoma silnikami DB. Ale w teorii podejście to umożliwia łatwe łączenie danych z wielu różnych aparatów w centralnej bazie danych i ponowne ich rozpowszechnianie na wszystkich słuchawkach. Rozważam to podejście do mojego problemu z Androidem, chociaż wciąż mam nadzieję znaleźć rozwiązanie już tam opracowane.

+2

Kontynuacja: Zbudowałem implementację klucza GUID na Androida i uzupełniającą implementację w usłudze internetowej przy użyciu django i Pythona. Tworzę własne klucze z Android ID i kombinacji System.currentTimeMillis() i System.nanoTime(). Mimo że klucze wynikowe nie są sekwencyjne, przynajmniej są monotoniczne, co, mam nadzieję, poprawi tworzenie klastrów. Przewodniki wyglądają następująco: 'A000002276D37D-01339e06f7ab-5be854e'. Pierwszy bit to identyfikator Androida, drugi to currentTimeMillis, trzeci to 7 cyfr szesnastkowych nanoTime. Używam również statycznego "lastGuid", aby upewnić się, że nigdy nie powtórzę identyfikatora. – joecascio

Powiązane problemy