以下是Ubuntu下MySQL的备份策略,结合工具、自动化及管理要点:
mysqldump(逻辑备份)
mysqldump -u [用户名] -p[密码] --all-databases > /path/backup.sql
Percona XtraBackup(物理备份,推荐用于生产环境)
# 安装
sudo apt-get install percona-xtrabackup
# 完整备份
xtrabackup --backup --target-dir=/path/backup
/usr/local/bin/mysql_backup.sh):#!/bin/bash
BACKUP_DIR="/backups/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
mysqldump -u [用户名] -p[密码] [数据库名] > "$BACKUP_DIR/backup_$DATE.sql"
gzip "$BACKUP_DIR/backup_$DATE.sql"
# 删除7天前备份
find "$BACKUP_DIR" -type f -mtime +7 -name "*.sql.gz" -exec rm {} \;
crontab -e
0 2 * * * /usr/local/bin/mysql_backup.sh
存储与权限
chown mysql:mysql /path/to/backup。保留策略
验证与恢复测试
ls -l /path/to/backup。mysql -u [用户名] -p[密码] < backup.sql。gpg对备份文件加密。参考来源: