内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。
本文档风哥主要介绍数据备份与灾难恢复的实战方学习交流加群风哥微信: itpux-com法,包括备份策略、备份工具、恢复流程等内容。
Part01-基础概念与理论知识
1.1 备份策略
完全备份:备份所有数据
增量备份:备份变化的数据
差异备份:备份自上次完全备份后的变化
# 备份策略
3-2-1原则:3份副本、2种介质、1个异地
定期备份:每日增量、每周完全
异地备份:防止本地灾难
Part02-生产环境规划与建议
2.1 灾难恢复规划
RTO(Recovery Time Objective):恢复时间目标
RPO(Recovery Point Objective):恢复点目标
# 恢复策略
1. 制定恢复计划
2. 定期测试恢复
3. 记录恢复步骤
4. 培训运维人员
Part03-生产环境项目实施方案
3.1 使用rsync备份
$ rsync -avz /data/ /backup/data/
# 远程备份
$ rsync -avz -e ssh /data/ user@backup-server:/backup/data/
# 增量备份
$ rsync -avz –backup –backup-dir=/backup/incremental/$(date +%Y%m%d) /data/ /backup/current/
# 定时备份脚本
$ cat > /usr/local/bin/backup.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="/backup"
DATA_DIR="/data"
DATE=$(date +%Y%m%d)
# 完全备份(每周日)
if [ $(date +%u) -eq 7 ]; then
rsync -avz --delete $DATA_DIR/ $BACKUP_DIR/full/
else
# 增量备份
rsync -avz --backup --backup-dir=$BACKUP_DIR/inc/$DATE/ $DATA_DIR/ $BACKUP_DIR/current/
fi
# 删除30天前的增量备份
find $BACKUP_DIR/inc/ -type d -mtime +30 -exec rm -rf {} \;
EOF
# 添加到定时任务
$ crontab -e
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
3.2 使用tar备份
$ tar -czpf /backup/full-$(date +%Y%m%d).tar.gz /data/
# 增量备份
$ tar -czpf /backup/inc-$(date +%Y%m%d).tar.gz -g /backup/snapshot.snar /data/
# 恢复数据
$ tar -xzpf /backup/full-20260406.tar.gz -C /restore/
# 恢复学习交流加群风哥QQ113257174增量备份
$ tar -xzpf /backup/full-20260406.tar.gz -g /dev/null -C /restore/
$ tar -xzpf /backup/inc-20260407.tar.gz -g /dev/null -C /restorfrom PG视频:www.itpux.come/
Part04-生产案例与实战讲解
4.1 案例:数据库备份与恢复
# 1. 完全备份
$ mysqldump -u root -p –all-databases –single-transaction –flush-logs –master-data=2 > /backup/mysql/full-$(date +%Y%m%d).sql
# 2. 增量备份(使用二进制日志)
$ mysql -u root -p -e “FLUSH LOGS;”
$ cp /var/lib/mysql/mysql-bin.* /backup/mysql/binlog/
# 3. 恢复完全备份
$ mysql -u root -p < /backup/mysql/full-20260406.sql
# 4. 恢复增量备份
$ mysqlbinlog /backup/mysql/binlog/mysql-bin.000002 | mysql -u root -p
# 5. 自动化备份脚本
$ cat > /usr/local/bin/mysql_backup.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="/backup/mysql"
DATE=$(date +%Y%m%d)
MYSQL_USER="root"
MYSQL_PASS="password"
# 完全备份
mysqldump -u $MYSQL_USER -p$MYSQL_PASS --all-databases --single-transaction > $BACKUP_DIR/full-$DATE.sql
# 刷新日志
mysql -u $MYSQL_USER -p$MYSQL_PASS -e “FLUSH LOGS;”
# 备份二进制日志
cp /var/lib/mysql/mysql-bin.* $BACKUP_DIR/binlog/
# 删除7天前的备份
find $BACKUP_DIR -name “*.sql” -mtime +7 -delete
EOF
风哥提示:
Part05-风哥经验总结与分享
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
