2008-10-10 8 views

Respuesta

7

He oído que el servicio de replicación de datos proporcionado por Db4O es realmente bueno. Le permite usar Hibernate para volver a un RDBMS - No creo que admita JDBC aunque (http://www.db4o.com/about/productinformation/drs/Default.aspx?AspxAutoDetectCookieSupport=1)

Existe un proyecto de código abierto llamado Narciso, pero no lo he investigado en absoluto. (https://daffodilreplicator.dev.java.net/)

la que actualmente estoy pensando en utilizar se llama SymmetricDS (http://symmetricds.sourceforge.net/)

Hay otros, cada uno de ellos lo hacen de forma ligeramente diferente. Algunos utilizan desencadenantes, algunos sondeos, otros usan interceptación de controladores JDBC. Debe decidir en qué limitaciones técnicas se encuentra para determinar cuál quiere realmente usar.

Wikipedia proporciona una visión general agradable de las diferentes técnicas (http://en.wikipedia.org/wiki/Multi-master_replication) y también proporciona un enlace a otro DBReplicador alternativo (http://dbreplicator.org/).

2

Si ya tiene un modelo y una capa DAO para su base de código, puede crear su propio marco de sincronización, no es difícil.

Copia de datos es tan simple como:

  1. leer un objeto de base de datos A metadatos base de datos
  2. remove (UUID, etc)
  3. inserción en la base de datos B

Syncing tiene algunos nivel de conocimiento sobre lo que ya se ha sincronizado. Puede hacerlo en tiempo de ejecución obteniendo una lista de elementos de TableInA y TableInB y determinando qué entradas son nuevas, o puede tener una tabla de elementos que necesitan sincronizarse (rellenar con un desencadenador al insertar/actualizar en TableInA) , y huye de eso. Su herramienta puede ser un TimerTask para que las bases de datos se mantengan sincronizadas en la granularidad de tiempo que desee.

Sin embargo, probablemente exista alguna herramienta que lo haga todo sin este faff de implementación, y cada implementación sería diferente en función de las necesidades del negocio. Además, en el nivel de la base de datos habrá herramientas de replicación.

+0

Gracias por la respuesta reflexiva. Tengo una estrategia de sincronización para ti mismo en este momento y estoy buscando reemplazarla por algo más genérico. –

2

La verdadera sincronización requiere algunos datos que espero que tenga su esquema de base de datos (puede leer el documento SyncML para ver cómo proceden). Sync4J no te ayudará mucho, es realmente de alto nivel y está orientado a XML. Si no prevé ningún conflicto (lo que significa: sincronización realmente fácil), puede probar con un ETL ligero como Enhydra Octopus.

0

estoy usando principalmente Oracle en el momento y la ruta más con todas las funciones que he encontrado es de Datos de Red Gate Compare:

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

Este antiguo blog da un buen resumen de la rutas de soluciones disponibles: ofertas

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

El JDBC-específicas que he encontrado han sido muy básico. La solución mencionada por Aidos parece el más completo de características si quiere ir por la ruta de publicación-suscripción:

http://symmetricds.codehaus.org/

Espero que esto ayude.

Cuestiones relacionadas