¿Se supone que MySQL se instala solo?


20

A menudo escucho a personas que hacen declaraciones como "nuestra máquina del servidor MySQL falló", lo que me da la impresión de que dedican una sola máquina como su servidor MySQL (supongo que solo instalan el sistema operativo y solo MySQL en él). Como desarrollador, no como administrador de sistemas, estoy acostumbrado a que MySQL se instale como parte de una pila LAMP junto con el servidor web y PHP.

Alguien me puede explicar:

  • ¿Cuál es el punto de instalar MySQL en un servidor separado? Suena como una pérdida de recursos cuando puedo agregar toda la pila de lámparas allí y servidores adicionales también.
  • si la base de datos está en una máquina separada, ¿cómo se conectan las aplicaciones que necesitan usar?

Respuestas:


30

Cuando su plataforma de aplicación y su base de datos compiten por recursos, esa suele ser la primera indicación de que está listo para un servidor de base de datos dedicado.

En segundo lugar, alta disponibilidad: configuración de un clúster de base de datos (y, por lo general, a su vez, un clúster de servidor de aplicaciones / web con equilibrio de carga).

También diría que la seguridad juega un papel importante en el movimiento hacia servidores separados, ya que puede tener diferentes políticas de acceso a la red para cada servidor (por ejemplo, un servidor web DMZ con un servidor de base de datos en la LAN).

El acceso al servidor de la base de datos se realiza a través de la red. es decir, cuando generalmente especificas "localhost" para el host de tu base de datos, estarías especificando el host / dirección IP de tu servidor de base de datos. Nota: generalmente necesita modificar la configuración de su servidor de base de datos para permitir conexiones / habilitar la escucha en una interfaz que no sea la interfaz de bucle invertido.


Además, una máquina dedicada permite ajustar la configuración del disco adecuadamente. Los servidores web están muy contentos cuando los datos viven en un RAID 6; los servidores de bases de datos prefieren RAID 1.
Simon Richter

12

Un servidor de base de datos separado es solo parte de un buen diseño escalable. Esto no importa si su tráfico no es muy alto y un solo servidor realmente es suficiente.

Pero en los servicios más ocupados, aislar los servicios entre sí es una buena cosa. Si alguien hace DDoS a su servidor web y hace que consuma todos los recursos, eso no molesta en absoluto al servidor de la base de datos. En entornos compartidos, es probable que más de un servidor web esté utilizando el servidor de la base de datos, por lo que si el servidor de la base de datos contiene datos de 50 sitios web diferentes, entonces solo un sitio web que está cayendo debido a que el DDoS es mejor que eliminar todo.

También desde el punto de vista de sysadmin, es más claro si hay servidores dedicados nombrados con sensatez, como "mysql-01.yourcompany.com" y "webserver-01.yourcompany.com". Cuando reciben alertas, inmediatamente ven lo que está sucediendo, al menos en el sentido de "OK, hay algo mal con la base de datos". Sé que este es un argumento débil ya que varios nombres DNS podrían apuntar a un solo servidor pero aún así.

Sus aplicaciones se conectarían a un servidor de base de datos remoto sin problemas a través de la red. Aeeeeeeee! ¿Cómo se conecta su navegador web a un servidor remoto? ¡Es magia! Erm ... más en serio, en lugar de 'localhost' solo proporciona la dirección del servidor en $ programación_language_of_your_choice y ya está todo listo.


2
Además del comentario de Janne sobre el punto de vista del administrador del sistema ... Cuando tiene problemas de rendimiento o necesita depurar la aplicación, es mucho más fácil hacerlo cuando el servidor web y el servidor de la base de datos están en máquinas separadas.
HTTP500

5
  • Algunos sitios web / aplicaciones usan una base de datos tan fuerte que requieren uno o más servidores dedicados a la base de datos.
  • Sobre la red.

3

LAMP es la pila de aplicaciones, pero no es necesario que todas estén instaladas en el mismo host. Como otros han señalado por motivos de rendimiento, seguridad o escalabilidad, a menudo no se instalan en el mismo host. También puede encontrar que el hardware que es óptimo para una parte de la arquitectura puede no serlo para otra.

Por ejemplo, las bases de datos tienen que ver con la gestión del almacenamiento. Cuanto más rápido pueda obtener información del disco, más rápido puedo llevarla al solicitante. Si estoy compartiendo un subsistema de disco con varios otros miembros de la pila de aplicaciones, como un servidor web, la contención que enfrento sobre el recurso compartido de las unidades de lectura y escritura de las unidades de disco puede en realidad obstaculizar mi rendimiento. Además, dividir la RAM entre el servidor web y el servidor de la base de datos en un host determinado puede no proporcionar un grupo de recursos lo suficientemente grande como para que se ejecute de la manera más eficiente, capaz de almacenar en caché tanta información en la RAM sin tener que ir al disco. una imagen, una página o un conjunto de resultados de consulta.

Administrativamente, también se pueden obtener eficiencias. Imagínese si ejecuta su empresa en aplicaciones de código abierto que aprovechan MySQL como un back-end común. ¿Realmente querría tener una proliferación de servidores de bases de datos con cada aplicación? Esto podría ser una pesadilla de DBA, "OK, ¿qué aplicación usa este DB?" Tendría múltiples versiones, múltiples configuraciones de hardware / software, múltiples estrategias de retención de datos. También es probable que tenga habilidades administrativas muy difusas. En su lugar, combine las instancias en una pieza física de hardware optimizada para el rol y asigne recursos dedicados para administrar el servidor y sus datos.


2

Las consultas MySQL tienen el potencial de consumir muchos recursos, lo que puede ralentizar su servidor LAMP.

Cuando está ejecutando un sitio web grande, complicado y con muchos recursos, es aconsejable considerar mover la base de datos a otro servidor dedicado. De esta forma, tiene dos servidores, uno dedicado a la web y otro dedicado al procesamiento de bases de datos. Esto tiene el potencial de liberar recursos y acelerar tanto el sitio web como las consultas de la base de datos.

El servidor web simplemente necesita conectarse a la dirección del servidor de la base de datos en lugar de localhostrealizar sus consultas a la base de datos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.