# 文件系统备份恢复：无法重建也无法启动

**URL:** <https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624>\
**Category:** Self-hosting\
**Created:** [2021年二月14日 01:46 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624 "2021-02-14T01:46:30Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![ulysses4ever](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ulysses4ever/32/122522_2.png) [@ulysses4ever](https://meta.discourse.org/u/ulysses4ever)\
**Post date:** [2021年二月14日 01:46 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/1 "2021-02-14T01:46:30Z")

</div>

服务器的 RAID 在几天前故障，我们正尝试从文件系统备份中恢复 Discourse 实例，但至今尚未成功。

运行 `./launcher rebuild app` 时出现以下错误：

```plaintext
FAILED
--------------------
Pups::ExecError: /root/upgrade_postgres failed with return #<Process::Status: pid 46 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params "/root/upgrade_postgres"

```

其输出声称只需运行 `./launcher start app` 即可，但该命令同样失败：

```plaintext
+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=3 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e DISCOURSE_DEVELOPER_EMAILS=bravit111@gmail.com,ulysses4ever@gmail.com -e DISCOURSE_HOSTNAME=forum.mmcs.sfedu.ru -e DISCOURSE_SMTP_ADDRESS=class.mmcs.sfedu.ru -e DISCOURSE_ENABLE_CORS=true -e 'DISCOURSE_CORS_ORIGIN=*' -e DONT_PRECOMPILE_CSS=1 -h users-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 8088:80 -p 2222:22 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:b1:c6:37:24:01 local_discourse/app /sbin/boot
Unable to find image 'local_discourse/app:latest' locally
docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.

```

[两个命令的完整输出请参见此处](https://gist.github.com/ulysses4ever/35e8683dfc39358c20f6d2e2309ca79e)。

顺便提一下，我的 `docker ps` 输出为空。

我不确定该如何继续，如有任何帮助将不胜感激。

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2021年二月14日 01:56 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/2 "2021-02-14T01:56:34Z")

</div>

> [@ulysses4ever](#):
>
> 我们正试图从文件系统备份中恢复我们的 Discourse 实例。

为什么不使用我们官方的备份功能，将备份文件恢复到新服务器上呢？

这是我们支持的恢复方法，相关文档请参阅 [创建、下载并恢复 Discourse 数据库备份](https://meta.discourse.org/t/create-download-and-restore-a-backup-of-your-discourse-database/122710)。

---

<div class="post-metadata">

**Author:** ![ulysses4ever](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ulysses4ever/32/122522_2.png) [@ulysses4ever](https://meta.discourse.org/u/ulysses4ever)\
**Post date:** [2021年二月14日 02:00 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/3 "2021-02-14T02:00:48Z")

</div>

此方法假设你已有一个由运行中的 Discourse 实例准备的备份。我（现在）没有这样的备份了：cry:

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2021年二月14日 02:02 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/4 "2021-02-14T02:02:28Z")

</div>

默认情况下已启用备份，并保存在主机文件系统中。如果您有文件系统备份，则备份文件位于 backups 文件夹中…

---

<div class="post-metadata">

**Author:** ![ulysses4ever](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ulysses4ever/32/122522_2.png) [@ulysses4ever](https://meta.discourse.org/u/ulysses4ever)\
**Post date:** [2021年二月14日 02:14 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/5 "2021-02-14T02:14:02Z")

</div>

备份功能似乎未启用：我只看到几个备份 tar 包，且修改日期相当久远……

---

<div class="post-metadata">

**Author:** ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)\
**Post date:** [2021年二月14日 02:17 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/6 "2021-02-14T02:17:05Z")

</div>

我相信在标准的 Discourse 安装中，每周备份默认是开启的。

---

<div class="post-metadata">

**Author:** ![ulysses4ever](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ulysses4ever/32/122522_2.png) [@ulysses4ever](https://meta.discourse.org/u/ulysses4ever)\
**Post date:** [2021年二月14日 02:17 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/7 "2021-02-14T02:17:44Z")

</div>

我最终可能会使用其中之一，但我仍然需要一个正在运行的实例，而且在尝试运行时，我不断遇到这些错误。

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2021年二月14日 02:19 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/8 "2021-02-14T02:19:34Z")

</div>

将备份文件移动到另一台服务器要容易得多，然后按照 [Restore a backup from the command line](https://meta.discourse.org/t/restore-a-backup-from-command-line/108034?u=falco) 进行操作。

---

<div class="post-metadata">

**Author:** ![ulysses4ever](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ulysses4ever/32/122522_2.png) [@ulysses4ever](https://meta.discourse.org/u/ulysses4ever)\
**Post date:** [2021年二月14日 02:20 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/9 "2021-02-14T02:20:46Z")

</div>

你说的“另一个服务器”是什么意思？我只有一台服务器。

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2021年二月14日 02:22 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/10 "2021-02-14T02:22:16Z")

</div>

好的，我们先退一步。

当你执行重建操作时，出现了错误。能否粘贴超过 4 行的错误信息，以便我们确切了解哪里出了问题？

---

<div class="post-metadata">

**Author:** ![ulysses4ever](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ulysses4ever/32/122522_2.png) [@ulysses4ever](https://meta.discourse.org/u/ulysses4ever)\
**Post date:** [2021年二月14日 02:24 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/11 "2021-02-14T02:24:42Z")

</div>

您可能错过了，因为我把完整输出的链接只加在了置顶帖的更新中：

> [两个命令的完整输出请见此处](https://gist.github.com/ulysses4ever/35e8683dfc39358c20f6d2e2309ca79e)。

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2021年二月14日 02:26 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/12 "2021-02-14T02:26:24Z")

</div>

太棒了！

所以

```plaintext
源集群未正常关闭。

```

您需要按照以下步骤操作：

> [@fitzy](#):
>
> 如果您需要在下次重建时推迟更新，可以通过将 app.yml 文件中的 `\"templates/postgres.template.yml\"` 更改为 `\"templates/postgres.12.template.yml\"` 来替换 PostgreSQL 模板。

先在不进行升级的情况下启动数据库，然后再执行更新。

---

<div class="post-metadata">

**Author:** ![ulysses4ever](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ulysses4ever/32/122522_2.png) [@ulysses4ever](https://meta.discourse.org/u/ulysses4ever)\
**Post date:** [2021年二月14日 02:58 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/13 "2021-02-14T02:58:44Z")

</div>

成功了，非常感谢！

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)\
**Post date:** [2021年三月16日 02:59 UTC](https://meta.discourse.org/t/recover-from-filesystem-backup-cant-rebuild-nor-start/179624/14 "2021-03-16T02:59:42Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
