# The Brilliant Discourse 恢复流程

**URL:** https://meta.discourse.org/t/the-brilliant-discourse-restore-process/145910
**Category:** Praise
**Created:** [2020年三月28日 04:29 UTC](https://meta.discourse.org/t/the-brilliant-discourse-restore-process/145910 "2020-03-28T04:29:34Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![neounix](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neounix/32/215617_2.png) [@neounix](https://meta.discourse.org/u/neounix)
#### Post date: [2020年三月28日 04:29 UTC](https://meta.discourse.org/t/the-brilliant-discourse-restore-process/145910/1 "2020-03-28T04:29:34Z")

</div>

在过去的一个月里，我们在各种场景和 Docker 容器中进行了无数次迁移测试。此外，我还执行了更多从一台服务器到另一台服务器的 Discourse 数据库恢复操作。

基于广泛的恢复测试，Discourse 的恢复过程非常出色，在命令行环境下各种情况中均完美运行。

例如，我们使用一个非常简单的脚本，将其保存在我的 `/shared/neo/bin` 目录中：

```plaintext
#!/bin/bash
echo "cd /var/www/discourse"
cd /var/www/discourse
echo "discourse enable_restore"
discourse enable_restore
echo "begin neo restore"
discourse restore unix-com-community-2020-03-27-033157-v20200320193612.tar.gz
echo "discourse disable_restore"
discourse disable_restore

```

当然，这个小小的 Bash 脚本并非必要，也不够优雅；但像这样“让操作更简单、更快捷”的小脚本，在你忙碌时确实很有帮助，只需将最新的备份复制粘贴到脚本中，即可快速完成恢复。

对我而言，我总是在命令行（在应用内，当然也在 Docker 中）执行恢复操作。经过多次测试场景验证，Discourse 的恢复过程从未失败过。只需创建一个新的 Discourse Docker 安装，然后从命令行执行恢复，“boom”，一切搞定。

与 Docker 出现之前的“恐龙时代”相比，Discourse 在 Docker 中恢复过程的卓越性使得整个恢复流程变得更加简单和高效。

例如，我们还将 Discourse 备份复制到异地（与生产环境的 Discourse 实例不同的服务器）。如果生产服务器或数据中心在灾难中“崩溃”，我们可以在任意选定的服务器上从头重建 Discourse 实例，并轻松完成恢复（当然，我们需要保持 DNS TTL 较短，但那是另一个话题）。

向 Discourse 团队致敬，他们的备份和恢复流程经过深思熟虑，设计卓越！

它一次次完美运行，毫无瑕疵。
