Volver a MySQL Básico

Replicación y Alta Disponibilidad en MySQL

Replicación Primario-Réplica

# Configuración del servidor primario (my.cnf) [mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log binlog_format = ROW
# Configuración del servidor réplica (my.cnf) [mysqld] server-id = 2 relay_log = /var/lib/mysql/mysql-relay-bin read_only = 1
-- En el primario: crear usuario de replicación CREATE USER 'replication'@'%' IDENTIFIED BY 'repl_password'; GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%'; -- Obtener posición del binlog SHOW MASTER STATUS; -- En la réplica: configurar y arrancar CHANGE MASTER TO MASTER_HOST='primary_ip', MASTER_USER='replication', MASTER_PASSWORD='repl_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154; START SLAVE; SHOW SLAVE STATUS\G

Replicación GTID

[mysqld] server-id = 1 log_bin = mysql-bin gtid_mode = ON enforce_gtid_consistency = ON binlog_format = ROW
-- Configurar réplica con GTID CHANGE MASTER TO MASTER_HOST='primary', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_AUTO_POSITION = 1; START SLAVE;

Group Replication (Multi-Primary)

-- Instalar plugin INSTALL PLUGIN group_replication SONAME 'group_replication.so'; -- Configurar el primer nodo (bootstrap) SET GLOBAL group_replication_bootstrap_group = ON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group = OFF; -- Unir nodos adicionales START GROUP_REPLICATION; -- Verificar miembros del grupo SELECT * FROM performance_schema.replication_group_members;

Respaldos con mysqldump

# Backup consistente con bloqueo de lecturas mysqldump --single-transaction \ --flush-logs \ --master-data=2 \ --all-databases \ -u root -p > full_backup.sql # Restaurar mysql -u root -p < full_backup.sql

InnoDB Cluster con MySQL Shell

// Crear un cluster desde MySQL Shell var cluster = dba.createCluster('MiCluster'); // Agregar instancias cluster.addInstance('user@host2:3306'); cluster.addInstance('user@host3:3306'); // Ver estado del cluster cluster.status(); // Conmutación por error manual cluster.setPrimaryInstance('user@host2:3306');