Files
awoooi/docs/runbooks/BACKUP-STATUS.md
OG T 84cfdb6195 docs(backup): 備份審計完整盤點 + 新增 AWOOOI DB 與 Gitea DB 備份腳本
首席架構師備份審計結論:
- 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>
2026-04-05 01:01:58 +08:00

4.6 KiB
Raw Blame History

BACKUP-STATUS.md — 備份狀態總覽

2026-04-05 Claude Code: 首席架構師完整盤點後建立 觸發原因Gitea DB 損壞事故(人工修復耗時 2+ 小時)+ Velero BSL UnavailableMinIO 未啟動)


備份全景圖

資料類型 主機 工具 排程 狀態 保留
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 — 開發 DB
  • k3s_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.dbon 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