首页/数据/备份与容灾速查/xfsdump 与 xfsrestore

xfsdump 与 xfsrestore

XFS 文件系统的原生备份工具:支持多级增量(-l)与介质管理,恢复使用 xfsrestore,适合整文件系统级别的备份。

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

xfsdump 是什么

xfsdump 与 xfsrestore 是 XFS 文件系统自带的一对备份工具:前者把整个文件系统备份成 dump 归档,后者负责恢复。它支持全量与多级增量(-l 0 到 9),增量之间靠本机库存记录推算变化,归档是专用格式,必须用 xfsrestore 读取,不能用 tar 解包。适合整文件系统级别的备份与同版本 XFS 之间的迁移。

基本信息

适用平台Linux(内核与工具链需支持 XFS)
备份级别-l 0 全量,-l 1 至 9 为增量,数字越小变化范围越大
库存记录/var/lib/xfsdump/inventory,增量推算依赖它
常用选项-L 会话标签、-M 介质标签、-f 输出目标
权限要求读写文件系统与库存需要 root
已知限制只能备份 XFS,dump 为专用格式,恢复必须用 xfsrestore

典型使用场景

  • 大文件系统(数据盘、镜像仓库)的整卷备份,比 tar 更适合海量小文件
  • 用多级增量压缩每日备份窗口:一级增量只含自上次全量以来的变化
  • 同版本 XFS 之间的数据盘迁移或换盘
  • 从归档中挑单个文件或目录恢复,不必先整卷还原
  • 发布或变更前留存一份整卷快照式归档,便于整体回退

全量与增量

全量与增量
xfsdump -l 0 -L full -M media0 -f /backup/xfs-full.dump /mnt/xfs  # 全量
xfsdump -l 1 -L inc1 -M media1 -f /backup/xfs-inc1.dump /mnt/xfs  # 一级增量
xfsdump -I                                                        # 查看库存与会话
xfsrestore -f /backup/xfs-full.dump /mnt/restore                  # 先恢复全量
xfsrestore -f /backup/xfs-inc1.dump /mnt/restore                  # 再按序应用增量
xfsrestore -f /backup/xfs-full.dump -t                           # 只列内容,不写盘
# 恢复目标建议是空目录或已格式化的新文件系统

库存与归档列读法

字段含义正常/异常
file system / mount point被备份的文件系统与挂载点与预期路径不符说明备错了对象
session id / label会话编号与标签,增量靠它串联增量引用不到父会话,恢复链就断了
level0 全量,1 至 9 增量缺全量时增量无法独立恢复
media label / objects介质标签与对象数对象数异常偏少要查排除规则是否写错
start / end time本次会话的时间窗与备份计划不符说明调度有偏差
增量依赖库存记录:备份机重建、重装系统后库存目录会丢失,多级增量关系随之断裂,只能重新做全量。备份与恢复前都建议先用 xfsdump -I 核对库存状态。
对比 tar 的取舍:tar 更适合目录级、可跨文件系统搬运的归档;xfsdump 更适合整个 XFS 文件系统、需要多级增量的场景。两者都不能解决运行中数据库的应用一致性问题。

易错点

  • 库存记录丢失或未随机器迁移:多级增量关系被破坏,恢复时只能重做全量
  • 误以为 dump 是 tar 归档:用 tar 解包必然失败,恢复必须使用 xfsrestore
  • 恢复目标目录非空:xfsrestore 会拒绝或被要求确认,容易误覆盖已有数据
  • 把增量当独立备份保管:只留一份一级增量、丢了全量,等于没有备份

数据来源与参考

  • man 8 xfsdump / xfsrestore 手册
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌