1
0
mirror of https://github.com/mastodon/documentation synced 2025-04-11 22:56:17 +02:00
yingziwu b6e011265d
Add chinese translation (#772)
* add chinese config and i18n

* Import translation from https://bitbucket.org/mastodoncn/mastodon-zh-cn/src/master/

* translate Using Mastodon

* Translate Running Mastodon
Add Chinese search optimization
Fix some bugs

* substitute 长毛象 to Mastodon

* do some modifications.
2020-05-20 20:54:12 +02:00

56 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 备份你的服务器
description: 设置日常备份(可选,但并非如此)
menu:
docs:
weight: 80
parent: admin
---
对于任何真实世界用途来说你都应该保证日常备份Mastodon服务器。
## 概览 {#overview}
你所需要备份的东西,按重要程度排序:
1. PostgreSQL 数据库
2. `.env.production` 文件或等效文件中的应用密钥
3. 用户上传的文件
4. Redis 数据库
## 故障模式 {#failure}
人们通常要应对两种类型故障:硬件故障,诸如磁盘上数据损坏;以及人为软件故障,诸如误删特定文件。本文档中,仅考虑前一种类型。
丢失PostgreSQL数据库那一切都完了。Mastodon将所有重要数据存储于PostgreSQL数据库中。如果数据库消失那你服务器上所有的帐户、所有的嘟文、所有关注者都将随之消失。
如果你丢失了应用密钥对你的用户而言Mastodon的某些功能将停止工作。你服务器上的用户将被登出双因子认证2FA将不可用Web Push API订阅将停止工作。
如果你丢失了用户上传的文件你将丢失头像、横幅、媒体附件但Mastodon*仍会*继续工作。
丢失Redis数据库几乎是无害的唯一不可逆的数据是Sidekiq队列及之前失败任务的重试计划。主页与列表时间流虽然存储于Redis但它们可以使用tootctl再生成。
最好的备份是所谓的异地备份即与Mastodon自身不在同一台计算机上存储的备份。如果你托管的服务器起火了硬盘爆炸了存储于同一硬件备份将不可用。
## 备份应用密钥 {#env}
应用密钥是最容易备份的,因为它们是不变的。你只需要将 `.env.production` 存储在安全的地方就可以了。
## 备份 PostgreSQL {#postgresql}
突然断电、硬盘故障、错误迁移数库库schema都会致使数据损坏。由于以上原因推荐偶尔使用 `pg_dump``pg_dumpall` 备份数据库。
如果要求高可用性可以使用热流拷贝hot streaming replication使第二台PostgreSQL服务器始终具有最新数据并做好另一台服务器出现故障切换至此的准备。
## 备份用户上传的文件 {#media}
如果你使用外部对象存储诸如Amazon S3、Google Cloud 或 Wasabi你无需为怎么备份它们而担心。各自的公司将负责处理硬件故障。
如果你使用本地文件存储,复制体积巨大的 `public/system` 目录(默认存储上传文件的地方)。
## 备份 Redis {#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">}}