2009-10-23 10 views
18

Sé que las particiones horizontales ... puede crear muchas tablas.Cómo particionar Mysql en MÚLTIPLES SERVIDORES?

¿Cómo se puede hacer esto con varios servidores? Esto permitirá que Mysql escale.

Crear tablas X en servidores X?

¿Alguien quiere explicar o tener un buen tutorial para principiantes (paso a paso) que le enseñe cómo particionar en varios servidores?

+2

Sería bueno si las personas dejaran un comentario cuando presionen "cerrar". En mi humilde opinión, esta pregunta es más que adecuada para Stackoverlow. – Till

Respuesta

23

Con MySQL, la gente generalmente hace lo que se llama aplicación basada sharding.

En pocas palabras, tendrá la misma base de datos estructura en múltiples servidores de bases de datos. Pero no contendrá la misma información.

Así, por ejemplo:

Users 1 - 10000: server A 
Users 10001 - 20000: server B 

Sharding (por supuesto) no es una técnica de copia de seguridad, que está destinado a distribuir lee y escribe en un clúster.

Las técnicas empleadas para shard son el MySQL-Proxy, por ejemplo. Esto no es nada de lo que HScale inventó, es más o menos una simple secuencia de comandos LUA que distribuye lecturas y escrituras en diferentes servidores backend. Debería haber muchos ejemplos en MySQL forge.

Otra herramienta (basada en MySQL Proxy) es SpockProxy. Completamente adaptado a sharding. También se libraron de Lua, y trabajaron en varias cosas para hacerlo más rápido que el proxy. Hasta ahora, solo he probado SpockProxy, pero nunca lo ejecuté en producción.

Ahora, aparte de esos proxies, también puede fragmentarse usted mismo. Se requiere una tabla maestra, por ejemplo:

------------------- 
| userA | server1 | 
| userB | server2 | 
| userC | server1 | 
------------------- 

Luego construya sus lecturas y escrituras hacia el servidor. No es muy bonito, pero eso funciona. El siguiente obstáculo sería hacer que tolatera más bien. Entonces, por ejemplo, , server2 y server3 cada uno debe ser un pequeño grupo.

Y por último pero no menos importante, otro enfoque interesante para los datos y los índices de particiones en todos los servidores es IDDB de Digg.No estoy seguro de si alguna vez lanzaron su código, pero sus publicaciones de blog brindan grandes detalles sobre lo que hace.

¡Avíseme si esto es útil!

0

Aquí lo que está escrito en el anunciar de HSCALE 0,1:

En este momento tenemos que acaba de separarse mesas enormes pero más adelante queremos distribuir las particiones a través de múltiples instancias del servidor MySQL para tener verdadera escala horizontal horizontal. La parte más difícil se desarrollan las transacciones donde tenemos que utilizar distribuidos transacciones (Xa) o no permitir transacciones que implican particiones en anfitriones diferentes ...

Tenga una mirada en este proyecto: http://sourceforge.net/projects/hscale/ tal vez será adecuado para usted.

4

Pero debe tener en cuenta que si por alguna razón desea llevar esta solución a la nube y convertirla en multicliente, la configuración anterior puede ser más complicada. Piense en esto -

  1. se registra en el sistema y la base de datos es seleccionado (de intercambio DB) basado en la tabla organización por el usuario
  2. Esta sería la nueva tabla Maestro que está hablando ahora con su propio esclavos
  3. Pero el punto 2 anterior también necesita fragmentación ahora ya que desea asegurarse de que su escala no se convierta en un cuello de botella.

Así que ahora la pregunta es que probablemente deba pensar cómo se puede hacer esta fusión en un entorno de esclavo-mster donde los esclavos suelen leer y los maestros para escribir.

¡salud! Gary

Cuestiones relacionadas