> ## Documentation Index
> Fetch the complete documentation index at: https://docs.akria.net/llms.txt
> Use this file to discover all available pages before exploring further.

# 备份策略 | Backups

> 核心数据库与配置文件的自动化备份方案

## 🛡️ 整体方针 | Backup Policy

为了防止由于单点故障导致的数据丢失，集群实施了 **“双轨制”** 备份策略：

1. **本地快照**: 存储在 `worker-03` 的独立备份分区中。
2. **异地转储**: (计划中) 将压缩包定期同步至外部 S3 或 NAS 存储。

***

## 🏗️ 数据库备份 | Database Backups

### MongoDB (Rocket.Chat)

这是最重要的社交数据资产，自动化脚本位于 `manifests/infra/backup/`。

* **频率**: 每日凌晨 3:00。
* **方法**: 使用 `mongodump` 导出，并进行 `.tar.gz` 压缩。
* **清理**: 自动保留最近 7 天的备份文件。

```bash theme={null}
# 执行手动补录备份
kubectl apply -f manifests/infra/backup/backup-db.yaml
```

### PostgreSQL (System Infra)

承载了 n8n 和 Metabase 的核心配置。

* **方法**: 周期性通过 CronJob 执行 `pg_dump`。
* **路径**: 挂载在专属的 `backup-pvc` 卷上。

***

## 🖥️ 节点级备份 | Node Backups

对于非 K8s 管理的系统配置、SSL 证书及脚本，我们使用 `nodes-backup.sh` 进行全量同步。

| 备份内容        | 源路径                                | 备份频率  |
| :---------- | :--------------------------------- | :---- |
| **SSL 证书**  | `/etc/letsencrypt`                 | 每周一次  |
| **NPM 全配置** | `/var/lib/docker/volumes/npm_data` | 每日一次  |
| **运维脚本**    | `/root/ops-scripts`                | 触发式同步 |

## 🚨 灾难恢复指南 | Recovery Guide

<AccordionGroup>
  <Accordion title="场景 A：单个数据卷损坏" icon="file-circle-exclamation">
    1. 找到该服务最近的备份压缩包。
    2. 使用 `tar -zxvf` 解压到 `/var/lib/rancher/k3s/storage/` 下的新目录。
    3. 重建对应的 PV/PVC 声明即可。
  </Accordion>

  <Accordion title="场景 B：集群完全崩溃" icon="burst">
    1. 重装 K3s 集群。
    2. 先恢复基础设施配置（kubectl apply -f manifests/infra/）。
    3. 将备份数据回填至对应节点路径，再启动业务应用。
  </Accordion>
</AccordionGroup>
