使用 Percona XtraBackup 备份 MySQL
物理备份必须匹配主版本;prepare 成功也要启动隔离实例验证
Percona XtraBackup 为受支持的 MySQL 系列提供物理在线备份。当前 8.4 文档要求使用与源数据库相同的 8.4 主系列,并在备份或 prepare 前执行版本比较;不要使用跳过版本检查的参数绕过保护。版本兼容说明
- 数据量较大、逻辑导出耗时过长的兼容 MySQL 物理备份
- 同主版本、同架构经过验证的迁移前备份和恢复
- 需要全量或增量物理备份并能提供隔离恢复环境的项目
- 未验证的跨 MySQL 主版本、不同数据库内核或不同存储格式直接恢复
- 只有托管数据库普通账号、无法访问数据目录或不支持物理恢复的场景
- 把物理备份文件直接覆盖到正在运行或非空的生产 datadir
- 记录 MySQL 发行版、完整版本、架构、存储引擎、加密和 XtraBackup 版本。
- 使用专用最小权限备份账号;凭据放在权限受限的
/run/secrets配置文件,不在命令行传密码。 - 备份目录与数据库数据目录分离,确认空间、I/O 限制和备份仓库保护。
- 在执行前检查备份锁、非 InnoDB 表、密钥环、插件和复制位点处理方式。
配置文件路径由受控运行环境提供;不要把含密码的文件提交到仓库:
备份完成后,在副本上执行 prepare:
官方命令模式区分 --backup、--prepare 与 --copy-back;待恢复备份必须先 prepare。XtraBackup 命令参考
恢复只在停止的隔离实例和经过确认的空数据目录中进行。--copy-back 保留备份目录,优先于会移走备份内容的 --move-back:
随后按目标 MySQL 包的要求设置属主和权限,使用隔离端口启动实例。官方恢复说明要求恢复前停止 MySQL、保持 datadir 为空,并指出备份必须先 prepare。恢复官方说明
- 备份与 prepare 的完整日志、退出码和 “completed OK” 结尾
- 版本清单、备份目录 Manifest、复制位点与密钥环材料
- 隔离实例启动日志、
mysqlcheck或等价逻辑检查 - 库表数量、关键表行数、抽样校验、业务查询和恢复耗时
- RTO/RPO 与目标值比较,以及未覆盖的非 InnoDB 或外部文件
- 版本检查失败时停止,选择匹配系列或改用逻辑迁移,不使用绕过参数。
- prepare 失败时保留原始备份副本和日志,不在同一目录反复尝试不兼容版本。
- copy-back 前置检查失败时不清空目录;重新创建隔离实例并由负责人确认路径。
- 启动失败时检查属主、配置、密钥环、InnoDB 日志和版本,而不是回写生产源端。
物理备份不能自动解决跨版本 SQL 兼容、账号权限、事件、外部对象和业务校验。核验日期:2026-07-14;8.0、8.4 和其他系列必须使用各自官方版本文档重新核验。
Built with