跳至主要内容 跳至导航 跳至页脚
限时:设计合作伙伴计划,BUSINESS 套餐永久免费

备份与恢复

将仓库推送到外部存储,在需要时于新服务器上恢复。

备份与恢复

你的应用已在生产环境运行。立即备份。rdc 可以将整个仓库(应用、数据库、文件、配置)推送到外部存储,随时拉取回来。应对勒索软件、硬件故障,万无一失。

观看教程

三个步骤

配置、推送、恢复

  1. 配置存储提供商。
  2. 推送备份。
  3. 需要时恢复

第一步:配置存储

你需要一个 rclone 配置文件。如果你已在使用 rclone,可以直接导入:

rdc config storage import --file rclone.conf

导入现有的 rclone 配置。rclone 支持 S3、Backblaze、Google Drive、Dropbox 等众多服务。如果你已经在使用 rclone,同一份配置可以直接导入。

支持 S3、B2、Google Drive、Dropbox 等众多存储服务。验证已配置的内容:

rdc config storage list

列出 CLI 当前已识别的存储。每个存储都是备份的目标位置。

第二步:推送备份

rdc repo push --name my-app -m <machine-name> --to my-storage

推送完整备份。整个 repository 将被上传,包括应用、数据库、文件和配置。由于 repository 在静止状态下已加密,备份同样是加密的,无需额外的密钥管理。

整个仓库(应用、数据库、文件,一切)都已备份。由于仓库本身是加密的,备份也是加密的。无需额外的密钥管理。

随时列出备份:

rdc repo backup list --from my-storage -m <machine-name>

列出此存储上可用的备份。在全新服务器上恢复只需一条命令:repo pull 命令。

为什么没有停机时间?

备份上传时应用保持运行。这是如何保证一致性的?

原理与 fork 相同。rdc 先 fork,然后上传 fork。fork 捕获了那一刻的状态,你的线上应用继续运行。无停机,无不一致。

第三步:恢复(真正的演练)

从未实际恢复过的备份只是一种期望,不算真正的备份。先将仓库下线:

rdc repo down --name my-app --machine <machine-name> --unmount

首先将 repository 下线:使用 repo down 命令停止服务并卸载加密卷。

直接从存储拉取备份:

rdc repo pull --name my-app --machine <machine-name> --from my-storage --force --yes

使用 repo pull 命令从存储中拉取备份。镜像将被获取并进行完整性校验。

然后重新挂载,完全恢复:

rdc repo mount --name my-app --machine <machine-name>

重新挂载 repository,它已完全恢复。同样的拉取操作在全新机器上也同样适用。

同样的 pull 命令在全新服务器上同样有效:设置好服务器,将其添加到 rdc,然后在那台机器上执行 pull:

rdc repo pull --name my-app -m new-server --from my-storage
rdc repo up --name my-app -m new-server

相同的数据,相同的容器,不同的机器。

更快的备份:机器到机器

你也可以直接在机器之间推送,无需经过云存储:

rdc repo push --name my-app -m my-server --to-machine backup-server

进阶提示。 机器到机器推送在首次之后只发送变更的数据块。增量传输教程有现场演示。


下一篇:网络与域名