domingo, 24 de abril de 2016

Recursos MySQL según necesidades y la replicación

      Debido a que cada aplicación tiene diferentes necesidades de funcionamiento y disponibilidad, MySQL ofrece una gama de soluciones certificadas y compatibles, la entrega de los niveles apropiados de alta disponibilidad y la escalabilidad para satisfacer los requisitos de nivel de servicio. Este tipo de soluciones se extiende desde la replicación, a través de la virtualización, y las soluciones de multi-centros de datos geográficamente redundantes que ofrecen un 99,999 % de disponibilidad.
   
      La selección de la solución adecuada para cada aplicación depende en gran medida de:

- El nivel de disponibilidad requerido.

- El tipo de aplicación que se esta desplegando.

- Las mejores prácticas aceptadas dentro de su propio entorno.

      Las soluciones primarias soportadas por MySQL incluyen:
  • MySQL Replication.
  • Fabric MySQL
  • MySQL Cluster
  • Oracle Clusterware Agent para MySQL
  • MySQL con solaris Cluster

- La replicación:
   
      Expliquemos antes que significa replicación en el contexto de la informática:
La replicación es el proceso de copiar y mantener actualizados los datos en varios nodos de bases de datos ya sean estos persistentes o no. Éste usa un concepto donde existe un nodo amo o maestro (master) y otros sirvientes o esclavos (slave).

      El proceso de replicación de una base de datos consiste en replicar las consultas de actualización (tanto DML como DDL) en una base de datos maestra (master) sobre una o varias bases de datos esclavas (slave), de manera que tengamos una copia de las mismas a lo largo del tiempo.
      MySQL soporta replicación unidireccional asíncrona, es decir, las consultas de actualización ejecutadas en el maestro son replicadas en los servidores esclavos. Esta replicación se realiza de manera transparente. Además es instantánea si los servidores esclavos están levantados y en estado de replicación.

      Hay que tener en cuenta que la modificación de datos deben realizarse en el maestro, si se desea modificar los datos de un esclavo no podremos hacerlo solo con la replicación.

      La replicación es útil para la escalabilidad, ya que podriamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados. Podríamos usar herramientas como MySQL Proxy para balancear las consultas de lectura entre los servidores replicados y enviar las consultas de actualización al maestro.

      La replicación también nos podría ser útil en la misma medida para la alta disponibilidad en aplicaciones y entornos de donde solo se requieren lecturas, podríamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados de manera que si uno cae se continué prestando el servicio.

Nota: se habla de balancear en el post, explicaremos que es el balanceo en informática:

      El balance o balanceo de carga es un concepto usado en informática que se refiere a la técnica usada para compartir el trabajo a realizar entre varios procesos, ordenadores, servidores, discos u otros recursos. Está íntimamente ligado a los sistemas de multiprocesamiento, o que hacen uso de más de una unidad de procesamiento para realizar labores útiles.

     El balance de carga se mantiene gracias a un algoritmo que divide el trabajo de la manera más equitativa posible el trabajo para evitar los posibles cuellos de botella.

No hay comentarios:

Publicar un comentario