MySQL之复制环境搭建与线程管理实战指南

MySQL之复制环境搭建与线程管理实战指南

一、前言

大家好!MySQL复制是构建高可用、可扩展数据库架构的核心技术。写作本文的初衷,是希望与各位开发者、运维人员分享复制环境的搭建流程、线程管理技巧及常见问题解决方案,通过通俗易懂的解析和实战案例,帮助大家快速掌握复制功能的落地细节。文中将结合配置步骤、线程原理和代码实例,助力读者构建稳定可靠的复制系统。欢迎随时交流探讨!

二、复制环境搭建:从准备到启动

2.1 环境规划与前提条件

假设主库(Master)和备库(Replica)的配置如下:

角色 IP地址 数据库版本 数据目录 复制账号
主库 192.168.0.10 5.7.36 /data/mysql repl:Repl@123
备库 192.168.0.11 5.7.36 /data/mysql repl:Repl@123

前提条件

  • 主备库网络互通,主库开放3306端口。
  • 主库已创建业务数据库(如myapp)并开启Binlog。

2.2 主库配置:启用日志与创建账号

2.2.1 配置文件(my.cnf)
[mysqld]
server-id = 10                  # 唯一标识主库
log-bin = mysql-bin             # 二进制日志文件名前缀
binlog-format = ROW             # 使用基于行的复制模式
binlog-do-db = myapp            # 仅复制myapp数据库(可选)
  • 重启主库systemctl restart mysql
  • 验证日志:执行SHOW MASTER STATUS,确保输出类似:
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000001 | 154      | myapp        |                  |
    +------------------+----------+--------------+------------------+
    
2.2.2 创建复制账号
CREATE USER 'repl'@'192.168.0.%' IDENTIFIED BY 'Repl@123';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'192.168.0.%';
FLUSH PRIVILEGES;

2.3 备库配置:初始化与参数调整

2.3.1 配置文件(my.cnf)
[mysqld]
server-id = 20                  # 唯一标识备库,不可与主库重复
relay-log = mysql-relay         # 中继日志文件名前缀
log-slave-updates = 1           # 允许备库将重放事件写入Binlog(如需级联复制)
read-only = 1                   # 设为只读,避免非特权用户写入
slave-parallel-workers = 4      # 开启并行复制(5.7+,线程数建议为CPU核心数50%)
slave-parallel-type = LOGICAL_CLOCK # 基于组提交的并行模式
  • 重启备库systemctl restart mysql
2.3.2 数据初始化(XtraBackup方式)
  1. 主库备份(在主库执行):
    xtrabackup --backup --host=192.168.0.10 --user=root --password=Root@123 --target-dir=/backup
    
  2. 备份传输(到备库):
    scp -r /backup/* 192.168.0.11:/data/backup
    
  3. 备库恢复
    xtrabackup --prepare --target-dir=/data/backup
    xtrabackup --copy-back --target-dir=/data/backup
    chown -R mysql:mysql /data/mysql
    

三、启动复制:从连接主库到验证状态

3.1 配置备库连接主库

在备库执行以下命令,关联主库信息:

CHANGE MASTER TO
  MASTER_HOST='192.168.0.10',
  MASTER_USER='repl',
  MASTER_PASSWORD='Repl@123',
  MASTER_LOG_FILE='mysql-bin.000001', -- 主库当前Binlog文件名(通过SHOW MASTER STATUS获取)
  MASTER_LOG_POS=154; -- 主库当前Binlog位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯年华@编程空间

原创文章不易,盼您慷慨鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值