|
|
MySQL主从同步搭建与数据备份配置指南
一、MySQL主从同步搭建
1. 环境准备
- 主服务器(Master): 192.168.1.100
- 从服务器(Slave): 192.168.1.101
- 确保两台服务器MySQL版本一致或兼容
2. 主服务器配置
修改MySQL配置文件(my.cnf或my.ini)- [mysqld]
- server-id = 1
- log_bin = mysql-bin
- binlog_format = ROW # 推荐使用ROW格式
- binlog-do-db = your_database_name # 可选,指定要同步的数据库
- # binlog-ignore-db = mysql # 可选,指定不同步的数据库
复制代码
创建同步专用用户- CREATE USER 'repl'@'%' IDENTIFIED BY 'repl_password';
- GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
- FLUSH PRIVILEGES;
复制代码
获取主服务器状态- SHOW MASTER STATUS;
- -- 记录File和Position值,后续从服务器配置需要
复制代码
3. 从服务器配置
修改MySQL配置文件- [mysqld]
- server-id = 2
- relay-log = mysql-relay-bin
- read_only = 1 # 设置为只读模式
复制代码
配置主从同步- CHANGE MASTER TO
- MASTER_HOST='192.168.1.100',
- MASTER_USER='repl',
- MASTER_PASSWORD='repl_password',
- MASTER_LOG_FILE='mysql-bin.000001', -- 从主服务器获取的值
- MASTER_LOG_POS=107; -- 从主服务器获取的值
- START SLAVE;
- SHOW SLAVE STATUS\G -- 检查同步状态,确保Slave_IO_Running和Slave_SQL_Running都是Yes
复制代码
4. 验证主从同步
- 在主服务器上创建测试表或插入数据
- 检查从服务器是否同步了这些更改
二、MySQL数据备份配置
1. 逻辑备份(mysqldump)
全量备份- mysqldump -u username -p --all-databases --single-transaction > full_backup_$(date +%F).sql
复制代码
增量备份(结合二进制日志)
2. 物理备份(文件系统级)
使用Percona XtraBackup(推荐)- # 安装Percona XtraBackup
- # 完整备份
- innobackupex --user=username --password=password /path/to/backup/dir
- # 准备备份(应用事务日志)
- innobackupex --apply-log /path/to/backup/dir
- # 恢复备份
- innobackupex --copy-back /path/to/backup/dir
复制代码
3. 自动化备份脚本示例- #!/bin/bash
- BACKUP_DIR="/backup/mysql"
- DATE=$(date +%Y%m%d%H%M%S)
- USER="backup_user"
- PASS="backup_password"
- # 创建备份目录
- mkdir -p $BACKUP_DIR/$DATE
- # 执行全量备份
- mysqldump -u$USER -p$PASS --single-transaction --all-databases > $BACKUP_DIR/$DATE/full_backup.sql
- # 备份二进制日志(可选)
- MYSQL_BINLOG_FILE=$(mysql -u$USER -p$PASS -e "SHOW MASTER STATUS\G" | grep File | awk '{print $2}')
- cp /var/lib/mysql/mysql-bin.* $BACKUP_DIR/$DATE/
- # 清理旧备份(保留最近7天)
- find $BACKUP_DIR -type d -mtime +7 -exec rm -rf {} \;
复制代码
4. 备份策略建议
- 全量备份:每周一次完整备份
- 增量备份:每天进行二进制日志备份
- 异地备份:将备份文件复制到远程服务器或云存储
- 测试恢复:定期测试备份文件的可恢复性
三、注意事项
- 安全性:
- 同步账户应限制访问IP
- 备份文件应加密存储
- 定期更换同步账户密码
- 性能考虑:
- 主从同步可能增加主服务器负载
- 大事务可能导致同步延迟
- 监控主从服务器的性能指标
- 故障处理:
- 定期检查主从同步状态
- 准备故障切换方案
- 记录并分析同步错误
- 版本兼容性:
- 主从服务器MySQL版本应兼容
- 升级时应先升级从服务器再升级主服务器
通过以上配置,您可以建立一个可靠的MySQL主从同步环境和数据备份策略,确保数据的安全性和可用性。 |
|