Sikkerhetskopier og gjenopprett
Denne guiden dekker de fem tingene folk faktisk gjør med sikkerhetskopier: tar én, henter den ut, flytter et arbeidsområde, legger én tilbake og oppbevarer kopier utenfor maskinen. Den nøyaktige formen på hver artefakt og operasjon står i sikkerhetskopireferansen.
Alt her ligger under Innstillinger → Server → Sikkerhetskopi og gjenoppretting.
Forutsetninger
Seksjon med tittelen «Forutsetninger»- En full klient — skrivebords- eller nettappen. En telefon som er paret, kan ikke utløse noe av dette, og det er med vilje.
- Å ta, liste opp, laste ned eller slette et installasjonsøyeblikksbilde: eieren av installasjonen.
- For handlinger per arbeidsområde: admin i det arbeidsområdet for å eksportere, eier for å importere eller slette det.
- For ned- og opplastinger: en direkte tilkobling til serveren. Det formidlede reléet bærer RPC-rammer, ikke filoverføringer, og overføringskontrollene slår seg av med et varsel når du er på ett.
Hva en sikkerhetskopi dekker
Seksjon med tittelen «Hva en sikkerhetskopi dekker»Begge artefaktene er bare databaser:
- Et installasjonsøyeblikksbilde er en katalog med tidsstempel:
manifest.json,global.dbog én<workspaceId>/workspace.dbper arbeidsområde. - En arbeidsområdeeksport er den ene filen
workspace.db.
Ingen av dem tar med resten av datakatalogen: secrets.json (paringsnøkler,
leverandørpåloggingsinformasjon, SSO), et arbeidsområdes blobs/ (bilder limt inn i
meldinger), skills/, agents/, chat_credentials/, opptak av møtelyd eller bilder fra
stasjoner. Noe av dette er unødvendig å ta vare på, og noe er det ikke — den
fulle tabellen står i referansen,
og det å dekke det er nettopp hensikten med
avsnittet om å kopiere ut av maskinen.
Ta et øyeblikksbilde av hele installasjonen
Seksjon med tittelen «Ta et øyeblikksbilde av hele installasjonen»- Åpne Innstillinger → Server → Sikkerhetskopi og gjenoppretting.
- Under Installasjonsøyeblikksbilder trykker du Sikkerhetskopier nå.
- Varselet oppgir katalogen som ble skrevet, på verten som kjører serveren. Det nye øyeblikksbildet vises øverst i listen.
Serveren kjører videre hele tiden. Hver fil skrives med VACUUM INTO, som er konsistent
mot en aktiv database, så det trengs ingen vedlikeholdsstopp og ingen grunn til å stanse
agenter.
Hver rad i listen viser tidsstempelet, størrelsen på disken, hvor mange arbeidsområder som ble fanget opp, og om øyeblikksbildet er Fullstendig eller Ufullstendig. Ufullstendig betyr at manifestet mangler eller navngir filer som ikke finnes — en sikkerhetskopi som ble avbrutt av et krasj eller en full disk. De listes fortsatt opp med vilje: et øyeblikksbilde du ikke ser, er ett du tror du har. Et ufullstendig øyeblikksbilde kan ikke gjenopprette en hel installasjon, men arbeidsområdefilene det faktisk inneholder, kan fortsatt tas i bruk ett om gangen.
En rad kan også si n arbeidsområder ikke fanget opp. Det er et arbeidsområde som er registrert, men aldri skrevet til (det finnes ingen fil ennå), eller ett der kopien mislyktes — sjekk serverloggen.
Planlegg sikkerhetskopier av arbeidsområder og oppbevaring
Seksjon med tittelen «Planlegg sikkerhetskopier av arbeidsområder og oppbevaring»Åpne Innstillinger → Pipelines → Pipeline-maler for arbeidsområdet og finn Workspace backup. Den aktiverte planen kjører hver søndag kl. 03:00 UTC: Back up workspace, etterfulgt av Delete backups older than (30 dager som standard). Den andre noden kjører bare etter at sikkerhetskopien er vellykket. Du kan endre oppbevaringsdagene på noden eller slå av planen. Hvis serveren er frakoblet på det planlagte tidspunktet, tar planen igjen én gang når den kommer tilbake, i stedet for å spille av hver uke som ble hoppet over.
Sikkerhetskopier av arbeidsområder ligger på serveren under
backups/workspace-backups/<workspaceId>/<timestamp>/workspace.db. Oppbevaringsnoden
sletter bare gamle sikkerhetskopier for dette arbeidsområdet; den sletter aldri
installasjonsøyeblikksbilder eller sikkerhetskopier for andre arbeidsområder. Disse filene
er bare databasen. For oppbevaring utenfor maskinen kopierer du dem uavhengig.
Disse sikkerhetskopiene er atskilt fra listen Installasjonsøyeblikksbilder. For å
gjenopprette én bruker du Arbeidsområdedata → Importer med sikkerhetskopiens
workspace.db-sti på serversiden. Import erstatter arbeidsområdets gjeldende database, så
eksporter den først hvis du kan komme til å angre gjenopprettingen.
Slett et installasjonsøyeblikksbilde
Seksjon med tittelen «Slett et installasjonsøyeblikksbilde»Under Installasjonsøyeblikksbilder utvider du øyeblikksbildet, også et ufullstendig ett, og bruker Slett øyeblikksbilde i faresonen. Bekreft navnet. Hele øyeblikksbildekatalogen fjernes permanent fra serveren; last den ned først hvis du trenger en kopi. En pipeline for arbeidsområdesikkerhetskopi sletter aldri disse øyeblikksbildene.
Hent en kopi til din egen maskin
Seksjon med tittelen «Hent en kopi til din egen maskin»Stiene siden viser, ligger på maskinen som kjører cc_server. Når det ikke er maskinen du
sitter ved, bruker du Last ned-knappene:
- Ved siden av hvert arbeidsområde under Arbeidsområdedata → Last ned, for én
.db-fil. - Ved siden av hvert øyeblikksbilde under Installasjonsøyeblikksbilder → Last ned, for hele øyeblikksbildet som en
.zip.
På skrivebordet velger du hvor filen havner, og varselet oppgir den; på nett går den til nettleserens nedlastinger. Uansett rapporterer begge framdrift i bytes, fordi dette er de to nyttelastene som kan bli flere gigabyte.
Begge lager en fersk kopi i det du trykker på knappen, strømmer den og sletter serverens kopi etterpå — en nedlasting er ikke «hent filen eksportknappen lagde tidligere».
Å pakke ut et arkiv med et øyeblikksbilde gjenskaper oppsettet nøyaktig, og det er det som gjør gjenopprettingen til en tilbakekopiering.
Flytt et arbeidsområde til en annen installasjon
Seksjon med tittelen «Flytt et arbeidsområde til en annen installasjon»Ett arbeidsområde er én databasefil, så overleveringen er en filoperasjon.
- På kildeserveren: Innstillinger → Server → Sikkerhetskopi og gjenoppretting → Arbeidsområdedata, utvid arbeidsområdet og trykk Last ned.
- På målserveren oppretter du (eller velger) arbeidsområdet som skal ta imot det.
- Utvid det arbeidsområdet, og trykk Velg en fil og last opp under Gjenopprett fra denne enheten. Velg
.db-filen du lastet ned.
Hvis begge serverne er maskinen du sitter ved, gjør Lagre på server pluss Importer → Velg fil det samme uten rundturen; stiene i importdialogen løses opp på serververten.
To ting er tillatt og loggføres i stedet for å avvises: å importere en fil der den registrerte arbeidsområde-id-en avviker fra målet (slik dupliserer du et arbeidsområde eller gjenoppretter det under en ny id), og å importere en fil fra en annen installasjon. I det andre tilfellet tilhører filens parede enheter og bruker-id-er installasjonen den kom fra, og de løses ikke opp på denne — arbeidsområdets egne data er intakte, men sjekk medlemskapet på nytt etter at du har tatt det i bruk.
Chatbot-tokener ligger ved siden av databasen, ikke inni den, så et arbeidsområde du gir til noen andre, inneholder ingen aktive påloggingsdata. Installasjonen som mottar det, kobler til sine egne.
Gjenopprett ett arbeidsområde fra et øyeblikksbilde
Seksjon med tittelen «Gjenopprett ett arbeidsområde fra et øyeblikksbilde»- Under Installasjonsøyeblikksbilder utvider du øyeblikksbildet du vil bruke.
- Finn raden til arbeidsområdet og trykk Gjenopprett.
- Bekreft. Alt arbeidsområdet har gjort siden øyeblikksbildet ble tatt, er tapt.
Dette er samme operasjon som en import, rettet mot øyeblikksbildets kopi av arbeidsområdets fil — med vilje, slik at det ikke finnes en andre mekanisme som kan behandle den samme filen annerledes.
En rad kan si Ikke lenger på denne serveren, med Gjenopprett deaktivert:
øyeblikksbildet inneholder et arbeidsområde denne installasjonen ikke lenger har. Hent det
tilbake manuelt — opprett et arbeidsområde, og importer deretter til det fra
<snapshot path>/<old workspace id>/workspace.db under Arbeidsområdedata. Det
utvidede øyeblikksbildet viser sin egen Sti på serveren i et kopifelt, og radens tittel
er den gamle arbeidsområde-id-en, så du har begge halvdelene av stien foran deg.
Gjenopprett en hel installasjon
Seksjon med tittelen «Gjenopprett en hel installasjon»Det finnes ingen knapp for dette, og det bør det ikke gjøre heller: den erstatter databasene den kjørende serveren har åpne.
-
Stopp
cc_server. Kjører du skrivebordsappen med den innebygde serveren, avslutter du appen. -
Kopier innholdet i øyeblikksbildet over datakatalogen. Oppsettet i øyeblikksbildet speiler det kjørende, så dette er en ren kopiering:
Terminalvindu # macOS default; see the CLI reference for other platformsDATA_DIR="$HOME/Library/Application Support/control-center"SNAPSHOT="$DATA_DIR/backups/2026-07-28T09-12-33-000Z"cp "$SNAPSHOT/global.db" "$DATA_DIR/global.db"for d in "$SNAPSHOT"/*/; doid=$(basename "$d")mkdir -p "$DATA_DIR/$id"cp "$d/workspace.db" "$DATA_DIR/$id/workspace.db"done -
Slett alle
-wal- og-shm-filer som ligger ved siden av databasene du erstattet. De tilhører de gamle filene, og en utdatert fil ved siden av en gjenopprettet database er en risiko for korrupsjon. -
Start serveren igjen.
Øyeblikksbildet inneholder ingen secrets.json, så en installasjon som gjenopprettes på
en fersk vert, beholder dataene sine, men ikke påloggingsdataene: parede enheter,
leverandørtokener og SSO-innstillinger må etableres på nytt, eller gjenopprettes fra
stedet der du oppbevarte den filen. Gjenoppretter du på samme vert, der secrets.json
aldri gikk tapt, bevares alt.
Kopier sikkerhetskopier ut av maskinen
Seksjon med tittelen «Kopier sikkerhetskopier ut av maskinen»Et øyeblikksbilde på samme disk som databasen det kopierte, beskytter deg mot en dårlig import, ikke mot disken. Ingenting i Control Center sender en kopi noe sted av seg selv, så denne delen er ditt ansvar.
Synkroniser øyeblikksbildene
Seksjon med tittelen «Synkroniser øyeblikksbildene»Øyeblikksbilder er uforanderlige når de er skrevet, og navngitt etter tidsstempel, så
ethvert synkroniseringsverktøy håndterer dem godt. Utelat transfer/, som er en
arbeidsbenk for pågående ned- og opplastinger:
DATA_DIR="$HOME/Library/Application Support/control-center"
# To another host over sshrsync -a --delete --exclude 'transfer/' \ "$DATA_DIR/backups/" backup-host:/srv/control-center-backups/
# To object storageaws s3 sync --exclude 'transfer/*' \ "$DATA_DIR/backups/" s3://my-bucket/control-center/backups/
# Or with deduplication, encryption and its own retentionrestic backup --exclude 'transfer' "$DATA_DIR/backups"--delete speiler din lokale opprydding til målområdet. La den stå borte hvis du vil at
målområdet skal beholde øyeblikksbilder lenger enn verten gjør.
Ta med det et øyeblikksbilde utelater
Seksjon med tittelen «Ta med det et øyeblikksbilde utelater»For å kunne bygge opp installasjonen på nytt og ikke bare dataene, kopierer du også disse. De er vanlige filer og trygge å kopiere mens serveren kjører:
rsync -a \ "$DATA_DIR/secrets.json" \ backup-host:/srv/control-center-backups/config/
rsync -a --relative \ "$DATA_DIR"/./*/chat_credentials \ "$DATA_DIR"/./*/blobs \ "$DATA_DIR"/./*/skills \ "$DATA_DIR"/./*/agents \ backup-host:/srv/control-center-backups/workspace-files/secrets.json har rettighetene 0600 og inneholder hver paringsnøkkel, hver
leverandørpåloggingsinformasjon og hver SSO-innstilling i installasjonen. Stedet den
havner, må være minst like beskyttet som serververten — kryptert i ro, og ikke en bøtte
som andre kan lese.
Hopp over spaces/ (copy-on-write-worktrær, klargjort på nytt fra arkivene dine),
pr_clones/ (en cache), models/ (lastes ned på nytt), media_cache/ og rigs/
(maskintilstand, og store). Opptak av møtelyd under meetings/ er verdt å ta med hvis du
beholder møter.
Planlegg et øyeblikksbilde av hele installasjonen utenfor appen
Seksjon med tittelen «Planlegg et øyeblikksbilde av hele installasjonen utenfor appen»Den innebygde pipelinen sikkerhetskopierer bare ett arbeidsområde. For et uovervåket
øyeblikksbilde av hele installasjonen finnes det ingen CLI-underkommando, og RPC-en for
øyeblikksbilder krever en paret full klient som er installasjonens eier. En timer på verten
kan bruke VACUUM INTO mot de aktive databasene:
#!/usr/bin/env bashset -euo pipefail
DATA_DIR="${CC_SERVER_DATA_DIR:-$HOME/.local/share/control-center}"DEST="/srv/control-center-snapshots/$(date -u +%Y-%m-%dT%H-%M-%SZ)"mkdir -p "$DEST"
sqlite3 "$DATA_DIR/global.db" "VACUUM INTO '$DEST/global.db'"
for db in "$DATA_DIR"/*/workspace.db; do id=$(basename "$(dirname "$db")") mkdir -p "$DEST/$id" sqlite3 "$db" "VACUUM INTO '$DEST/$id/workspace.db'"doneKjør den som samme bruker som eier datakatalogen, fra cron eller en systemd-timer, og
synkroniser DEST ut av verten etterpå. VACUUM INTO krever SQLite 3.27 eller nyere.
Skriv den utenfor <dataDir>/backups/. En håndlaget katalog der har ingen
manifest.json, så appen ville listet den opp som et ufullstendig øyeblikksbilde, og
listen ville slutte å være en ærlig oversikt over det serveren selv har laget.
Rydd bort gamle øyeblikksbilder av hele installasjonen
Seksjon med tittelen «Rydd bort gamle øyeblikksbilder av hele installasjonen»Du kan slette enkelte installasjonsøyeblikksbilder i appen. For en oppbevaringspolicy på verten holder du katalogen for arbeidsområdesikkerhetskopier atskilt fra installasjonsøyeblikksbildene:
find "$DATA_DIR/backups" -mindepth 1 -maxdepth 1 -type d \ ! -name exports ! -name transfer ! -name workspace-backups \ -mtime +30 -exec rm -rf {} +Sjekk utdataene fra en kjøring med -print før du legger til -exec. Behold mer enn én:
feilen du beskytter deg mot, er ofte «den siste sikkerhetskopien har også problemet».
Sjekk at en sikkerhetskopi er god
Seksjon med tittelen «Sjekk at en sikkerhetskopi er god»En sikkerhetskopi ingen har gjenopprettet, er en hypotese.
Enkel sjekk — filen åpner seg og sidene er intakte:
sqlite3 "$SNAPSHOT/global.db" 'PRAGMA integrity_check;' # expects: okEkte sjekk — ta den i bruk. Opprett et midlertidig arbeidsområde på en installasjon som ikke er i produksjon, importer en arbeidsområdefil til det, og se om områdene, sakene og meldingene du forventer, er der. Det går gjennom den samme veien som en ekte gjenoppretting, inkludert gjenoppbyggingen av FTS, og det er den eneste sjekken som forteller deg at sikkerhetskopien kan gjenopprettes og ikke bare leses.
Gjør dette én gang når du setter opp sikkerhetskopier, og igjen hver gang du endrer hvor de lagres.
Feilsøking
Seksjon med tittelen «Feilsøking»| Symptom | Årsak og løsning |
|---|---|
| Ned- og opplastingskontrollene er deaktivert med et varsel om et relé | Du er tilkoblet gjennom det formidlede reléet, som ikke bærer filoverføringer. Koble til direkte |
| «Serveren nektet» | Rolle. Å ta eller liste opp et installasjonsøyeblikksbilde krever installasjonens operatør. Å laste ned et arbeidsområde krever admin, å gjenopprette ett krever eier, og en zip med et helt øyeblikksbilde krever installasjonens operatør |
| «Denne serveren har ingen sikkerhetskopiflate» | Verten har ingen sikkerhetskopiport koblet opp — en demoserver. Operasjonene mangler i stedet for å bli avvist |
| «Filen er større enn serveren godtar» | Opplastinger er begrenset til 8 GiB. Legg filen på serververten og bruk Importer → Velg fil i stedet |
| Import avvist: ikke en Control Center-arbeidsområdedatabase | Filen har ingen workspace_meta-rad — den er ikke en arbeidsområdeeksport, eller den er avkortet. Ingenting ble erstattet |
| Et øyeblikksbilde står som Ufullstendig | Manifestet mangler eller navngir filer som ikke finnes. Ta et nytt; ta i mellomtiden i bruk enkeltfiler for arbeidsområder fra det |
| Et øyeblikksbilde sier at arbeidsområder ikke ble fanget opp | Disse arbeidsområdene har aldri blitt skrevet til, eller kopien deres mislyktes. Sjekk serverloggen |
| En gjenopprettet installasjon mangler kodevert- eller SSO-påloggingsinformasjon | secrets.json ligger ikke i et øyeblikksbilde. Gjenopprett den fra stedet der du oppbevarte den, eller koble til leverandørene på nytt |
| Et gjenopprettet arbeidsområde mangler innlimte bilder | Blobs ligger ved siden av databasen, ikke i den. Kopier <workspaceId>/blobs/ over også |
Relaterte guider
Seksjon med tittelen «Relaterte guider»- Kjør en headless server: hvor datakatalogen kommer fra
- Koble til en ekstern server: direkte kontra relébaserte tilkoblinger
- Koble til en enhet: påloggingsdataene overføringsrutene signerer med
Relaterte konsepter og referanse
Seksjon med tittelen «Relaterte konsepter og referanse»- Sikkerhetskopi, eksport og import: hver operasjon, rute, felt og grense
- Arbeidsområder og isolasjon: hvorfor ett arbeidsområde er én fil
cc_serverCLI: oppsettet av datakatalogen