Sincronizar tablas de diferentes bases de datos

Hola estimados amigos del foro!

Estoy comenzando con Java Web (JSF + Primefaces 5.4 + Glassfish + Hibernate), y para aprender más rápido me propuse realizar un sencillo sistema de reclamos para mi empresa.

El sistema que se utiliza es de un tercero y accede a datos almacenados en una base de datos Informix desde una aplicación de escritorio.

Mi idea es desarrollar el mío con MySQL (eventualmente PostgreSQL porque es un residual de Informix y sus SQL's son casi idénticos).

El problema surge porque tengo que acceder desde mi sistema a un par de tablas de Informix ( Clientes y Suministros ), para obtener nombres y ubicaciones, y luego almacenar estos datos en una tabla de reclamos. Hasta acá no se ve el problema, porque podría hacer mi sistema con Informix y acceder directamente a la base de datos principal y almacenar los datos en otra base de datos de Informix.

Pero, y acá está el problema, desde las 20:30 hasta las 04:00 el Informix está bloqueado por tareas de backup y exportación de archivos para copias de seguridad, y la guardia que atendería los reclamos está trabajando las 24 horas.

Por lo tanto, necesito que los datos de las 2 tablas de Informix que mencioné, estén disponibles en todo momento, y esto me obligaría a tener una copia de los datos de cada una de ellas en MySQL.

Es por esto que necesitaría que me expliquen en la medida de sus posibilidades, lo siguiente:
1 - ¿Cómo crear una conexión Informix y otra para MySQL?
2 - ¿Cómo crear un proceso automático en Java para que sincronice las tablas?
3 - El método más efectivo para sincronizarlas ya que los datos de Informix se actualizan de tanto en tanto.
4 - ¿Cómo invoco a una u otra conexión de base de datos?

Espero haber sido claro en la exposición de mis necesidades.

Desde ya, agradezco el tiempo dispensado por ustedes para la lectura de mi post.

Saludos!

Gustavo Echenique

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Divide

Bueno creo que una aproximación o idea para tu proyecto es que crees 2 proyectos, uno donde expongas tu base de datos de informix mediante una API REST y otro donde lo consumas y después hagas lo que quieras con la información, de esa forma evitas tener que manejar 2 bases de datos simultaneamente a bajo nivel y podras enfocar los esfuerzos en el primero a optimizar las consultas y en el segundo a consumir y almacenar mejor la información, puedes ahorrarte bastante trabajo utilizando Spring por sus RestControllers y los CrudRepository.