2008-10-10 18 views

Odpowiedz

7

Słyszałem, że usługa replikacji danych dostarczona przez Db4O jest naprawdę dobra. To pozwala ci użyć Hibernate do powrotu na RDBMS - nie sądzę, żeby to wspierało JDBC (http://www.db4o.com/about/productinformation/drs/Default.aspx?AspxAutoDetectCookieSupport=1)

Istnieje projekt open source o nazwie Żonkil, ale nie zbadałem go w ogóle. (https://daffodilreplicator.dev.java.net/)

Ten Jestem obecnie rozważa wykorzystanie nazywa SymmetricDS (http://symmetricds.sourceforge.net/)

Są inni, każdy z nich zrobić to nieco inaczej. Niektóre wyzwalacze użycia, niektóre ankiety, inne przechwytują sterowniki JDBC. Musisz zdecydować, jakie techniczne ograniczenia jesteś w celu ustalenia, który naprawdę chcesz używać.

Wikipedia dostarcza ładnego przeglądu różnych technik (http://en.wikipedia.org/wiki/Multi-master_replication), a także zapewnia łącze do innego alternatywnego programu DBReplicator (http://dbreplicator.org/).

2

Jeśli masz model i warstwę DAO istniejącą już dla Twojej bazy kodów, możesz po prostu utworzyć własną strukturę synchronizacji, nie jest to trudne.

Kopiowanie danych jest tak proste, jak:

  1. odczytu obiektu z bazy bazie metadanych
  2. remove (UUID, etc)
  3. insert do bazy B

Synchronizacja ma jedne poziom wiedzy o tym, co zostało już zsynchronizowane. Możesz to zrobić w czasie wykonywania, pobierając listę uuidów z TableInA i TableInB i ustalając, które wpisy są nowe, lub możesz mieć tabelę elementów, które muszą być zsynchronizowane (wypełnij wyzwalaczem po wstawieniu/aktualizacji w TableInA) i uciekaj od tego. Twoje narzędzie może być funkcją TimerTask, więc bazy danych są synchronizowane w żądanym czasie.

Jednak istnieje prawdopodobnie pewne narzędzie, które działa bez żadnego z tych problemów, a każda implementacja byłaby inna w zależności od potrzeb biznesowych. Ponadto na poziomie bazy danych będą dostępne narzędzia do replikacji.

+0

Dzięki za rozważną odpowiedź. Mam w tej chwili własną strategię synchronizacji i chcę zastąpić ją bardziej ogólną. –

2

Prawdziwa synchronizacja wymaga pewnych danych, które mam nadzieję, że twój schemat bazy danych ma (możesz przeczytać dokument SyncML, aby zobaczyć, jak postępują). Sync4J niewiele ci pomoże, jest naprawdę zorientowany na wysoki poziom i XML. Jeśli nie przewidzisz żadnych konfliktów (co oznacza: naprawdę łatwa synchronizacja), możesz wypróbować lekki ETL, taki jak Enhydra Octopus.

0

mam głównie przy użyciu Oracle w tej chwili, a najbardziej w pełni funkcjonalny trasa Natknąłem jest danych czerwona brama Porównajmy:

http://www.red-gate.com/products/oracle-development/data-compare-for-oracle/

Ten stary blog daje dobre streszczeniem trasy rozwiązanie dostępne:

http://www.novell.com/coolsolutions/feature/17995.html

JDBC specyficzne ofiary natknąłem były bardzo proste. Rozwiązanie wspomniane przez Aidos cecha wydaje się najbardziej kompletny, jeśli chcesz iść w dół publikowania-subskrybowania trasę:

http://symmetricds.codehaus.org/

nadzieję, że to pomaga.

Powiązane problemy