Files
orbit/docs/api/backup-restore.md

1.5 KiB

隔离备份恢复演练

scripts/test-backup-restore.sh 用两个一次性 MySQL 容器演练逻辑备份恢复:源库按当前迁移建库并写入通用应用、命名空间、凭据和队列,使用 MySQL mysqldump 导出,再恢复到独立目标库。脚本随后运行 orbit-admin verify,并比较关键核心表数量和目标库外键数量。

DOCKER=/usr/local/bin/docker \
ORBIT_TEST_MYSQL_IMAGE=mysql:8.4 \
sh scripts/test-backup-restore.sh

运行前需要已经构建当前版本的 bin/orbit-migrate 和 bin/orbit-admin;也可以通过 ORBIT_MIGRATE_BIN、ORBIT_ADMIN_BIN 指定绝对路径。脚本只连接自己创建的容器,使用随机 root 密码和随机映射端口;退出时删除容器和临时凭据文件。它不读取、覆盖或清理任何已有数据库。

演练检查以下结果:

  • 迁移账本完整且 dirty=false,当前版本与二进制校验和一致。
  • 应用、命名空间、凭据、队列和迁移账本的核心记录数量在源库与恢复库相同。
  • 恢复库 Orbit 表的外键数量为零,固定观测索引完整。
  • orbit-admin verify 只读返回 complete=true;它不会修改恢复库或自动修复结构。

该演练验证逻辑备份文件能在同版本 MySQL 和同一迁移账本下恢复。它不能证明备份介质持久性、跨版本升级、跨故障域复制、生产密钥托管、外部业务副作用核对、RPO/RTO 或在线大库备份窗口;这些必须在目标部署环境单独验收。