上一篇
🚨 最新消息:据AWS官方通知,Amazon Aurora MySQL将于2025年8月31日停用3.05/3.06/3.07版本!未主动升级的集群将在9月1日自动升级,建议提前规划版本升级与备份策略调整。
数据无价,备份是最后的保命符!
无论是误删表、硬盘崩溃还是黑客攻击,定期备份都能让你在数据灾难中快速回血,本文将教你用最接地气的方式,在CentOS上搭建一套“无人值守”的MySQL备份方案。
# 更新系统并安装MySQL sudo dnf update -y sudo dnf install mysql-server -y sudo systemctl start mysqld
sudo mkdir -p /var/backups/mysql sudo chmod 755 /var/backups/mysql # 权限要管好!
sudo dnf install percona-xtrabackup-80 # 按MySQL版本选对应工具
mysql_backup.sh
#!/bin/bash # 配置区:改这里! BACKUP_DIR="/var/backups/mysql" MYSQL_USER="root" MYSQL_PASSWORD="你的密码" # 🚨建议改用配置文件或密钥管理! DATE=$(date +"%Y%m%d_%H%M") # 创建备份文件 mysqldump -u$MYSQL_USER -p$MYSQL_PASSWORD --all-databases > $BACKUP_DIR/full_$DATE.sql # 删除7天前的旧备份(防爆盘) find $BACKUP_DIR -name "*.sql" -mtime +7 -exec rm -f {} \;
chmod +x mysql_backup.sh
crontab -e
0 2 * * * /path/to/mysql_backup.sh >> /var/log/mysql_backup.log 2>&1
💡 小技巧:输出日志方便排查问题!
./mysql_backup.sh ls -lh /var/backups/mysql # 应该能看到.sql文件
# 停止MySQL服务 sudo systemctl stop mysqld # 清空数据目录(危险操作,谨慎!) sudo rm -rf /var/lib/mysql/* # 还原备份 mysql -u$MYSQL_USER -p$MYSQL_PASSWORD < /var/backups/mysql/full_20250821_0200.sql # 重启服务 sudo systemctl start mysqld
用Percona XtraBackup实现每日增量备份:
# 全量备份 innobackupex --user=$MYSQL_USER --password=$MYSQL_PASSWORD /backup/full # 增量备份(基于全量) innobackupex --user=$MYSQL_USER --password=$MYSQL_PASSWORD --incremental /backup/inc --incremental-basedir=/backup/full
将备份文件同步到AWS S3:
aws s3 cp /var/backups/mysql s3://your-bucket/mysql-backup --recursive
用邮件或企业微信通知备份结果:
# 备份成功发送邮件 echo "备份成功!" | mail -s "MySQL备份通知" admin@example.com
LOCK TABLES
权限。 --single-transaction
参数减少锁表时间。 --default-character-set=utf8mb4
。 mysqlcheck
检查数据库完整性。 🎉 :备份不是一次性工作,而是持续运营的“数据保险”,建议每月模拟一次恢复演练,确保关键时刻不掉链子!
🔗 参考工具:
数据安全,从今天开始! 💪
本文由 业务大全 于2025-08-21发表在【云服务器提供商】,文中图片由(业务大全)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://xdh.7tqx.com/wenda/681447.html
发表评论