documentation/content/zh-cn/admin/backups.md

2.8 KiB
Raw Blame History

title description menu
备份你的服务器 设置日常备份(可选,但并非如此)
docs
weight parent
80 admin

对于任何真实世界用途来说你都应该保证日常备份Mastodon服务器。

概览

你所需要备份的东西,按重要程度排序:

  1. PostgreSQL 数据库
  2. .env.production 文件或等效文件中的应用密钥
  3. 用户上传的文件
  4. Redis 数据库

故障模式

人们通常要应对两种类型故障:硬件故障,诸如磁盘上数据损坏;以及人为软件故障,诸如误删特定文件。本文档中,仅考虑前一种类型。

丢失PostgreSQL数据库那一切都完了。Mastodon将所有重要数据存储于PostgreSQL数据库中。如果数据库消失那你服务器上所有的帐户、所有的嘟文、所有关注者都将随之消失。

如果你丢失了应用密钥对你的用户而言Mastodon的某些功能将停止工作。你服务器上的用户将被登出双因子认证2FA将不可用Web Push API订阅将停止工作。

如果你丢失了用户上传的文件你将丢失头像、横幅、媒体附件但Mastodon仍会继续工作。

丢失Redis数据库几乎是无害的唯一不可逆的数据是Sidekiq队列及之前失败任务的重试计划。主页与列表时间流虽然存储于Redis但它们可以使用tootctl再生成。

最好的备份是所谓的异地备份即与Mastodon自身不在同一台计算机上存储的备份。如果你托管的服务器起火了硬盘爆炸了存储于同一硬件备份将不可用。

备份应用密钥

应用密钥是最容易备份的,因为它们是不变的。你只需要将 .env.production 存储在安全的地方就可以了。

备份 PostgreSQL

突然断电、硬盘故障、错误迁移数库库schema都会致使数据损坏。由于以上原因推荐偶尔使用 pg_dumppg_dumpall 备份数据库。

如果要求高可用性可以使用热流拷贝hot streaming replication使第二台PostgreSQL服务器始终具有最新数据并做好另一台服务器出现故障切换至此的准备。

备份用户上传的文件

如果你使用外部对象存储诸如Amazon S3、Google Cloud 或 Wasabi你无需为怎么备份它们而担心。各自的公司将负责处理硬件故障。

如果你使用本地文件存储,复制体积巨大的 public/system 目录(默认存储上传文件的地方)。

备份 Redis

备份Redis是很容易的。Redis会定期将数据写入/var/lib/redis/dump.rdb文件,你只需要复制这个文件就可以了。

{{< translation-status-zh-cn raw_title="Backing up your server" raw_link="/admin/backups/" last_tranlation_time="2020-05-06" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}}