Copii de rezervă și recuperare în caz de dezastru
Starea AiHummer este mică și bine definită, ceea ce face copiile de rezervă simple — atâta timp cât îți amintești că cheia principală nu se află în baza de date și trebuie protejată separat. Această pagină acoperă ce să copiezi, cum și cum să recuperezi.
Ce să copiezi
Există trei lucruri independente de protejat:
| Ce | Unde | De ce |
|---|---|---|
| Baza de date | PostgreSQL | Sursa adevărului — agenți, conversații, memorie, setări, secrete criptate |
| Blob-uri | AIHUMMER_BLOB_DIR |
Media și atașamentele de fișiere referite de baza de date |
| Cheia principală | AIHUMMER_MASTER_KEY |
Decriptează seiful; niciodată stocată în baza de date |
[!DANGER] Fă o copie de rezervă pentru
AIHUMMER_MASTER_KEYseparat și stoch-o în alt loc decât dump-ul bazei de date. Seiful este criptat prin plic sub această cheie — pierde cheia principală și secretele criptate devin nerecuperabile, chiar și cu o copie de rezervă perfectă a bazei de date.
PostgreSQL este sursa adevărului
Tratează baza de date ca fiind autoritativă. Baza recomandată este un pg_dump
zilnic plus arhivare WAL pentru recuperare la un moment în timp (PITR),
astfel încât să poți rula înainte până la orice moment dintre dump-uri.
# Daily logical dump
pg_dump "$AIHUMMER_DATABASE_URL" --format=custom --file=aihummer-$(date +%F).dump
Asociază dump-urile cu arhivarea WAL continuă (PITR) pentru o recuperare granulară între instantanee.
Copia de rezervă a blob-urilor
Media și atașamentele de fișiere se află sub AIHUMMER_BLOB_DIR. Fă o copie de
rezervă pentru acest director împreună cu baza de date, astfel încât conversațiile
restaurate să își poată rezolva în continuare atașamentele. Dacă
AIHUMMER_BLOB_DIR nu este configurat, serviciul media/fișiere nu este activ și nu
există nimic suplimentar de copiat.
Comenzile aihummer backup și restore
Interfața de linie de comandă grupează rutina în două comenzi:
aihummer backup [dir] # write a backup into [dir]
aihummer restore <file> # restore from a backup file
Folosește-le pentru copiile de rezervă și restaurările operaționale obișnuite. Consultă referința CLI pentru comenzi conexe.
[!WARNING] O restaurare doar a bazei de date nu este o recuperare completă. Restaurează și directorul de blob-uri și asigură-te că aceeași
AIHUMMER_MASTER_KEYeste prezentă pe gazda țintă — altfel seiful nu poate fi decriptat.
Recuperare în caz de dezastru
Pentru un scenariu de pierdere completă a gazdei, urmează runbook-ul de
recuperare în caz de dezastru (docs/runbooks/disaster-recovery.md). Ordinea de
recuperare este:
- Aprovizionează o gazdă și instalează aceeași versiune AiHummer.
- Restaurează cheia principală în
AIHUMMER_MASTER_KEY. - Restaurează baza de date (cel mai recent dump, apoi rulează înainte prin WAL/PITR dacă este folosit).
- Restaurează directorul de blob-uri la
AIHUMMER_BLOB_DIR. - Pornește serviciile (
aihummer up) și verifică cu/readyzșideploy/host/smoke.sh.
[!TIP] Păstrează și
AIHUMMER_MEDIA_TOKEN_SECRETîmpreună cu cheia principală. Menține valide URL-urile semnate de descărcare media între reporniri și reconstruiri.
Unde mergi mai departe
- Sondele și testul de fum folosite pentru a verifica o restaurare: systemd și verificări de sănătate.
- Versionarea și migrările în timpul unei actualizări: Politica de actualizare.