RESPONSABILIDADES PRINCIPALES DE UN DBA ORIENTADAS A MYSQL
Más allá de la seguridad, el DBA tiene un conjunto de responsabilidades operativas y de planificación que mantienen la base de datos MySQL disponible, eficiente y alineada con el negocio.
Administración y mantenimiento
Incluye la instalación, configuración, actualización y soporte del software MySQL.
Ejemplo MySQL:
-- Verificar versión y estado
SELECT VERSION();
SHOW VARIABLES LIKE 'version%';
-- Aplicar cambio de configuración dinámico
SET GLOBAL max_connections = 300;
SET GLOBAL innodb_buffer_pool_size = 4294967296; -- 4GB
-- Verificar el cambio
SHOW VARIABLES LIKE 'max_connections';Gestión de datos
El DBA gestiona importación/exportación, backups y recuperación.
Ejemplo MySQL:
-- Backup lógico de una base de datos
-- (ejecutar desde terminal)
mysqldump -u root -p --single-transaction --routines --triggers mi_empresa > backup_mi_empresa.sql
-- Restaurar
mysql -u root -p mi_empresa < backup_mi_empresa.sql
-- Backup solo de estructura
mysqldump -u root -p --no-data mi_empresa > estructura.sqlControl de acceso
Diseña e implementa usuarios, roles y privilegios siguiendo el principio de mínimo privilegio.
Ejemplo MySQL:
-- Crear rol y usuario
CREATE ROLE 'app_lectura';
GRANT SELECT ON mi_empresa.* TO 'app_lectura';
CREATE USER 'app_user'@'%' IDENTIFIED BY 'ClaveSegura2026!';
GRANT 'app_lectura' TO 'app_user'@'%';
SET DEFAULT ROLE 'app_lectura' TO 'app_user'@'%';
-- Verificar privilegios
SHOW GRANTS FOR 'app_user'@'%';Planificación
Anticipa el crecimiento de capacidad, espacio en disco y necesidades del negocio.
Ejemplo MySQL:
-- Tamaño de las bases de datos y tablas
SELECT
table_schema AS 'Base de Datos',
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Tamaño (MB)'
FROM information_schema.TABLES
GROUP BY table_schema
ORDER BY SUM(data_length + index_length) DESC;
-- Tamaño de las tablas más grandes
SELECT
TABLE_NAME,
ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS 'Tamaño (MB)'
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'mi_empresa'
ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC
LIMIT 10;Supervisión
Monitorea logs, rendimiento y genera alertas.
Ejemplo MySQL:
-- Ver procesos activos
SHOW FULL PROCESSLIST;
-- Consultas lentas recientes (performance_schema)
SELECT
DIGEST_TEXT,
COUNT_STAR AS ejecuciones,
ROUND(AVG_TIMER_WAIT/1000000000, 2) AS avg_ms
FROM performance_schema.events_statements_summary_by_digest
ORDER BY AVG_TIMER_WAIT DESC
LIMIT 10;
-- Estado de InnoDB
SHOW ENGINE INNODB STATUS\GOptimización
Realiza tuning de consultas, índices y configuración.
Ejemplo MySQL:
-- Analizar una consulta
EXPLAIN FORMAT=JSON
SELECT c.nombre, p.fecha, p.total
FROM clientes c
JOIN pedidos p ON c.id = p.cliente_id
WHERE p.fecha >= '2026-01-01';
-- Crear índice para mejorar rendimiento
CREATE INDEX idx_pedidos_fecha ON pedidos(fecha);
-- Actualizar estadísticas
ANALYZE TABLE pedidos;