Una pregunta grande que no se tuvieron en cuenta si es de aplicación A necesita acceso de sólo lectura a los datos o si tiene que ser de lectura y escritura.
El concepto inmediata que viene a la mente al leer sus requisitos es sharding. En MySQL, esto se puede lograr con partitioning. Dicho esto, antes de saltar a las particiones, asegúrese de leer en su pros and cons. Hay instancias en las que el particionamiento puede ralentizar las cosas si sus índices no están bien elegidos, o su esquema de partición no está bien pensado.
Si sus necesidades son de solo lectura, entonces esta debería ser una solución bastante simple. Puede usar MySQL en un contexto maestro-esclavo y usar la aplicación A de un esclavo. Si necesita leer-escribir, esto se vuelve mucho más complejo.
Dependiendo de sus necesidades de escritura, puede dividir sus lecturas en su esclavo y sus grabaciones en el maestro, pero eso agrega complejidad a la estructura de su código (necesita lidiar con múltiples conexiones a múltiples dbs). La ventaja de este tipo de diseño es que no necesita tener una infraestructura de BD compleja.
Por otro lado, puede mantener su código como está, y utilizar una replicación Master-Master en MySQL.Aunque oficialmente no es compatible con Oracle, mucha gente ha tenido éxito en esto. Una búsqueda rápida en Google le encontrará una gran lista de blogs, howtos, etc. Solo tenga en cuenta que su código debe estar escrito correctamente para soportar esto (por ejemplo, no puede usar campos de auto incremento para PKs, etc.).
Si tiene efectivo para gastar, entonces puede ver algunas de las ofertas más comerciales. Oracle DB y SQL Server lo admiten.
También puede usar la replicación de datos basada en bloques, como DRDB(and Mysql DRDB) para manejar la replicación entre los nodos, pero el problema que siempre encontrará es qué sucede si falla el enlace entre los dos nodos.
El problema más importante que encontrará es cómo manejar las actualizaciones conflictivas en 2 nodos DB diferentes. Si sus datos son geográficamente dependientes, puede que esto no sea un problema para usted.
En resumen, este no es un problema fácil (o económico) de resolver.
Hola, un requisito nuevo es que necesito recuperar datos de varias fuentes, ¿es posible usar la replicación de la base de datos? Gracias –
@MickaelMarrache: ¿Han mirado lo que la replicación puede hacer por usted? La respuesta a su pregunta será clara ... "quizás": -o – krlmlr