Atsarginės kopijos ir nelaimių atsigavimas
AiHummer būsena yra maža ir gerai apibrėžta, todėl atsargines kopijas atlikti paprasta — tol, kol atsimenate, kad pagrindinis raktas nėra duomenų bazėje ir turi būti apsaugota atskirai. Šiame puslapyje aptariama, ką atsarginę kopiją daryti, kaip tai daryti ir kaip atkurti.
Ką atsarginę kopiją daryti
Yra trys nepriklausomi dalykai, kuriuos reikia apsaugoti:
| Kas | Kur | Kodėl |
|---|---|---|
| Duomenų bazė | PostgreSQL | Tiesos šaltinis — agentai, pokalbiai, atmintis, nustatymai, užšifruoti paslėpti duomenys |
| Krūvos | AIHUMMER_BLOB_DIR |
Duomenų bazėje nurodyti laikmenos ir failų priedai |
| Pagrindinis raktas | AIHUMMER_MASTER_KEY |
Atrakina saugyklą; niekada nesaugoma duomenų bazėje |
[!DANGER] Atsarginė kopija
AIHUMMER_MASTER_KEYatskirai ir laikyti tai kitur nei duomenų bazės atsarginė kopija. Saugykla yra užšifruota vokeliu naudojant šį raktą — prarasti pagrindinis raktas ir užšifruoti slaptumai nebegali būti atkurti, net su tobulu duomenų bazės atsarginė kopija.
PostgreSQL yra tiesos šaltinis
Laikykite duomenų bazę autoritetinga. Rekomenduojama bazinė linija yra kasdien pg_dump plius WAL archyvavimas punktiniu laiko atkūrimui (PITR) taigi galite sukti į priekį į bet kurią akimirką tarp išsaugojimų.
# Daily logical dump
pg_dump "$AIHUMMER_DATABASE_URL" --format=custom --file=aihummer-$(date +%F).dump
Suderinkite atsargines kopijas su nuolatiniu WAL archyvavimu (PITR), kad galėtumėte tiksliai atkurti duomenis tarp momentinių kopijų.
Eynšteino atmintis taip pat gyvena duomenų bazėje: žmogui suprantamas kanoninis Markdown (MEMORY.md) ir v2 vektorių saugykla yra projekcijos gauta iš jo, o ne atskiros autoritetingos saugyklos.
Blokų atsarginė kopija
Medijos ir failų priedai gyvena pagal AIHUMMER_BLOB_DIR. Atsargine šio katalogo kopiją kartu su duomenų baze, kad atkurtos pokalbių žinutės vis tiek galėtų susieti savo priedus. Jei AIHUMMER_BLOB_DIR nėra sukonfigūruota, medijos/duomenų failų paslauga neveikia ir nėra nieko papildomo kopijuoti.
aihummer atsarginės kopijos ir atkūrimo komandos
CLI sujungia procedūrą į dvi komandas:
aihummer backup [dir] # write a backup into [dir]
aihummer restore <file> # restore from a backup file
Naudokite tai įprastoms operatyvinėms atsarginėms kopijoms ir atkūrimams. Žr. CLI nuoroda susijusiems komandų.
[!WARNING] Viena duomenų bazės atkūrimas nėra pilnas atkūrimas. Atkurkite ir blob katalogą, ir įsitikinkite, kad tas pats
AIHUMMER_MASTER_KEYyra dabartiniame tiksline kompiuteryje — priešingu atveju saugyklos negalima dešifruoti.
Nutrūkusios sistemų atkūrimas
Pilno šeimininko praradimo atveju vadovaukitės katastrofos atsigavimo veiksmų vadovas (docs/runbooks/disaster-recovery.md). Atkūrimo tvarka yra:
- Sukurkite pagrindinį kompiuterį ir įdiekite tą pačią AiHummer versiją.
- Atkurti pagrindinis raktas į
AIHUMMER_MASTER_KEY. - Atkurti duomenų bazė (paskutinė atsarginė kopija, tada atstatyti naudojant WAL/PITR, jei taikoma).
- Atkurti blob katalogas prie
AIHUMMER_BLOB_DIR. - Atkurti modulio konfigūracija ir artefaktai (nustatymai saugomi duomenų bazėje; atkurti bet kokius modulio specifinius konfigūracijos failus iš jūsų atsarginės kopijos).
- Atkurti Einšteino atminties failai —
MEMORY.mdir kanoninis Markdown (atminties projekcija) — į jų katalogą (arba leiskite jiems būti atstatytiems iš duomenų bazė). - Jei naudojama įterpimo pusės programa, atkurkite v2 vektorių saugykla (arba atstatyti indeksai iš atstatytos duomenų bazės/Markdown).
- Paleisti paslaugas (
aihummer up) ir patikrink su/readyzirdeploy/host/smoke.sh.
[!TIP] Taip pat laikyti
AIHUMMER_MEDIA_TOKEN_SECRETsu jūsų pagrindiniu raktu. Jis yra pasirašytas žiniasklaidos atsisiuntimo URL galioja po perkrovimų ir atkūrimo.
Kur toliau
- Bandymo zondai ir dūmų testas, naudojami atkūrimui patikrinti: systemd ir sveikatos patikrinimai.
- Versijų valdymas ir migracijos atnaujinimo metu: Atnaujinimo politika.