# 备份不再进行

**URL:** <https://meta.discourse.org/t/backups-are-no-longer-happening/185847>\
**Category:** Support\
**Created:** [2021年四月7日 08:15 UTC](https://meta.discourse.org/t/backups-are-no-longer-happening/185847 "2021-04-07T08:15:05Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![peternlewis](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/peternlewis/32/108888_2.png) [@peternlewis](https://meta.discourse.org/u/peternlewis)\
**Post date:** [2021年四月7日 08:15 UTC](https://meta.discourse.org/t/backups-are-no-longer-happening/185847/1 "2021-04-07T08:15:05Z")

</div>

大约在三月初，我的 Discourse 备份开始失败。

设置并未更改，但可能（很可能确实）进行过 Discourse 升级。

备份存储于本地，除将最大备份数设为 3、备份频率设为 3 外，其余设置均为默认值。

我可以手动执行备份，且操作成功，但我注意到现在的备份文件是 sql.gz，而之前是 tar.gz 文件。

然而，自动备份并未运行，看似在运行，却没有任何错误报告。备份页面显示“无可用备份”（包括我几天前执行的手动备份，现已消失），而“备份 ➤ 日志”显示“暂无日志……”。

我尝试重启了服务器（整个 DigitalOcean Droplet），但这并未使备份恢复运行。

版本信息显示我已更新至最新版 2.6.3（我使用的是稳定分支，而非最新分支）。

有任何建议吗？

 ![image](https://global.discourse-cdn.com/meta/original/3X/4/9/49cb7cb4ce12913ebc9ce17ca559510572318279.png)

---

<div class="post-metadata">

**Author:** ![gerhard](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gerhard/32/119479_2.png) [@gerhard](https://meta.discourse.org/u/gerhard)\
**Post date:** [2021年四月7日 14:16 UTC](https://meta.discourse.org/t/backups-are-no-longer-happening/185847/2 "2021-04-07T14:16:34Z")

</div>

> [@peternlewis](#):
>
> 我可以执行手动备份，这确实有效。不过我注意到，现在的备份文件是 sql.gz 格式，而以前是 tar.gz 格式。

只要所有上传文件都存储在 S3 上，这就是预期行为。在这种情况下，备份文件仅包含压缩后的数据库转储。

> [@peternlewis](#):
>
> 但是自动备份没有运行，看起来像是在运行，但我没有收到任何错误报告。备份页面显示“没有可用的备份”（包括我几天前做的手动备份，现在也消失了）。

请查看 `/logs`，是否有与备份相关的错误？  
另外，请检查 `/u/system/messages/sent`，确认系统是否发送了关于备份失败的私信。曾存在一个漏洞，在某些情况下会阻止管理员收到这些私信的通知。

手动备份也消失了，这一点确实令人有些担忧。既然你将 `maximum_backups` 设置为 3，我不确定这是如何发生的。你是否设置了某种 cronjob 或脚本来移动/删除备份，或者该脚本无法处理新的文件扩展名（现在是 `sql.gz` 而不是 `tar.gz`）？  
备份文件真的不在那里吗？运行 `ls /var/discourse/shared/standalone/backups/default` 会显示什么？

> [@peternlewis](#):
>
> ➤ 日志显示“尚无日志…"。

这是正常的。日志仅显示手动备份的输出。

> [@peternlewis](#):
>
> 版本信息显示我已更新至 2.6.3（我运行的是稳定分支，而非最新分支）。

我刚检查过，自 2.6 版本发布以来，备份代码没有进行任何相关更改。

---

<div class="post-metadata">

**Author:** ![peternlewis](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/peternlewis/32/108888_2.png) [@peternlewis](https://meta.discourse.org/u/peternlewis)\
**Post date:** [2021年四月8日 04:03 UTC](https://meta.discourse.org/t/backups-are-no-longer-happening/185847/3 "2021-04-08T04:03:32Z")

</div>

> [@gerhard](#):
>
> 只要所有上传文件都存储在 S3 上，这种情况是可以预料的。在这种情况下，备份文件只是一个压缩后的数据库转储。

我的所有上传文件都没有存储在 S3 上，它们都存储在本地。

> [@gerhard](#):
>
> 请查看 `/logs`。是否有与备份相关的错误？

我没看到。我通常会遇到一堆 TypeErrors，但我一直都能看到它们。搜索“backup”除了找到与论坛主题网页相关的 TypeErrors（这些网页碰巧包含单词“backup”）外，没有发现其他内容。

 ![image](https://global.discourse-cdn.com/meta/original/3X/7/8/78865c184b597d7067407d68dc85f8411a0449ee.png)

> [@gerhard](#):
>
> 另外，请检查 `/u/system/messages/sent`，看看系统是否发送了关于备份失败的私信。

哦，看，有一堆“备份失败”的消息——为什么我没有收到这些警报？

好吧，我不知道为什么我从未收到过这些报告，但这给出了以下错误：

> [2021-04-08 03:35:35] 正在删除临时目录 ‘/var/www/discourse/tmp/backups/default/2021-04-08-033313’…  
> [2021-04-08 03:35:35] 正在对归档文件进行 Gzip 压缩，这可能需要一些时间…  
> [2021-04-08 03:38:49] 异常：lib/discourse.rb:92:in `exec’：Gzip 归档失败。
> 
> gzip: /var/www/discourse/public/backups/default/keyboard-maestro-discourse-2021-04-08-033313-v20201116132948.tar.gz：设备上没有剩余空间

> [@gerhard](#):
>
> 手动备份也消失了，这有点令人担忧。我不确定这是如何发生的，因为你将 `maximum_backups` 设置为 3。

实际上，那是一个外部脚本——它将备份复制到另一台机器进行永久存储，然后删除它以为服务器腾出空间（尽管显然空间不够）。

因此，剩余的问题：

- 为什么我没有收到这些错误消息的任何警报？
- 为什么手动备份是 .sql.gz 文件，而实际备份是 .tar.gz 文件（两者都应包含上传文件，而上传文件是本地的）？
- 为什么手动备份可以成功，而自动备份却因空间不足而失败（可能与此相关，也许手动备份实际上并未包含上传文件，因此体积较小，尽管看起来大小合适）？
- 还有一个显而易见的问题——我想知道如何在服务器上腾出一些空间？[编辑：好的，运行 `./launcher cleanup` 释放了 15GB 的空间，这应该能解决问题]。

好吧，至少现在我知道问题出在哪里了。我真的很想知道第一个问题的答案，因为我显然应该收到通知。这些消息会发送给谁？谁会收到这些消息的警报？我如何确保将来能及时了解它们？

谢谢！

---

<div class="post-metadata">

**Author:** ![gerhard](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gerhard/32/119479_2.png) [@gerhard](https://meta.discourse.org/u/gerhard)\
**Post date:** [2021年四月8日 08:19 UTC](https://meta.discourse.org/t/backups-are-no-longer-happening/185847/4 "2021-04-08T08:19:40Z")

</div>

> [@peternlewis](#):
>
> 为什么我没有收到这些错误消息的提醒？

正如我所提到的，其中一个最近的测试版发布中已经修复了一个导致此问题的错误。

> [@peternlewis](#):
>
> 为什么手动备份是 .sql.gz 文件，而实际备份是 .tar.gz 文件（两者本应都包含上传内容，这些内容是本地的）？

您可能在通过界面创建备份时弹出的对话框中，选择了在不包含上传内容的情况下创建手动备份。

---

<div class="post-metadata">

**Author:** ![peternlewis](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/peternlewis/32/108888_2.png) [@peternlewis](https://meta.discourse.org/u/peternlewis)\
**Post date:** [2021年四月9日 05:57 UTC](https://meta.discourse.org/t/backups-are-no-longer-happening/185847/5 "2021-04-09T05:57:14Z")

</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年五月9日 05:58 UTC](https://meta.discourse.org/t/backups-are-no-longer-happening/185847/6 "2021-05-09T05:58:12Z")

</div>

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