温馨提示×

Ubuntu上MariaDB备份策略有哪些

小樊
40
2025-12-04 19:26:53
栏目: 云计算

Ubuntu上MariaDB备份策略全景

策略总览与选型

  • 下表对比常见策略的适用场景、优点与限制,便于快速选型:
策略 工具 适用场景 主要优点 限制与注意
逻辑备份 mysqldump、mysqlpump 中小规模、跨版本迁移、按库/表恢复 可读性强、灵活、易迁移 体积大、导入慢、锁定/一致性需额外选项
物理热备 mariabackup(MariaDB官方) 大型库、需最小化停机、快速恢复 热备、速度快、支持增量 仅限同版本恢复、需专用目录与权限
第三方物理 Percona XtraBackup 复杂备份/集群环境 功能丰富、生态成熟 与**MariaDB 10.3+**存在兼容性问题,谨慎使用
文件系统快照 LVM/ZFS + rsync 有快照能力的块存储 几乎零停机、快速 依赖存储/文件系统,操作需严谨

以上工具在 Ubuntu 上均可落地,选择时优先考虑数据规模、RPO/RTO 与恢复复杂度。

常用策略与关键命令

  • 逻辑备份(mysqldump/mysqlpump)

    • 全库备份并压缩
      • mysqldump -u root -p --all-databases | gzip > /backup/all_$(date +%F).sql.gz
    • 单库备份
      • mysqldump -u root -p mydb > /backup/mydb_$(date +%F).sql
    • 并行备份(mysqlpump)
      • mysqlpump -u root -p --databases db1 db2 > /backup/dbs_$(date +%F).sql
    • 定时任务(cron,示例每日 2 点)
      • 0 2 * * * mysqldump -u root -p mydb | gzip > /backup/mydb_$(date +%Y%m%d).sql.gz
    • 说明:可按需添加 --single-transaction(InnoDB一致性)、–routines --triggers --events 等选项。
  • 物理热备(mariabackup,支持全量/增量)

    • 安装
      • sudo apt install mariadb-backup -y
    • 全量备份
      • sudo mariabackup --backup --target-dir=/var/backups/mariadb/full-$(date +%F) --user=root --password=‘pwd’
    • 准备(Prepare)
      • sudo mariabackup --prepare --target-dir=/var/backups/mariadb/full-$(date +%F)
    • 增量备份(基于上次备份)
      • sudo mariabackup --backup --target-dir=/var/backups/mariadb/inc-$(date +%F) --incremental-basedir=/var/backups/mariadb/full-$(date +%F) --user=root --password=‘pwd’
    • 恢复演练(灾难恢复)
      • 停止服务:sudo systemctl stop mariadb
      • 备份旧数据目录:sudo mv /var/lib/mysql /var/lib/mysql.bak
      • 拷回备份:sudo mariabackup --copy-back --target-dir=/var/backups/mariadb/full-$(date +%F)
      • 修正权限:sudo chown -R mysql:mysql /var/lib/mysql
      • 启动服务:sudo systemctl start mariadb
    • 提示:增量恢复需按顺序对全量及每个增量执行 --prepare(除最后一个增量外常用 --apply-log-only)。
  • 第三方物理(Percona XtraBackup,适用于特定场景)

    • 安装:sudo apt-get install percona-xtrabackup-24
    • 全量:xtrabackup --backup --target-dir=/backup/base --user=root --password=‘pwd’
    • 准备:xtrabackup --prepare --target-dir=/backup/base
    • 拷贝回:xtrabackup --copy-back --target-dir=/backup/base
    • 注意:与 MariaDB 10.3+ 的兼容性限制,生产使用前务必验证版本匹配。
  • 文件系统级备份(停机快照)

    • 停机一致性快照
      • sudo systemctl stop mariadb
      • sudo rsync -a --delete /var/lib/mysql /backup/mysql_$(date +%F)
      • sudo systemctl start mariadb
    • 说明:简单可靠,但需停机;适合维护窗口或无法使用热备的场景。

自动化与保留策略

  • 备份脚本范式(含保留与远程传输)
    • 示例(保留 7 天,gzip,rsync 到远端)
      • BACKUP_DIR=“/backup/mariadb”
      • mkdir -p $BACKUP_DIR
      • mysqldump -u root -p mydb | gzip > $BACKUP_DIR/mydb_$(date +%Y%m%d%H%M%S).sql.gz
      • rsync -avz $BACKUP_DIR user@remote:/backup/mariadb/
      • find $BACKUP_DIR -type f -name “*.sql.gz” -mtime +7 -delete
    • 定时执行:将上述脚本加入 root 的 crontab,如每日 2 点执行。

恢复要点与注意事项

  • 逻辑备份恢复
    • 全库:mysql -u root -p < all_databases.sql
    • 单库:先 mysql -u root -p -e “CREATE DATABASE mydb;” 再 mysql -u root -p mydb < mydb.sql
  • 物理备份恢复
    • 必须执行 --prepare 使备份一致;恢复前停库、清空/移走原 datadir、–copy-back 后修正权限为 mysql:mysql 再启动。
  • 一致性选项
    • mysqldump 建议搭配 --single-transaction(InnoDB)获取一致性快照;如含存储过程/触发器/事件,增加 --routines --triggers --events。
  • 远程与异地
    • 结合 rsync/scp 将备份复制到异地/云存储,提升容灾能力。
  • 安全
    • 备份文件含敏感信息,设置合适的文件权限访问控制;凭据建议使用配置文件或凭据管理,避免出现在命令行历史中。

0