工具选择
# 全量备份
mysqldump -u root -p --all-databases > all_backup.sql
# 单库备份
mysqldump -u root -p mydb > mydb_backup.sql
# 全量备份
mariabackup --user=root --password=123456 --backup --target-dir=/backup/full
# 增量备份(基于全量)
mariabackup --user=root --password=123456 --backup --target-dir=/backup/incr --incremental-basedir=/backup/full
备份类型
存储与安全
gzip)节省空间。自动化调度
使用cron定时执行备份脚本,例如每日凌晨备份:
# 编辑定时任务
crontab -e
# 添加以下行(每日2点备份全量)
0 2 * * * mysqldump -u root -p --all-databases > /backup/$(date +\%F).sql
SQL文件恢复
sudo systemctl stop mariadb
# 单库恢复
mysql -u root -p mydb < mydb_backup.sql
# 全量恢复(需先清空数据目录)
sudo rsync -aAXv /backup/full/ /var/lib/mysql/
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl start mariadb
物理备份恢复(mariabackup)
mariabackup --prepare --target-dir=/backup/full
mariabackup --prepare --target-dir=/backup/full --incremental-dir=/backup/incr
sudo rsync -aAXv /backup/full/ /var/lib/mysql/
sudo systemctl start mariadb
特殊情况处理
extundelete工具恢复文件(需提前安装)。参考来源: