zlwu 4e34c7eb36 提交 11 місяців тому
..
部署脚本 4e34c7eb36 提交 11 місяців тому
配置文件 4e34c7eb36 提交 11 місяців тому
MinIO主从配置快速指南.md 4e34c7eb36 提交 11 місяців тому
MinIO单机转集群数据迁移指南.md 4e34c7eb36 提交 11 місяців тому
MinIO集群Nginx配置指南.md 4e34c7eb36 提交 11 місяців тому
MinIO集群启动步骤说明.md 4e34c7eb36 提交 11 місяців тому
MinIO集群快速配置指南.md 4e34c7eb36 提交 11 місяців тому
MinIO集群文件同步机制说明.md 4e34c7eb36 提交 11 місяців тому
MinIO集群配置指南(基于启动脚本).md 4e34c7eb36 提交 11 місяців тому
MinIO高可用配置指南.md 4e34c7eb36 提交 11 місяців тому
MySQL主从复制性能影响分析.md 4e34c7eb36 提交 11 місяців тому
MySQL主从复制配置步骤.md 4e34c7eb36 提交 11 місяців тому
MySQL数据库重命名指南.md 4e34c7eb36 提交 11 місяців тому
MySQL系统数据库说明.md 4e34c7eb36 提交 11 місяців тому
README.md 4e34c7eb36 提交 11 місяців тому
基于现有my.cnf的主从配置指南.md 4e34c7eb36 提交 11 місяців тому
基于现有启动脚本的MinIO主从配置.md 4e34c7eb36 提交 11 місяців тому
快速配置主从复制.md 4e34c7eb36 提交 11 місяців тому

README.md

生产环境双机部署方案 - 快速指南

📁 文件结构

生产环境双机部署方案/
├── README.md                          # 本文件
├── 部署脚本/
│   ├── init-machine2.sh               # 机器2初始化脚本
│   ├── init-mysql-slave-data.sh       # MySQL从库数据初始化(重要!)
│   ├── setup-mysql-replication.sh     # MySQL主从复制配置
│   ├── setup-redis-replication.sh     # Redis主从复制配置
│   ├── setup-minio-replication.sh     # MinIO主从同步配置(新增)
│   ├── minio-sync-cron.sh             # MinIO定时同步脚本(新增)
│   └── health-check.sh                # 健康检查脚本
└── 配置文件/
    ├── nginx-load-balance.conf        # Nginx负载均衡配置
    ├── docker-compose-minio-cluster.yml  # MinIO集群配置
    ├── 67 机器的minio-start.sh        # 67机器MinIO启动脚本
    └── 68 机器的minio-start.sh        # 68机器MinIO启动脚本

🚀 快速部署步骤

第一步:机器2初始化

# 在机器2 (172.16.0.68) 上执行
chmod +x 部署脚本/init-machine2.sh
./部署脚本/init-machine2.sh

第二步:初始化从库数据(重要!)

⚠️ 必须先初始化从库数据,再配置主从复制!

# 步骤1:在主库(67)导出数据
cd 部署脚本/
chmod +x init-mysql-slave-data.sh
./init-mysql-slave-data.sh

# 步骤2:在从库(68)导入数据
./init-mysql-slave-data.sh

第三步:配置MySQL主从复制

💡 系统数据库说明:系统自带的数据库(information_schema、mysql、performance_schema、sys)不需要复制,每个MySQL实例的系统数据库都是独立管理的。详细说明请参考:MySQL系统数据库说明.md

# 步骤1:在主库(67)配置主库
chmod +x 部署脚本/setup-mysql-replication.sh
./部署脚本/setup-mysql-replication.sh
# 记录输出的 MASTER_LOG_FILE 和 MASTER_LOG_POS

# 步骤2:在从库(68)配置从库
./部署脚本/setup-mysql-replication.sh
# 输入步骤1记录的 MASTER_LOG_FILE 和 MASTER_LOG_POS

第四步:配置Redis主从复制

# 在机器1 (172.16.0.67) 上执行
chmod +x 部署脚本/setup-redis-replication.sh
./部署脚本/setup-redis-replication.sh

# 在机器2 (172.16.0.68) 上执行
chmod +x 部署脚本/setup-redis-replication.sh
./部署脚本/setup-redis-replication.sh

第五步:配置Nginx负载均衡

# 在两台机器上分别执行
cp 配置文件/nginx-load-balance.conf /etc/nginx/nginx.conf
nginx -t
systemctl reload nginx

第六步:配置MinIO主从同步(可选)

💡 MinIO 高可用说明:MinIO 不需要传统的主从配置,而是使用集群模式或主从同步。详细配置请参考:

# 方案A:基于现有启动脚本的主从同步(推荐)
# 在68机器上执行配置脚本
cd 部署脚本/
chmod +x setup-minio-replication.sh
./setup-minio-replication.sh

# 执行初始同步
mc mirror --remove --overwrite minio-master/ minio-slave/

# 启动同步服务
systemctl start minio-sync
systemctl enable minio-sync

# 方案B:MinIO集群模式(Docker部署)
# 在两台机器上分别执行
docker-compose -f 配置文件/docker-compose-minio-cluster.yml up -d

第七步:健康检查

# 定期执行健康检查
chmod +x 部署脚本/health-check.sh
./部署脚本/health-check.sh

# 可以配置crontab定时执行
# 0 */6 * * * /path/to/health-check.sh >> /var/log/health-check.log 2>&1

📋 配置说明

密码配置

所有脚本中的默认密码:

  • MySQL root密码: Hzdyjs@Root@123456
  • Redis密码: Hzdyjs@123456
  • MySQL复制用户密码: Repl@123456
  • MinIO用户名/密码: ruoyi/ruoyi123

⚠️ 生产环境请务必修改这些密码!

IP地址配置

  • 机器1: 172.16.0.67
  • 机器2: 172.16.0.68
  • 虚拟IP (Keepalived): 172.16.0.100 (可选)

端口规划

服务 端口 说明
Nginx 80/443 Web服务
后端服务 8080/8081 应用服务
MySQL 3306 数据库
Redis 6379 缓存
MinIO 9000/9001 对象存储

🔧 常用命令

MySQL主从管理

# 查看主从状态
mysql -u root -p -e "SHOW SLAVE STATUS\G"

# 停止/启动从库复制
mysql -u root -p -e "STOP SLAVE;"
mysql -u root -p -e "START SLAVE;"

Redis主从管理

# 查看主从信息
redis-cli -a Hzdyjs@123456 INFO replication

# 手动切换主从
redis-cli -a Hzdyjs@123456 SLAVEOF NO ONE

服务管理

# 查看服务状态
systemctl status nginx
systemctl status mysqld
systemctl status redis

# 查看后端服务
ps aux | grep ruoyi-admin
netstat -tlnp | grep 8080

⚠️ 注意事项

  1. 执行脚本前请仔细阅读脚本内容
  2. 生产环境务必修改所有默认密码
  3. 确保两台机器网络互通
  4. 配置防火墙规则允许必要端口
  5. 定期执行健康检查
  6. 做好数据备份

📞 故障排查

MySQL主从复制失败

# 检查从库状态
mysql -u root -p -e "SHOW SLAVE STATUS\G" | grep -i error

# 常见问题:
# 1. 网络不通 - 检查防火墙和网络
# 2. 密码错误 - 检查复制用户密码
# 3. 日志位置错误 - 重新配置MASTER_LOG_FILE和MASTER_LOG_POS

Redis主从复制失败

# 检查从库状态
redis-cli -a Hzdyjs@123456 INFO replication

# 常见问题:
# 1. 密码不匹配 - 检查masterauth配置
# 2. 网络不通 - 检查防火墙
# 3. 主库未设置密码 - 主库必须设置requirepass

后端服务无法访问

# 检查服务是否运行
ps aux | grep ruoyi-admin

# 检查端口是否监听
netstat -tlnp | grep 8080

# 检查日志
tail -f /root/app/logs/ruoyi-admin.log

# 检查健康端点
curl http://127.0.0.1:8080/health

📚 相关文档

⚡ 性能优化说明

MySQL主从复制性能影响

核心结论:MySQL主从复制对主库性能影响通常为 1-5%,通过优化可降至 1-2%。

快速优化方案:

  • ✅ 使用ROW格式binlog(已配置)
  • ✅ 设置sync_binlog=0(性能优先,已配置)
  • ✅ 增大binlog缓存(已配置)

详细分析:请查看 MySQL主从复制性能影响分析.md


📝 文档版本: v1.0
🔄 最后更新: 2025-01-27