售前咨询400-838-0503

如何在云服务器上配置数据库主从复制?

技术文档 2025-04-27 09:11

云服务器数据库主从复制配置完全指南

在数字化转型浪潮中,数据库的高可用性和负载均衡已成为企业IT架构的核心需求。本文将详细介绍如何在主流云服务器上配置MySQL数据库主从复制,帮助您构建稳定可靠的数据同步系统。

一、准备工作

  1. 选择云服务商:AWS、阿里云、腾讯云等主流平台均可
  2. 准备至少两台云服务器实例(1主1从)
  3. 确保网络连通性:建议配置安全组规则放行3306端口
  4. 安装相同版本的MySQL数据库(推荐5.7+版本)

提示:生产环境建议选择相同配置的服务器,避免性能瓶颈。

二、主服务器配置

1. 修改MySQL配置文件

[mysqld]
log-bin=mysql-bin
server-id=1
binlog-format=ROW
    

2. 创建复制专用账户

CREATE USER 'repl'@'%' IDENTIFIED BY 'SecurePassword123!';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
    

3. 锁定数据库并获取二进制日志位置

FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
    

记录File和Position值,配置从服务器时需要用到。

三、从服务器配置

1. 修改MySQL配置文件

[mysqld]
server-id=2
relay-log=mysql-relay-bin
read-only=1
    

2. 配置复制参数

CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl',
MASTER_PASSWORD='SecurePassword123!',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=120;
    

3. 启动复制进程

START SLAVE;
SHOW SLAVE STATUS\G
    

检查Slave_IO_Running和Slave_SQL_Running状态是否为Yes。

四、验证与监控

  • 在主服务器创建测试数据库和表
  • 观察从服务器是否同步数据
  • 配置监控告警(推荐使用Prometheus+Granfa)

常见问题排查

问题现象 可能原因 解决方案
Slave_IO_Running: No 网络连接问题 检查防火墙和安全组设置
Slave_SQL_Running: No SQL线程错误 通过SHOW SLAVE STATUS查看具体错误

五、高级配置建议

1. 半同步复制配置

在my.cnf中添加:

plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
rpl_semi_sync_master_enabled=1
rpl_semi_sync_slave_enabled=1
    

2. 延迟复制配置

CHANGE MASTER TO MASTER_DELAY=3600;  # 延迟1小时
    

3. 多线程复制优化

slave_parallel_workers=4
slave_parallel_type=LOGICAL_CLOCK
    

六、总结

通过本文的详细步骤,您应该已经成功在云服务器上配置了MySQL主从复制。这种架构不仅能提高系统的可用性,还能实现读写分离,显著提升数据库性能。建议定期检查复制状态,并考虑使用GTID模式简化故障转移操作。

随着业务增长,您还可以进一步探索级联复制、多源复制等高级特性,构建更复杂的数据库架构。

如本公告涉及你的产品,或有不清楚之处,可提交工单确认。

提交工单