备份策略
-
工具选择
- mysqldump:导出为SQL文件,适合中小型数据库,支持全量/单表备份。
# 全量备份 mysqldump -u root -p --all-databases > all_backup.sql # 单库备份 mysqldump -u root -p mydb > mydb_backup.sql - mariabackup(官方推荐):支持物理备份,适合大型数据库,可增量备份。
# 全量备份 mariabackup --user=root --password=123456 --backup --target-dir=/backup/full # 增量备份(基于全量) mariabackup --user=root --password=123456 --backup --target-dir=/backup/incr --incremental-basedir=/backup/full - 图形工具:如MySQL Workbench,通过界面操作备份。
- mysqldump:导出为SQL文件,适合中小型数据库,支持全量/单表备份。
-
备份类型
- 全量备份:定期(如每日)备份所有数据。
- 增量备份:仅备份自上次备份以来的变化,节省空间。
-
存储与安全
- 异地存储备份文件(如远程服务器或云存储),避免单点故障。
- 压缩备份文件(如
gzip)节省空间。 - 加密敏感数据备份。
-
自动化调度
使用cron定时执行备份脚本,例如每日凌晨备份:# 编辑定时任务 crontab -e # 添加以下行(每日2点备份全量) 0 2 * * * mysqldump -u root -p --all-databases > /backup/$(date +\%F).sql
恢复策略
-
SQL文件恢复
- 停止MariaDB服务:
sudo systemctl stop mariadb - 恢复备份文件:
# 单库恢复 mysql -u root -p mydb < mydb class="hljs-comment"># 全量恢复(需先清空数据目录) sudo rsync -aAXv /backup/full/ /var/lib/mysql/ sudo chown -R mysql:mysql /var/lib/mysql sudo systemctl start mariadb
- 停止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工具恢复文件(需提前安装)。 - 版本兼容性:恢复前确保目标服务器MariaDB版本与备份时一致。
- 误删除数据:通过
注意事项
- 备份前确认无写入操作,或使用事务锁保证一致性。
- 定期验证备份可用性,避免过期备份失效。
- 生产环境建议同时采用全量+增量备份,结合异地存储提升可靠性。
参考来源: