首页/数据/备份与容灾速查/MariaDB 物理热备
数据库与云备份56 条

MariaDB 物理热备

MariaDB 官方物理热备工具:支持全量、增量与加密,流程与 xtrabackup 类似,必须与 MariaDB 版本配套使用。

备份与容灾速查数据更新于 2026-10-13

MariaDB 物理热备

MariaDB 官方的物理备份工具:支持全量与增量备份、可选加密与压缩,备份期间无需长时间锁表,流程与 Percona XtraBackup 类似。它与 MariaDB 版本严格配套,用错版本会直接拒绝运行。恢复时需要先停止服务并清空数据目录,再把备份文件复制回去并修正属主。

基本信息

适用平台MariaDB(工具版本必须与数据库版本配套)
名称演变早期称 mariabackup,现为 mariadb-backup
备份类型全量、增量、可选加密与压缩
恢复流程prepare → 停服务 → 清空 datadir → copy-back → 修属主 → 启动

典型使用场景

  • 大库物理备份:数据量大、逻辑备份窗口不够时使用
  • 热备不停机:备份期间业务可继续读写
  • 增量备份:全量后按增量备份,缩短每日窗口
  • 物理级恢复:整实例恢复到某个时间点后配合 binlog 补齐
  • 从库搭建:用物理备份初始化新的复制节点

备份准备与恢复

备份准备与恢复
# 全量备份
mariadb-backup --backup --target-dir=/backup/mdb/full --user=root --password=***
# 增量备份(基于上一次备份目录)
mariadb-backup --backup --target-dir=/backup/mdb/inc1 \
  --incremental-basedir=/backup/mdb/full --user=root --password=***
# 准备阶段:回放日志,使备份可用于恢复
mariadb-backup --prepare --target-dir=/backup/mdb/full
# 恢复:先停服务并清空数据目录
systemctl stop mariadb && rm -rf /var/lib/mysql/*
mariadb-backup --copy-back --target-dir=/backup/mdb/full
chown -R mysql:mysql /var/lib/mysql && systemctl start mariadb

步骤与风险

步骤作用风险
--backup复制数据文件并记录位点并发写入多时可能产生较多 redo 日志
--prepare回放 redo 使数据一致跳过该步会得到不可用的备份
--copy-back把文件复制回数据目录datadir 非空时启动异常
chown修正属主与权限属主错误导致服务无法启动或权限报错
不要用 MySQL 版 XtraBackup 备份 MariaDB,反之亦然,兼容性不被官方支持。工具与数据库版本不匹配时会直接拒绝执行。
copy-back 前 datadir 必须为空:残留的旧文件会让实例启动异常,且可能把旧数据与新数据混在一起造成难以定位的问题。
增量备份的恢复是把增量逐层叠加到全量上:先对全量执行 --prepare --apply-log-only,再对每个增量目录执行 --prepare --incremental-dir=,顺序或参数写错会让增量数据被直接忽略,最终恢复出的是全量时点的数据。叠加完成后要再核对一次位点与数据量。

易错点

  • copy-back 前 datadir 未清空:残留文件导致启动异常或数据混杂
  • 跳过 prepare 直接恢复:数据文件不一致,实例可能无法启动
  • 工具与数据库版本不配套:执行被拒绝,或产生不可靠的备份
  • 参数照搬 xtrabackup:两者相近但并非全部兼容,迁移脚本需逐项核对

数据来源与参考

  • MariaDB 文档(mariadb-backup)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌