分享

MySQL生产级主从集群部署

 IT软件推荐员 2025-05-22 发布于云南

MySQL生产级主从集群部署手册


环境准备

  • 以ubuntu为例

服务器配置要求

服务器角色
配置要求
数量
Master
8核16G+ SSD RAID10
1
Slave
8核16G+ SSD RAID10
≥2
监控节点
4核8G
1

企业级MySQL主从集群拓扑图


高可用架构

基础配置(所有节点)

# 关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled

# 优化内核参数
cat >> /etc/sysctl.conf <<EOF
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
vm.swappiness = 1
EOF
sysctl -p

# 安装依赖
apt install -y chrony percona-toolkit sysstat

主库配置

配置文件 (/etc/mysql/mysql.conf.d/mysqld.cnf)

[mysqld]
server-id = 101
log_bin = /var/log/mysql/mysql-bin
binlog_format = ROW
expire_logs_days = 7
max_binlog_size = 1G
binlog_cache_size = 2M
sync_binlog = 1

# 启用GTID
gtid_mode = ON
enforce_gtid_consistency = ON

创建复制账号

CREATE USER 'repl'@'192.168.1.%' IDENTIFIED BY 'StrongPassword123!';
GRANT REPLICATION SLAVEREPLICATION CLIENT ON *.* TO 'repl'@'192.168.1.%';
FLUSH PRIVILEGES;

从库配置

配置文件 (/etc/mysql/mysql.conf.d/mysqld.cnf)

[mysqld]
server-id = 102  # 每个从库不同
relay_log = /var/log/mysql/mysql-relay-bin
read_only = 1
super_read_only = 1
log_slave_updates = 1

启动复制

CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl',
MASTER_PASSWORD='StrongPassword123!',
MASTER_AUTO_POSITION = 1;

START SLAVE;

生产环境注意事项

警告

  • 使用Percona XtraBackup进行物理备份
  • 配置Prometheus + Grafana监控体系
  • 设置自动故障切换(建议使用MHA或Orchestrator)
  • 定期执行主从一致性校验:pt-table-checksum

验证与监控

状态检查命令

-- 查看主库状态
SHOW MASTER STATUS\G

-- 查看从库状态
SHOW SLAVE STATUS\G
/* 确保以下参数为Yes:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0 */

监控关键指标

指标
报警阈值
检查命令
复制延迟
>30s
SHOW SLAVE STATUS
线程状态
非Yes
SHOW PROCESSLIST
磁盘空间
>80%
df -h

部署建议

  1. 使用Ansible进行批量部署
  2. 配置VLAN隔离数据库流量
  3. 设置每天凌晨低峰期进行备份校验
  4. 定期进行故障切换演练

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多