数据库备份与恢复指南 Print

  • 15

定期备份数据库是防止数据丢失最重要的措施。

1. mysqldump 逻辑备份

# 备份单个数据库
mysqldump -u root -p mydb > mydb.sql

# 备份多个数据库
mysqldump -u root -p --databases db1 db2 > multi.sql

# 备份所有数据库
mysqldump -u root -p --all-databases > all.sql

# 压缩备份
mysqldump -u root -p mydb | gzip > mydb_$(date +%Y%m%d).sql.gz

2. 恢复

# 恢复单个数据库
mysql -u root -p mydb < mydb.sql

# 从压缩文件恢复
gunzip -c mydb.sql.gz | mysql -u root -p mydb

# 恢复所有数据库
mysql -u root -p < all.sql

3. 自动备份脚本

#!/bin/bash
BACKUP_DIR="/backup/mysql"
DB_USER="root"
DB_PASS="yourpassword"
DB_NAME="mydb"
RETENTION_DAYS=30

mkdir -p $BACKUP_DIR
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/${DB_NAME}_$(date +%Y%m%d).sql.gz
find $BACKUP_DIR -name "*.sql.gz" -mtime +$RETENTION_DAYS -delete

4. 设置定时任务

# crontab -e 添加
0 2 * * * /usr/local/bin/mysql_backup.sh

5. XtraBackup 物理备份(大型数据库)

sudo apt install percona-xtrabackup-80
xtrabackup --backup --target-dir=/backup/xtra/
xtrabackup --prepare --target-dir=/backup/xtra/

Was this answer helpful?

« Back