Mastodon
  • 什么是 Mastodon?
  • 使用 Mastodon
    • 注册帐户
    • 设置你的个人资料
    • 在你的账户发布内容
    • 使用网络功能
    • 处理不想看到的内容
    • 推广你和他人
    • 进行偏好设置
    • 更多设置
    • 在站点外使用 Mastodon
    • 迁移或离开账户
    • 运行你自己的站点
  • 运营 Mastodon
    • 准备你的服务器
    • 从源代码安装
    • 配置你的环境
    • 安装可选功能
      • 对象存储
      • 洋葱服务
      • 验证码
      • 单点登录
    • 配置全文搜索
    • 设置你的新实例
    • 使用管理 CLI
    • 升级到新版本
    • 备份你的服务器
    • 迁移到新机器
    • 扩大你的站点规模
    • 审核操作
    • 故障排除
      • 数据库索引损坏
    • 用户组
  • 开发 Mastodon 应用
    • API 入门指南
    • 使用公开数据
    • 获取客户端应用访问权限
    • 使用帐户登录
    • 库与实现
  • 向 Mastodon 项目做贡献
    • 技术概览
    • 设置开发环境
    • 代码结构
    • 路由
    • 漏洞赏金与责任披露
  • 遵循的标准
    • ActivityPub
    • WebFinger
    • 安全性
    • Microformats
    • OAuth
    • Bearcaps
  • REST API
    • Datetime 格式
    • 指南与最佳实践
    • OAuth 令牌
    • OAuth 作用域
    • 速率限制
  • API 方法
    • apps
      • oauth
      • emails
    • accounts
      • bookmarks
      • favourites
      • mutes
      • blocks
      • domain_blocks
      • filters
      • reports
      • follow_requests
      • endorsements
      • featured_tags
      • preferences
      • followed_tags
      • suggestions
      • tags
    • profile
    • statuses
      • media
      • polls
      • scheduled_statuses
    • timelines
      • conversations
      • lists
      • markers
      • streaming
    • grouped notifications
    • notifications
      • push
    • search
    • instance
      • trends
      • directory
      • custom_emojis
      • announcements
    • admin
      • accounts
      • canonical_email_blocks
      • dimensions
      • domain_allows
      • domain_blocks
      • email_domain_blocks
      • ip_blocks
      • measures
      • reports
      • retention
      • trends
    • proofs
    • oembed
  • API 实体
    • Account
    • AccountWarning
    • Admin::Account
    • Admin::CanonicalEmailBlock
    • Admin::Cohort
    • Admin::Dimension
    • Admin::DomainAllow
    • Admin::DomainBlock
    • Admin::EmailDomainBlock
    • Admin::Ip
    • Admin::IpBlock
    • Admin::Measure
    • Admin::Report
    • Announcement
    • Appeal
    • Application
    • Context
    • Conversation
    • CustomEmoji
    • DomainBlock
    • Error
    • ExtendedDescription
    • FamiliarFollowers
    • FeaturedTag
    • Filter
    • FilterKeyword
    • FilterResult
    • FilterStatus
    • IdentityProof
    • Instance
    • List
    • Marker
    • MediaAttachment
    • Notification
    • NotificationPolicy
    • NotificationRequest
    • Poll
    • Preferences
    • PreviewCard
    • PreviewCardAuthor
    • PrivacyPolicy
    • Reaction
    • Relationship
    • RelationshipSeveranceEvent
    • Report
    • Role
    • Rule
    • ScheduledStatus
    • Search
    • Status
    • StatusEdit
    • StatusSource
    • Suggestion
    • Tag
    • TermsOfService
    • Token
    • Translation
    • V1::Filter
    • V1::Instance
    • V1::NotificationPolicy
    • WebPushSubscription

备份你的服务器

设置定期备份(可选,但实际上很必要)

    • 概述
    • 故障类别
    • 备份应用密钥
    • 备份 PostgreSQL
    • 备份用户上传的文件
    • 备份 Redis

对于所有实际使用的场景,你都应确保定期备份你的 Mastodon 服务器。

概述

需要备份的内容按重要程度排序如下:

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

故障类别

人们通常会防范两种类型的故障:硬件故障,如磁盘数据损坏;以及人为和软件错误,如错误删除某特定数据。在本文档中,我们仅考虑前一种类型。

Mastodon 将所有最重要的数据存储在 PostgreSQL 数据库中。PostgreSQL 数据库的丢失将导致服务器完全故障,包括所有账户、嘟文与关注者信息。

如果你丢失了应用密钥,Mastodon 的某些功能将停止为用户工作,用户将被登出,双因素认证将不可用,且 Web Push API 订阅将停止工作。

如果丢失了用户上传的文件,你将丢失头像、资料卡横幅背景图和媒体附件,但 Mastodon 在未来仍能正常工作。

丢失 Redis 数据库几乎无害:唯一不可恢复的数据是 Sidekiq 队列的内容和先前失败任务的计划重试时间。主页和列表信息流存储在 Redis 中,但可以通过 tootctl 重新生成。

最好的备份是被称为异地备份的备份模式,即不存储在与 Mastodon 服务器本身相同的机器上的备份。如果你的服务器着火并且硬盘驱动器爆炸,存储在同一硬盘上的备份将没有太大用处。

备份应用密钥

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

备份 PostgreSQL

PostgreSQL 面临断电、硬盘驱动器故障与错误的架构迁移带来的数据损坏风险。因此,建议偶尔使用 pg_dump 或 pg_dumpall 进行备份。

对于高可用配置,可以使用热数据流式复制来拥有一个数据始终最新的第二PostgreSQL服务器,以便在另一服务器宕机时随时切换。

备份用户上传的文件

如果你使用外部对象存储提供商,如亚马逊S3、谷歌云或 Wasabi,则无需担心备份这些文件。相应公司负责处理硬件故障。

如果你使用是本地文件存储,那么你需要自行对 public/system 这个大目录进行备份,该目录是上传文件的默认存储位置。

备份 Redis

备份 Redis 很容易。Redis 定期写入 /var/lib/redis/dump.rdb,这是你唯一需要复制的文件。

翻译状态: 本文是英文页面 Backing up your server 的翻译,最后翻译时间:2025-04-21,点击这里可以查看翻译后页面的改动。

最后更新于 April 21, 2025 · 改进此页面
也可在此找到: English

赞助商

Dotcom-Monitor LoadView Stephen Tures Swayable SponsorMotion

加入Mastodon · 博客 ·

查看源代码 · CC BY-SA 4.0 · 版权信息