Prefacio

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Por qué escribimos este libro

La motivación para elaborar Hands-On MySQL Administration surge de reconocer una necesidad creciente dentro de la diversa comunidad de personas que se dedican a la gestión de bases de datos. MySQL, el segundo sistema de gestión de bases de datos más popular del mundo y ampliamente adoptado por grandes empresas como Google, Facebook y LinkedIn, se ha convertido en una habilidad indispensable para los profesionales de TI.

A medida que la demanda de MySQL sigue aumentando, se ha hecho evidente un vacío en cuanto a recursos completos adaptados tanto a principiantes como a profesionales de nivel intermedio y avanzado. Este libro pretende abordar esta carencia ofreciendo valiosas perspectivas, consejos prácticos y orientación en profundidad sobre la gestión eficiente de bases de datos MySQL en local y en la nube.

El objetivo principal es atender a un público amplio, incluidos administradores de bases de datos (DBA), desarrolladores y profesionales de TI, que aspiran a gestionar, administrar y optimizar eficazmente las bases de datos MySQL. El libro sirve como recurso para las personas que buscan mejorar sus habilidades en la administración de bases de datos, ofreciendo soluciones prácticas para optimizar el rendimiento, resolver problemas comunes y aprender nuevas técnicas.

Además, reconocemos las diversas necesidades de los profesionales del sector. Administración Práctica de MySQL no es sólo una guía completa para las tareas diarias, sino también una valiosa herramienta para el aprendizaje continuo y el dominio de nuevos conceptos. Los DBA pueden aprovechar este libro para poner a punto sus bases de datos, mientras que los desarrolladores pueden adquirir conocimientos para diseñar esquemas de bases de datos eficientes y optimizar las consultas. Los profesionales de TI, que deseen mantenerse al día de las últimas tendencias y buenas prácticas en la administración de bases de datos, pueden confiar en este libro para mejorar sus habilidades y contribuir al éxito de sus organizaciones en un panorama tecnológico en constante evolución.

A quién va dirigido este libro

Hands-On MySQL Administration está diseñado para un público diverso de que busca adquirir experiencia en la gestión eficaz de MySQL tanto en las instalaciones como en la nube. El libro proporciona valiosos conocimientos y consejos prácticos sobre cómo optimizar y gestionar eficazmente las bases de datos MySQL. El contenido está adaptado a principiantes, así como a profesionales de nivel intermedio y avanzado que ya tienen conocimientos fundamentales de administración de bases de datos y pretenden mejorar sus habilidades en MySQL. El público principal de este libro incluye DBA, desarrolladores y profesionales de TI que deseen gestionar, administrar y optimizar bases de datos MySQL de forma eficaz.

El libro puede utilizarse como referencia para las tareas diarias, así como para aprender y dominar nuevos conceptos. Los DBA pueden utilizar el libro para optimizar el rendimiento de sus bases de datos, identificar y resolver problemas comunes y aprender nuevas técnicas para gestionar bases de datos MySQL. Los desarrolladores también pueden utilizar el libro para crear aplicaciones eficientes y escalables, aprendiendo a diseñar el esquema de la base de datos y a optimizar las consultas. Los profesionales de TI pueden utilizar el libro para mejorar sus conocimientos y mantenerse al día de las últimas tendencias y buenas prácticas en la administración de bases de datos.

Al final de este libro, comprenderás

En, al final de este libro, adquirirás un conocimiento exhaustivo de la administración de bases de datos MySQL 8. Estos conocimientos abarcan aspectos fundamentales, como la instalación y configuración del software, la gestión de cuentas de usuario y la optimización del rendimiento de la base de datos. El libro también profundiza en temas avanzados como las estrategias de copia de seguridad y recuperación, las medidas de seguridad y las soluciones de alta disponibilidad en el contexto de la administración de MySQL 8. Además, aprenderás a diseñar e implementar una infraestructura de base de datos escalable y fiable utilizando MySQL 8, incorporando buenas prácticas para el diseño de esquemas de base de datos, estrategias de indexación y técnicas de replicación. La exploración se extiende a la utilización de MySQL en la nube, abarcando plataformas como Amazon Relational Database Service (RDS), Amazon Aurora y Microsoft Azure Database para MySQL.

Cómo está organizado este libro

El libro está organizado en 13 capítulos, cada uno de los cuales se centra en diferentes aspectos de MySQL. Empezamos con una introducción a MySQL 8, hablando de sus ediciones y actualizaciones importantes. A continuación, hay un capítulo sobre la instalación y configuración del servidor MySQL, que abarca las plataformas Windows y Linux. Los capítulos siguientes profundizan en temas como el diccionario de datos transaccionales (TDD) y la arquitectura InnoDB, copias de seguridad y recuperación, seguridad MySQL, replicación, alta disponibilidad (HA), escalabilidad, ajuste del rendimiento, monitoreo, actualizaciones importantes e implementación de MySQL en varias plataformas en la nube como Amazon RDS, Amazon Aurora y Microsoft Azure Database para MySQL. Cada capítulo proporciona información detallada, procedimientos y buenas prácticas relevantes para su tema, con el objetivo de proporcionar a los usuarios un conocimiento exhaustivo de MySQL y su gestión en diversos escenarios y entornos:

Capítulo 1, "Introducción a MySQL 8"

Este capítulo presenta MySQL 8, ofreciendo información sobre su Edición Comunidad, Edición Empresa y Percona Server para MySQL. Explora el archivo de configuración de MySQL y destaca las actualizaciones significativas de la versión 8. La exhaustiva visión general cubre aspectos clave, allanando el camino para una comprensión más profunda de MySQL 8.

Capítulo 2, "Instalación y configuración del servidor MySQL"

Este capítulo te guía a través de la instalación y configuración del servidor MySQL en plataformas Windows y Linux. También explora la instalación de Percona Server para MySQL 8, haciendo hincapié en la configuración del repositorio y la inicialización del servicio. Tras la instalación, profundizarás en las tareas de configuración del servidor, incluidos los ajustes del juego de caracteres y la colación, el tamaño máximo de los paquetes y las configuraciones del archivo de registro. Se trata la eliminación del tamaño de la caché de consultas en MySQL 8, y se cubren medidas de seguridad como el cambio de la contraseña raíz por defecto y la restricción del acceso remoto. Se explora el monitoreo y la resolución de problemas del servidor MySQL, incluyendo escenarios como errores de conexión y problemas de rendimiento. El capítulo concluye abordando las comprobaciones de recursos del sistema para hosts MySQL.

Capítulo 3, "Diccionario de datos transaccionalesy arquitectura InnoDB"

Este capítulo explora la arquitectura TDD e InnoDB en MySQL. Comienza explicando el papel del TDD en el almacenamiento de información sobre los objetos de la base de datos y esboza la estructura del directorio de datos de MySQL. A continuación, se centra en la optimización del rendimiento de la base de datos con diversas funciones de InnoDB, como el buffer pool, el buffer de cambios, el índice hash adaptativo y el buffer de redo log. El capítulo revela las estructuras en disco de InnoDB, cubriendo tablas, índices, tablespaces, buffer de doble escritura, redo log y undo logs. Te guía en la creación de tablas InnoDB, la importación de tablas externas y la conversión de tablas MyISAM a InnoDB.

El capítulo profundiza en el modelo de bloqueo y transacciones de InnoDB, abordando temas como el bloqueo de lecturas, las filas calientes y los ajustes de configuración. Concluye con una guía de configuración de InnoDB, que abarca el inicio, el funcionamiento de sólo lectura, la concurrencia de hilos, los hilos de E/S y la E/S asíncrona en Linux. El concepto de persistencia de variables globales del sistema y un resumen de las variables persistentes del sistema de MySQL 8 cierran el capítulo.

Capítulo 4, "Copia de seguridad y recuperación"

Este capítulo profundiza en los aspectos críticos de las copias de seguridad y la recuperación en MySQL. Comienza esbozando los factores que hay que tener en cuenta al seleccionar una estrategia de copia de seguridad y destaca las diferencias entre las copias de seguridad lógicas y físicas. A continuación, la discusión se desarrolla en torno a las copias de seguridad físicas, cubriendo el proceso de restauración y cómo preparar copias de seguridad incrementales. A continuación se exploran en profundidad las copias de seguridad lógicas, incluyendo la configuración de los programas de copia de seguridad, la selección de opciones y el monitoreo del proceso de copia de seguridad. El capítulo detalla la configuración del entorno de restauración e introduce la recuperación puntual, la recuperación a nivel de instancia y la recuperación a nivel de tabla.

Se trata la gestión de los registros binarios, que abarca su habilitación, configuración y purga. Se hace hincapié en las buenas prácticas, abogando por el uso del cifrado para salvaguardar las copias de seguridad. El capítulo concluye con información sobre el cifrado de XtraBackup, los procesos de descifrado, el cifrado de mysqldump y un resumen de consideraciones clave para estrategias eficaces de copia de seguridad y recuperación.

Capítulo 5, "Seguridad en MySQL"

Este capítulo trata de la seguridad de MySQL, abordando diversos aspectos cruciales para salvaguardar las bases de datos. Comienza describiendo los tipos de amenazas a la seguridad, haciendo hincapié en la importancia primordial de la seguridad. Se exploran los mecanismos de autenticación y autorización, cubriendo varios tipos de autenticación y la creación de contraseñas seguras utilizando herramientas como DNF y pwgen. El capítulo también cubre la autorización MySQL, discutiendo los privilegios de usuario, los permisos y los complementos de autenticación. Se destaca cómo garantizar una comunicación segura mediante el cifrado SSL/TLS, las reglas del cortafuegos y el bloqueo de cuentas de usuario. Se explica la gestión de roles MySQL, incluyendo su creación, asignación a usuarios y buenas prácticas. El capítulo amplía su enfoque a la seguridad de la replicación MySQL, ofreciendo sugerencias y buenas prácticas. También se cubre la auditoría de seguridad MySQL, proporcionando información sobre el monitoreo y mantenimiento de un entorno MySQL seguro.

Capítulo 6, "Replicación MySQL"

Este capítulo explora la replicación MySQL, empezando por una explicación de cómo funciona. Cubre los pasos esenciales para configurar la replicación MySQL, incluyendo los requisitos previos y los tipos de replicación, como la réplica de origen, la replicación de grupo y la replicación GTID. Se detalla el proceso de configuración para cada tipo, utilizando métodos como XtraBackup, la copia de seguridad desde una réplica y el plug-in de clonación. El capítulo profundiza en el monitoreo del estado de la replicación, ofreciendo información sobre comandos MySQL, herramientas de terceros y la configuración de alertas para los cambios de estado. Se aborda la resolución de problemas de replicación, como la depuración mediante los registros de MySQL, la resolución de conflictos y la gestión del retraso en la replicación. El capítulo concluye presentando herramientas para monitorear y gestionar la replicación MySQL.

Capítulo 7, "Alta disponibilidad y escalabilidad"

Este capítulo explora la HA y la escalabilidad en MySQL. Comienza con una visión general de los conceptos de HA y escalabilidad, seguida de una discusión sobre la gestión de la topología mediante Orchestrator. Se detalla la instalación y configuración de Orchestrator, con información sobre el inicio de Orchestrator, la comprobación de la topología, la reubicación de nodos réplica y la ejecución de conmutaciones por error. A continuación, el capítulo profundiza en las opciones de clustering, incluyendo Percona XtraDB Cluster (PXC), MariaDB Galera Cluster e InnoDB Cluster. Se explica el proceso de clustering, junto con la configuración de PXC y MariaDB Galera Cluster. La discusión se extiende a los equilibradores de carga, la instalación de ProxySQL, el monitoreo de MySQL, las comprobaciones de salud y las estadísticas de rendimiento de las consultas. Se cubre el uso de Sysbench con MySQL 8, incluidos los requisitos previos, la instalación y la evaluación del rendimiento. Se detalla la configuración del Clúster MariaDB Galera, que abarca la instalación de paquetes, la adición de repositorios, la instalación del servidor y la configuración del clúster. El capítulo concluye con la instalación e implementación de un Clúster MySQL 8 InnoDB, la configuración del Enrutador MySQL, el monitoreo del estado del clúster y la resolución de problemas.

Capítulo 8, "Ajuste del rendimiento de MySQL"

Este capítulo profundiza en los conceptos y estrategias clave del ajuste del rendimiento de MySQL. Comienza con los fundamentos, considerando los recursos de hardware como la configuración de la CPU, la configuración de la memoria y la configuración de E/S del disco. Se explora en detalle el papel del diseño de la base de datos, incluyendo la estructura de las tablas, la indexación y la optimización de las consultas. Se analizan la latencia de la red y las consideraciones sobre la carga de trabajo, con especial atención a herramientas como pt-query-digest para el análisis de consultas. El capítulo sigue desentrañando el proceso de ejecución de consultas MySQL y hace hincapié en la importancia de ajustar la reserva de búferes InnoDB, abarcando la configuración, los ajustes de tamaño y el monitoreo. Se examina la concurrencia de hilos InnoDB y se detalla el uso del esquema de rendimiento MySQL para identificar y abordar los problemas de rendimiento.

Capítulo 9, "Monitorización y gestión de MySQL"

Este capítulo subraya la importancia del monitoreo y la gestión de MySQL para garantizar el máximo rendimiento y seguridad. Presenta los indicadores clave de rendimiento (KPI) y explora el papel esencial del monitoreo tanto en la optimización del rendimiento como en la mejora de la seguridad, junto con su contribución a la planificación de la capacidad. El capítulo proporciona una visión concisa de las tareas de gestión de MySQL, abarcando la instalación y configuración de herramientas como Percona Monitoring and Management (PMM) Server, PMM Client, MySQL Enterprise Monitor y MySQL Workbench. Hace hincapié en las soluciones eficaces de copia de seguridad y recuperación, las herramientas de diagnóstico del rendimiento y la gestión de bases de datos dentro de MySQL Workbench. El capítulo también presenta las herramientas básicas de la línea de comandos de MySQL, su uso y conocimientos sobre la gestión de los registros de MySQL.

Capítulo 10, "Cómo facilitar las actualizaciones importantes de MySQL"

Este capítulo proporciona orientación para facilitar las actualizaciones importantes de MySQL, garantizando una transición fluida sin comprometer la integridad de los datos ni el rendimiento. El proceso implica pruebas del lado del servidor utilizando el comprobador de actualizaciones MySQL Shell y pruebas de consultas del lado de la aplicación utilizando la herramienta pt-upgrade. El capítulo describe los requisitos y pasos para probar las consultas de la aplicación, presentando un plan de alto nivel para las pruebas de pt-upgrade. Cubre tanto las pruebas de sólo lectura como las de lectura/escritura con la herramienta pt-upgrade. El capítulo concluye detallando dos estrategias principales de actualización de la producción: la actualización in situ (asíncrona) y la creación de un nuevo entorno con transición. La información proporcionada tiene como objetivo capacitar a los usuarios para ejecutar actualizaciones importantes de MySQL con confianza y eficacia.

Capítulo 11, "MySQL en la nube: Amazon RDS"

Este capítulo trata de la implementación y administración de MySQL en la plataforma Amazon Relational Database Service (RDS). Comienza con una visión general de la arquitectura de Amazon RDS MySQL, las opciones de almacenamiento y la replicación, destacando las ventajas como la administración simplificada, la escalabilidad y la seguridad mejorada. A continuación, el capítulo describe los pasos para crear una instancia RDS MySQL, abarcando la selección de la clase de instancia y el tipo de almacenamiento, la configuración de la VPC y el grupo de seguridad, y la configuración de los ajustes avanzados. Detalla la conexión a MySQL RDS, la gestión de usuarios y las configuraciones de rendimiento óptimo. El capítulo también aborda los procedimientos de copia de seguridad y restauración, las opciones de escalado y el monitoreo mediante métricas y alarmas de Amazon CloudWatch. Se discuten las buenas prácticas de optimización de costes, incluyendo el dimensionamiento correcto de las instancias y la utilización de la capacidad reservada. El capítulo concluye con información sobre la resolución de problemas, el análisis del rendimiento mediante Performance Insights y las copias de seguridad eficientes de las bases de datos. El objetivo de esta completa guía es capacitar a los usuarios para aprovechar eficazmente MySQL en RDS para obtener un rendimiento, una seguridad y una rentabilidad óptimos.

Capítulo 12, "MySQL en la nube: Amazon Aurora"

Este capítulo es una guía completa para la implementación y gestión de MySQL en Aurora, centrada en las características clave, las ventajas y las buenas prácticas. Cubre la arquitectura de almacenamiento, los casos de uso y el proceso paso a paso de creación de un clúster de base de datos MySQL en Aurora. El capítulo detalla las configuraciones, incluidos los roles de Gestión de Identidad y Acceso (IAM), las copias de seguridad automáticas y la configuración del monitoreo, junto con la conexión a la base de datos MySQL de Aurora. Se trata la optimización del rendimiento, la optimización de consultas e índices y el uso de Amazon RDS Performance Insights. El capítulo explora el autoescalado, las estrategias de almacenamiento en caché y las técnicas de monitoreo y resolución de problemas, incluida la configuración de alarmas de CloudWatch y el análisis de registros de consultas lentas. Se examinan a fondo las estrategias de HA y conmutación por error, los procesos de copia de seguridad y recuperación, y las buenas prácticas de seguridad y cumplimiento. El capítulo concluye con reflexiones sobre la optimización de costes, la gestión de recursos y la integración de Amazon Aurora MySQL con otros servicios de AWS para mejorar la funcionalidad. El objetivo de esta completa guía es capacitar a los usuarios para que aprovechen MySQL en Aurora de forma eficaz, respetando las buenas prácticas en varios aspectos de la implementación y la gestión.

Capítulo 13, "MySQL en la nube: Azure Database para MySQL"

Este capítulo proporciona una guía completa para utilizar MySQL en Microsoft Azure, centrándose específicamente en Azure Database para MySQL. Comienza con la elección de la opción MySQL adecuada, la comprensión de las versiones compatibles y la creación de una cuenta gratuita Azure. A continuación, el capítulo profundiza en la seguridad de las instancias MySQL en el Servidor Flexible de Azure y en la gestión de las réplicas de lectura a través del portal de Azure. Se proporcionan conocimientos prácticos sobre el lanzamiento de Cloud Shell, la selección del entorno shell y el registro de suscripciones. El capítulo también cubre la creación de servidores utilizando la CLI y explora las migraciones, incluyendo la creación y configuración de un Servidor Flexible de destino y la aplicación de buenas prácticas para una migración exitosa. Se detalla el proceso de migración, que abarca la configuración de origen y destino, la selección de la base de datos, el monitoreo y las actividades posteriores a la migración. El capítulo concluye con directrices sobre la migración de grandes bases de datos a Azure Database para MySQL.

Convenciones utilizadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Cursiva

Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.

Constant width

Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.

Constant width bold

Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.

Constant width italic

Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.

Consejo

Este elemento significa un consejo o sugerencia.

Nota

Este elemento significa una nota general.

Advertencia

Este elemento indica una advertencia o precaución.

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita https://oreilly.com.

Cómo contactar con nosotros

Por favor, dirige tus comentarios y preguntas sobre este libro a la editorial:

Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/handson-mysql-admin.

Para noticias e información sobre nuestros libros y cursos, visita https://oreilly.com.

Encuéntranos en LinkedIn: https://linkedin.com/company/oreilly-media.

Míranos en YouTube: https://youtube.com/oreillymedia.

Agradecimientos

Expresamos nuestra sincera gratitud a todos los que han desempeñado un papel fundamental en la realización de este proyecto. Damos las gracias de todo corazón a todos los que han contribuido, y nos gustaría expresar un agradecimiento especial a las siguientes personas.

Ante todo, queremos expresar nuestro profundo agradecimiento a todos en O'Reilly. Su apoyo y colaboración a lo largo de todo el ciclo de vida de este libro han sido nada menos que fantásticos. Ha sido un placer trabajar con un equipo tan dedicado.

Un agradecimiento especial a nuestros editores, Katherine Tozer, Angela Rufino, Andy Kwan y Theresa Jones. Su orientación, atención al detalle y compromiso con la excelencia han mejorado verdaderamente la calidad de este trabajo. No podríamos haber pedido mejores colaboradores en este empeño.

Estamos inmensamente agradecidos por los valiosos comentarios de Peter Boros, Frederic Descamps, Colin Charles, Trevoir Williams, Andrés Sacco, John David Duncan, Doron Beit-Halahmi y Marco Ippolito. Vuestras ideas, sugerencias y meticulosas revisiones han enriquecido notablemente el contenido de este libro. Agradecemos sinceramente vuestra dedicación para garantizar la precisión y claridad del material.

Una mención especial a Sveta Smirnova por recomendarnos a O'Reilly para tener la oportunidad de escribir este libro. Su recomendación desempeñó un papel crucial para hacer realidad este proyecto, y le agradecemos su apoyo.

Una vez más, gracias a todos los que habéis participado por vuestro apoyo incondicional, vuestras valiosas aportaciones y vuestro espíritu de colaboración. Este libro no habría sido posible sin cada uno de vosotros.

Agradecimientos adicionales de Arunjith Aravindan

A mi queridísima esposa, Leshma KK, tu apoyo y amor inquebrantables han sido mi ancla a través de los altibajos de este viaje creativo. Gracias por ser mi inspiración y mi santuario.

A mi querido hijo, Ashutosh Arunjith, en tu risa, encuentro alegría, y en tus sueños, veo un futuro brillante con posibilidades. Que siempre alcances las estrellas y sepas que se te aprecia sin medida.

A mi familia profesional de Percona, la pasión colectiva, la dedicación y el espíritu de colaboración dentro de nuestra organización han alimentado mis ambiciones y han dado forma a este relato. Juntos, nos esforzamos por alcanzar la excelencia, y estoy agradecida por el viaje compartido. Este libro es un reflejo del amor, el apoyo y el trabajo en equipo que me rodean a diario. Gracias por ser una parte vital de la historia de mi vida.

Agradecimientos adicionales de Jeyaram Ayyalusamy

A la luz que guía mi vida, mi madre, Subbulakshmi, tu sabiduría, fortaleza y amor incondicional han sido los pilares sobre los que se asientan mis sueños. Este libro es un testimonio de los valores que me inculcaste y del infinito apoyo que me sigues proporcionando.

A mi amada esposa, Chandra Jeyaram, en la sinfonía de la vida, tu amor es la melodía más dulce. Tu aliento y comprensión han sido el combustible de mis esfuerzos creativos. Este libro es tan tuyo como mío.

A mi adorable niño Viswath, a mis hermosas hijas, Advika Jeyaram y Anvika Jeyaram, en vuestra inocencia encuentro inspiración. Que vuestros futuros estén llenos de infinitas posibilidades, y que este libro sirva de recordatorio de los sueños y aspiraciones que compartimos como familia.

A mi familia profesional de Doyensys, juntos hemos superado retos y celebrado victorias. Vuestra dedicación y pasión han dado forma no sólo al trabajo que hacemos, sino también a la persona que soy. Este libro es un logro colectivo, y estoy agradecida por el apoyo y la camaradería dentro de nuestra organización. Este viaje, tanto personal como profesional, se ve enriquecido por el amor y el apoyo de cada uno de vosotros.

Get Administración práctica de MySQL now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.