一、备份策略设计:全量+增量+Binlog三级防护1. 全量备份(基础锚点)2. 增量备份(高频变更)- 基于Binlog:记录数据变更,适合高频写入场景。需先全量备份,后仅备份Binlog。
- 配置步骤:
3. 备份保留策略- 全量备份:保留2-7份(按周/月归档)。
- 增量备份:保留24-72小时(根据业务容忍度)。
- Binlog:配置
expire_logs_days=7 自动清理。
二、自动化实现:Cron+脚本+云工具1. Linux Cron定时任务- 示例脚本(
/backup/mysql_backup.sh):#!/bin/bash
BACKUP_DIR="/backup/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
DB_USER="admin"
DB_PASS="SecurePass"
DB_NAME="my_db"
mysqldump -u $DB_USER -p$DB_PASS --single-transaction --databases $DB_NAME | gzip > $BACKUP_DIR/full_$DATE.sql.gz
mysqlbinlog --read-from-remote-server --host=localhost -u $DB_USER -p$DB_PASS --start-position=$(mysql -u $DB_USER -p$DB_PASS -e "SHOW MASTER STATUS" | awk '/mysql-bin/{print $2}') mysql-bin.000002 > $BACKUP_DIR/incremental_$DATE.sql
- Cron配置(每日凌晨2点全量+每小时增量):
crontab -e
0 2 * * * /bin/bash /backup/mysql_backup.sh
0 * * * * /bin/bash /backup/incremental_backup.sh
2. 云数据库自动化工具- AWS RDS:通过 AWS Backup 配置每日全量备份+按需增量,支持跨区域复制。
- 阿里云RDS:自动备份策略(可设置保留天数、备份周期),支持按时间点恢复。
- 腾讯云CDB:自动备份+手动快照,支持秒级恢复。
三、故障恢复:全量+增量+Binlog时间点恢复1. 全量备份恢复2. 增量+Binlog时间点恢复- 步骤:
- 恢复最近全量备份:
mysql < full_backup.sql - 应用增量备份:
mysql < incremental_backup.sql - 应用Binlog到故障前时间点:
mysqlbinlog --stop-datetime="2025-12-04 14:30:00" mysql-bin.000003 | mysql -u admin -p
3. 主从复制环境恢复- 主库故障:
- 提升从库为主库,从全量备份+Binlog恢复数据。
- 从库故障:
|