每天只备份一次是不是太冒险了?如果服务器出现问题,而上次备份是在昨天,我该怎么办?昨天和今天注册的用户,他们还会被注册吗?我认为最好更频繁地备份,也许每小时一次。但是,在进行备份之前,您是否必须将网站设为只读模式?提前感谢!
+1,再说一次。Discourse是唯一一个可以每天只备份一次数据库的动态系统。
我预计核心功能短期内不会有任何改变。我曾就将默认值更改为每周一次以上进行过讨论,但那不会发生。
我认为一个好的方法是创建一个插件,该插件可以添加一个站点设置,以便每隔几个小时进行一次仅数据库的备份(没有理由在所有这些完整备份中保留大量无法压缩的上传副本)。如果您有兴趣,请给我发私信或在市场中询问。
如果您需要更好的灾难恢复方案,我建议您遵循运行带有独立 PostgreSQL 服务器的 Discourse 并自行运行 PostgreSQL,这样您就可以控制所需的确切高可用性,例如实时同步副本、时间点恢复和更频繁的备份。
请问此政策的原因是什么?是技术原因还是更偏向于用户分级?24小时的备份间隔对于高流量论坛来说是一个相当关键的问题。或者这是你们只提供给付费客户的服务吗?
将 Discourse 与单独的 PostgreSQL 服务器分开运行是否会因为服务器不同而降低速度?
当然,这是一个解决方案。但在应用程序中,这是一种相当罕见的解决方案。在 PHP/MySQL 世界中,使用 cron 备份数据库会非常容易,但同样——在那个世界里,每个应用程序都可以自己完成,无论是否有插件。
是的,我比普通终端用户了解得多一点
但我对 Docker、Rails 等的工作原理只有非常肤浅的了解,对我来说,一些常见任务几乎是不可能完成的情况真的很难理解。当然,也许这是因为我的局限性,但也有其他人对此感到困惑。
好吧。我明白了,在不久的将来或中期,我们无法轻松获得数据库备份。
你也可以使用 cron 设置 PostgreSQL 备份。这里没什么不同。
在任何相关方面都不会。我们托管的每个 Discourse 实例,就像这里的这个实例一样,都在专用服务器上使用数据库。
我只问你两个问题,以便更好地理解。
- 数据库是您恢复一切所需的一切,对吗?通过设置进行的每日备份,备份是否只包含数据库?
- 在备份数据库时,论坛是否应处于只读模式?或者可以随时随地进行备份,没有任何问题?
提前表示感谢!
设置保存在数据库中。
严格来说,您还想备份 uploads 文件夹和 app.yml 站点定义。但是,这通常通过将 app.yml 保存在源代码管理中,并将 uploads 保存在对象存储服务中来处理。
不需要只读模式。
因此,假设我将数据库放在单独的服务器上,并每小时备份一次该数据库。如果我还从管理面板的设置中进行备份,那么备份将只包含 app.yml 文件和 uploads 文件夹,而不包含数据库,对吗?@Falco
备份将包括数据库和上传文件(如果它们不在 S3 上)。app.yml 不在备份中,因为 Discourse 无法读取它。
我推荐大多数人的做法是:将备份放在 S3 上,并将 app.yml 放在紧急情况下可以获取到的地方。然后,您可以使用 app.yml 构建一个新容器,并从命令行进行恢复。但是,如果您有技术能力使用其他工具备份/恢复 postgres,并且图像在 S3 上(或者您有其他方式备份它们),那么您只需重建容器即可恢复。
或者,您可能希望拥有多个持续镜像的 postgres 服务器,然后安排在主服务器出现故障时自动切换到备份服务器。
有无数种方法可以提供比 Discourse 提供的更频繁的备份。如果您需要更频繁的备份,则需要通过其他方式进行。
另外一点是关于风险和维护:如果您使用现成的每日解决方案,它可能比您自己配置的解决方案更健壮、更可靠,可以作为备份解决方案。如果您的自定义解决方案出现问题,而您直到为时已晚才发现怎么办?至少,标准解决方案有数百个站点每天都在对其进行测试。
考虑到我在四年内从未遇到过任何站点损坏的经历,实际上需要备份的风险也很低……
也许其他人可以提到更大的风险,但最大的风险可能是由于服务器空间不足导致的问题?所以要留意空间?设置警报?
据我理解,最好的方法是将所有东西分开存放。
主服务器用于运行 Discourse。然后是 PostgreSQL 服务器和用于上传的 S3(或任何其他对象存储服务)服务器。
app.yml 文件似乎不经常更改,因此您只需保存一次。或者最多一个月更改几次。
这样您就可以更有条理地备份文件。
如果是这样,我认为他们不愿在核心中实现多项每日备份是有道理的。另一方面,那些有复杂需求的人肯定会进行特殊的配置。最后,您只需重新安装(将 app.yml 保存在某处),然后将其重新连接到数据库和 S3 以下载数据。备份分别在这两个服务器上,对我来说很容易管理。我认为这是一个非常公平的解决方案。
感谢大家的解释。
这里还有另一个帖子:Configure automatic backups for Discourse - #113 by Tris20
@pfaffman 在那里提出了一些建议并附带了链接。这让我想到可以通过命令行来安排更频繁的备份,对我来说这是一个相当合理的解决方案:
请注意,使用此解决方案,您可以将其全部合并到一个 Python 脚本中,以便同时安排 YAML 文件等的副本。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.