首席架構師備份審計結論: - awoooi_prod PostgreSQL:❌ 無備份 (P0 缺口) - Gitea SQLite DB:❌ 無備份 (今日已損壞,人工修復耗時 2h+) 新增: - scripts/backup/backup-awoooi-db.sh (188 部署,02:00 daily) - scripts/backup/backup-gitea-db.sh (110 部署,01:00 daily) - docs/runbooks/BACKUP-STATUS.md (全景表 + 部署步驟 + SOP) - LOGBOOK.md 備份審計段落 待手動部署:統帥需 scp 腳本至 188/110 並設定 crontab Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.6 KiB
4.6 KiB
BACKUP-STATUS.md — 備份狀態總覽
2026-04-05 Claude Code: 首席架構師完整盤點後建立 觸發原因:Gitea DB 損壞事故(人工修復耗時 2+ 小時)+ Velero BSL Unavailable(MinIO 未啟動)
備份全景圖
| 資料類型 | 主機 | 工具 | 排程 | 狀態 | 保留 |
|---|---|---|---|---|---|
| K8s 資源 (全命名空間) | 188 | Velero + MinIO | 每日 02:00 | ✅ 正常 | 7 天 |
| MOMO PostgreSQL | 188 | backup-momo-db.sh | 每日 04:00 | ✅ 正常 | 30 天 |
| ClawBot/SignOz env | 188 | backup-env.sh | 每日 03:00 | ✅ 正常 | - |
| AWOOOI PostgreSQL | 188 | backup-awoooi-db.sh | 每日 02:00 | ⚠️ 待部署 | 30 天 |
| Gitea SQLite DB | 110 | backup-gitea-db.sh | 每日 01:00 | ⚠️ 待部署 | 30 天 |
| K3s Kine (k3s_datastore) | 188 | backup-awoooi-db.sh | 每日 02:00 | ⚠️ 待部署 | 30 天 |
各備份詳情
✅ Velero K8s 資源備份
Schedule: daily-backup (0 2 * * *)
Storage: MinIO @ 192.168.0.188:9000 (bucket: velero)
Status: 8 backups on record, BSL Available (確認 2026-04-05)
注意: MinIO 需在 188 開機後自動啟動。已加入 awoooi-startup.sh (commit c0c903d, 2026-04-05)。
MinIO 檢查:
ssh ollama@192.168.0.188 "docker ps | grep minio"
kubectl get backupstoragelocation -n velero
✅ MOMO PostgreSQL
Script: /home/ollama/scripts/backup-momo-db.sh
Cron: 0 4 * * *
Output: /home/ollama/backups/momo/momo_db_YYYY-MM-DD_HH-MM.sql.gz
Retention: 30 days
⚠️ AWOOOI PostgreSQL(待部署)
資料庫清單(重要性順序):
awoooi_prod— 主要生產 DB (KB 知識庫、事故記錄、AutoRepair 決策、Drift 報告)awoooi_dev— 開發 DBk3s_datastore— K3s Kine 後端
腳本已建立:scripts/backup/backup-awoooi-db.sh
部署步驟 (需在 192.168.0.188 執行):
# 上傳腳本
scp /Users/ogt/awoooi/scripts/backup/backup-awoooi-db.sh ollama@192.168.0.188:/home/ollama/scripts/
# 設定權限
ssh ollama@192.168.0.188 "chmod +x /home/ollama/scripts/backup-awoooi-db.sh"
# 建立 log 目錄
ssh ollama@192.168.0.188 "mkdir -p /home/ollama/logs"
# 加入 crontab
ssh ollama@192.168.0.188 "crontab -e"
# 加入: 0 2 * * * /home/ollama/scripts/backup-awoooi-db.sh >> /home/ollama/logs/backup-awoooi.log 2>&1
# 測試執行
ssh ollama@192.168.0.188 "/home/ollama/scripts/backup-awoooi-db.sh"
注意: 腳本使用 sudo -u postgres pg_dump,需確認 sudoers 中有對應權限,或改用 peer auth。
⚠️ Gitea SQLite DB(待部署)
事故教訓: 2026-04-05 Gitea DB 損壞,靠 sqlite3 .recover 才救回,人工修復耗時 2+ 小時。
DB 路徑: /home/wooo/gitea/gitea_data/gitea/gitea.db(on 192.168.0.110)
腳本已建立:scripts/backup/backup-gitea-db.sh
部署步驟 (需在 192.168.0.110 執行):
# 上傳腳本
scp /Users/ogt/awoooi/scripts/backup/backup-gitea-db.sh wooo@192.168.0.110:/home/wooo/scripts/
# 設定權限
ssh wooo@192.168.0.110 "chmod +x /home/wooo/scripts/backup-gitea-db.sh && mkdir -p /home/wooo/logs /home/wooo/backups/gitea"
# 加入 crontab (wooo@110)
ssh wooo@192.168.0.110 "crontab -e"
# 加入: 0 1 * * * /home/wooo/scripts/backup-gitea-db.sh >> /home/wooo/logs/backup-gitea.log 2>&1
# 測試執行(需要 sqlite3 已安裝)
ssh wooo@192.168.0.110 "sqlite3 --version && /home/wooo/scripts/backup-gitea-db.sh"
sqlite3 安裝(若未安裝):
ssh wooo@192.168.0.110 "sudo apt install -y sqlite3"
備份驗證 SOP
每月第一個週一驗證:
# 1. Velero
kubectl get backup -n velero --sort-by=.metadata.creationTimestamp | tail -3
# 2. MOMO DB
ssh ollama@192.168.0.188 "ls -lh /home/ollama/backups/momo/ | tail -3"
# 3. AWOOOI DB
ssh ollama@192.168.0.188 "ls -lh /home/ollama/backups/awoooi/ | tail -3"
# 4. Gitea DB
ssh wooo@192.168.0.110 "ls -lh /home/wooo/backups/gitea/ | tail -3"
缺口風險評估
| 缺口 | 資料損失風險 | 優先級 |
|---|---|---|
| AWOOOI PostgreSQL 無備份 | 🔴 極高 — 知識庫/事故/AutoRepair 全損 | P0 |
| Gitea DB 無自動備份 | 🔴 高 — 今日已發生損壞,靠人工修復 | P0 |
相關文件
- REBOOT-RECOVERY-SOP.md - 重開機恢復 SOP
- SECRETS-MANAGEMENT.md - Secrets 管理
scripts/backup/backup-awoooi-db.sh- AWOOOI DB 備份腳本scripts/backup/backup-gitea-db.sh- Gitea DB 備份腳本scripts/reboot-recovery/awoooi-startup.sh- 開機自動恢復(含 MinIO)