温馨提示×

Ubuntu中MariaDB的备份恢复策略

小樊
45
2025-08-19 19:37:26
栏目: 云计算

备份策略

  1. 工具选择

    • 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,通过界面操作备份。
  2. 备份类型

    • 全量备份:定期(如每日)备份所有数据。
    • 增量备份:仅备份自上次备份以来的变化,节省空间。
  3. 存储与安全

    • 异地存储备份文件(如远程服务器或云存储),避免单点故障。
    • 压缩备份文件(如gzip)节省空间。
    • 加密敏感数据备份。
  4. 自动化调度
    使用cron定时执行备份脚本,例如每日凌晨备份:

    # 编辑定时任务
    crontab -e
    # 添加以下行(每日2点备份全量)
    0 2 * * * mysqldump -u root -p --all-databases > /backup/$(date +\%F).sql
    

恢复策略

  1. SQL文件恢复

    • 停止MariaDB服务:
      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
      
  2. 物理备份恢复(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
      
  3. 特殊情况处理

    • 误删除数据:通过extundelete工具恢复文件(需提前安装)。
    • 版本兼容性:恢复前确保目标服务器MariaDB版本与备份时一致。

注意事项

  • 备份前确认无写入操作,或使用事务锁保证一致性。
  • 定期验证备份可用性,避免过期备份失效。
  • 生产环境建议同时采用全量+增量备份,结合异地存储提升可靠性。

参考来源:

0