|
|
hai 11 meses | |
|---|---|---|
| .. | ||
| 部署脚本 | hai 11 meses | |
| 配置文件 | hai 11 meses | |
| MinIO主从配置快速指南.md | hai 11 meses | |
| MinIO单机转集群数据迁移指南.md | hai 11 meses | |
| MinIO集群Nginx配置指南.md | hai 11 meses | |
| MinIO集群启动步骤说明.md | hai 11 meses | |
| MinIO集群快速配置指南.md | hai 11 meses | |
| MinIO集群文件同步机制说明.md | hai 11 meses | |
| MinIO集群配置指南(基于启动脚本).md | hai 11 meses | |
| MinIO高可用配置指南.md | hai 11 meses | |
| MySQL主从复制性能影响分析.md | hai 11 meses | |
| MySQL主从复制配置步骤.md | hai 11 meses | |
| MySQL数据库重命名指南.md | hai 11 meses | |
| MySQL系统数据库说明.md | hai 11 meses | |
| README.md | hai 11 meses | |
| 基于现有my.cnf的主从配置指南.md | hai 11 meses | |
| 基于现有启动脚本的MinIO主从配置.md | hai 11 meses | |
| 快速配置主从复制.md | hai 11 meses | |
生产环境双机部署方案/
├── 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 (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
💡 系统数据库说明:系统自带的数据库(
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
# 在机器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
# 在两台机器上分别执行
cp 配置文件/nginx-load-balance.conf /etc/nginx/nginx.conf
nginx -t
systemctl reload nginx
💡 MinIO 高可用说明:MinIO 不需要传统的主从配置,而是使用集群模式或主从同步。详细配置请参考:
- 基于现有启动脚本的MinIO主从配置.md - 基于现有启动脚本的配置(推荐)
- MinIO高可用配置指南.md - 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
所有脚本中的默认密码:
Hzdyjs@Root@123456Hzdyjs@123456Repl@123456ruoyi/ruoyi123⚠️ 生产环境请务必修改这些密码!
| 服务 | 端口 | 说明 |
|---|---|---|
| Nginx | 80/443 | Web服务 |
| 后端服务 | 8080/8081 | 应用服务 |
| MySQL | 3306 | 数据库 |
| Redis | 6379 | 缓存 |
| MinIO | 9000/9001 | 对象存储 |
# 查看主从状态
mysql -u root -p -e "SHOW SLAVE STATUS\G"
# 停止/启动从库复制
mysql -u root -p -e "STOP SLAVE;"
mysql -u root -p -e "START SLAVE;"
# 查看主从信息
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
# 检查从库状态
mysql -u root -p -e "SHOW SLAVE STATUS\G" | grep -i error
# 常见问题:
# 1. 网络不通 - 检查防火墙和网络
# 2. 密码错误 - 检查复制用户密码
# 3. 日志位置错误 - 重新配置MASTER_LOG_FILE和MASTER_LOG_POS
# 检查从库状态
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主从复制对主库性能影响通常为 1-5%,通过优化可降至 1-2%。
快速优化方案:
sync_binlog=0(性能优先,已配置)详细分析:请查看 MySQL主从复制性能影响分析.md
📝 文档版本: v1.0
🔄 最后更新: 2025-01-27