2009-09-14 37 views
5

Quiero crear un proyecto en el que se requiera sincronizar la base de datos local con la base de datos remota. Los cambios realizados en la base de datos local deben reflejarse en la base de datos remota. Esto debe hacerse sincrónicamente. Tengo una aplicación que realiza operaciones CRUD en una base de datos local escrita en java/jpa. La sincronización debe desencadenarse desde el código java. Pensé en desencadenantes en cada tabla de base de datos que mantendrán los cambios en la base de datos local. Pero dudo que sea seguro o no. Después de buscar en Google descubrí que la base de datos lite oráculo es la mejor para sincronizar dos bases de datos, pero necesito comenzar rápidamente. El sistema operativo que estoy usando es Windows Xp. El tamaño de la base de datos es de alrededor de 2 gb.¿Cómo sincronizo dos bases de datos Oracle?

Hice el hilo creado para lograr lo mismo en java pero de suggetion reinicié el mismo hilo en el contexto de la base de datos.

+0

¿Cuál es el objetivo de sincronizar la base de datos? ¿La base de datos remota debe ser de solo lectura? Si es así, DataGuard es una opción. –

Respuesta

5

Antes que nada, le sugiero que reconsidere su diseño. La forma más sencilla de volver a contar sus datos es a través de vistas as suggested in this SO. Podría crear un ENLACE DE BASE DE DATOS entre sus dos DB y crear vistas en el sitio remoto que consultaría la base de datos local. Esta sería la forma más sencilla de tener sincronización en tiempo real (menos código, menos mantenimiento).

Si realmente desea replicar sus datos de forma síncrona, debe leer Replication Guide. Puedes ir con vistas materializadas. Tendrá que definir materialized view logs en sus tablas en su sitio maestro. En el sitio remoto, creará ON COMMIT REFRESH materialized views.

+0

Pregunta, ¿necesitamos tener Enterprise para esto? – Worthy7

1

He estado reflexionando sobre este problema durante unos días, ya que tenemos que hacer el desarrollo en paralelo con QA ejecutar sus pruebas. Tenemos dos instancias separadas de Oracle, pero mantenerlas sincronizadas manualmente habría sido un gran dolor. No soy un DBA, así que solo mirando las réplicas me hizo huir asustada.

En su lugar, activé Navicat para Oracle y (ab) utilicé la función de Transferencia de datos - hace que mantener dos esquemas en bases de datos físicamente separadas se sincronicen de forma bastante sencilla. ¡Una herramienta bastante útil! (No trabajo para ellos, al igual que su herramienta.)

1

Lo que te refieres se llama replicación. La sincronización es algo diferente.

Si tiene múltiples dispositivos con un requisito de subconjunto de datos, por ejemplo, un vendedor de la región solo necesita datos que reflejen el área que atiende, entonces Oracle Database Lite Mobile Server es lo que está buscando. Básicamente, tiene una base de datos central de Oracle y desea que se envíen algunos datos al cliente. Ese cliente hará actualizaciones/inserciones/eliminaciones en el dispositivo y luego se sincronizarán. Se enviará nueva información en el servidor a su dispositivo mientras sus cambios serán cargados en el servidor. Necesitará resolución de conflictos (el servidor/cliente gana ... Oracle Mobile Server también permite la resolución de conflictos personalizada). Oracle Mobile Server también se utiliza para aprovisionar su Software de Aplicación y Administrar Dispositivos de forma remota. La herramienta está diseñada para que solo requiera un DBA central. Las máquinas remotas no requieren ningún tipo de actividades de DBA.

Cuestiones relacionadas