> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/el/syntirisi/data-and-backups.md).

# Δεδομένα και αντίγραφα ασφαλείας

Κάποιες φορές χρειάζεται να αλλάξουμε το σχήμα των δεδομένων στη βάση δεδομένων καθώς εξελίσσουμε το Overleaf. Για να αυτοματοποιηθεί αυτή η διαδικασία, χρησιμοποιούνται scripts μετεγκατάστασης. Θα έχουν εκτελεστεί στο [overleaf.com](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit) πρώτα, το οποίο είναι η μεγαλύτερη εγκατάσταση του Overleaf στον κόσμο, οπότε οι περισσότερες περιπτώσεις θα έχουν ήδη αντιμετωπιστεί· ωστόσο, δεν παρέχουμε καμία εγγύηση για τα δεδομένα σας. Βεβαιωθείτε ότι δημιουργείτε ένα **συνεπές** αντίγραφο ασφαλείας των δεδομένων σας **πριν** κατά την αναβάθμιση της εγκατάστασής σας.

{% hint style="info" %}
Κατά την αναβάθμιση σε μια νέα εικόνα Docker, τυχόν μετεγκαταστάσεις που έχουν **μην** δεν έχουν ακόμη εκτελεστεί θα εκτελεστούν αυτόματα. Αυτό μπορεί να πάρει λίγο χρόνο, ανάλογα με το μέγεθος του συνόλου δεδομένων σας· η παρακολούθηση των αρχείων καταγραφής θα σας δείξει την πρόοδο. Για περισσότερες πληροφορίες, δείτε το [Καταγραφή](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/logging) τεκμηρίωση.
{% endhint %}

### Αποθήκευση δεδομένων

Το Overleaf Community Edition και το Server Pro αποθηκεύουν τα δεδομένα τους σε τρία ξεχωριστά σημεία:

* **Βάση δεδομένων MongoDB:** Εδώ βρίσκονται τα δεδομένα των χρηστών και των έργων.
* **Redis:** λειτουργεί ως προσωρινή μνήμη υψηλής απόδοσης για δεδομένα εν εξελίξει, αποθηκεύοντας κυρίως πληροφορίες σχετικές με τις επεξεργασίες έργων και τη συνεργασία.
* **Σύστημα αρχείων Overleaf:** αποθηκεύει μη επεξεργάσιμα αρχεία έργου (συμπεριλαμβανομένων εικόνων) και λειτουργεί επίσης ως προσωρινή μνήμη δίσκου κατά τη μεταγλώττιση των έργων.

{% hint style="info" %}
Αυτό μπορεί να είναι `~/sharelatex_data` ή `~/overleaf_data`ανάλογα με το πότε ρυθμίστηκε η εγκατάστασή σας.
{% endhint %}

{% hint style="success" %}
Για αρχεία έργων και πλήρη δεδομένα ιστορικού έργου υποστηρίζουμε επίσης backends αποθήκευσης συμβατά με S3.
{% endhint %}

Δείτε το Φάκελοι σε λεπτομέρεια για περισσότερες πληροφορίες σχετικά με τη διάταξη των φακέλων στον δίσκο.

### Δημιουργία συνεπούς αντιγράφου ασφαλείας

Υπάρχουν τρεις αποθηκεύσεις που πρέπει να συμπεριληφθούν κατά τη δημιουργία ενός συνεπούς αντιγράφου ασφαλείας:

* MongoDB
* Redis
* Δεδομένα του συστήματος αρχείων Overleaf

Για να παραχθεί ένα συνεπές αντίγραφο ασφαλείας είναι **υποχρεωτικό** να εμποδίζονται οι χρήστες από το να παράγουν νέα δεδομένα όσο εκτελείται η διαδικασία δημιουργίας αντιγράφου ασφαλείας. Συνεπώς, συνιστούμε να προγραμματίσετε ένα παράθυρο συντήρησης κατά το οποίο οι χρήστες δεν θα πρέπει να μπορούν να έχουν πρόσβαση στην εγκατάσταση ή να επεξεργάζονται τα έργα τους.

Πριν ξεκινήσετε τη διαδικασία δημιουργίας αντιγράφου ασφαλείας θα χρειαστεί να θέσετε την εγκατάστασή σας εκτός σύνδεσης. Ξεκινώντας με το Server Pro `3.5.0` η διαδικασία τερματισμού αυτοματοποιεί το κλείσιμο του ιστότοπου και την αποσύνδεση των χρηστών.

Για να τερματίσετε την εγκατάστασή σας θα χρειαστεί να εκτελέσετε `bin/docker-compose stop sharelatex` αν εκτελείτε μια ανάπτυξη Toolkit ή `docker compose stop sharelatex` αν εκτελείτε Docker Compose.

Μόλις το `sharelatex` κοντέινερ σταματήσει μπορείτε να ξεκινήσετε τη διαδικασία δημιουργίας αντιγράφου ασφαλείας.

Μόλις η διαδικασία αντιγράφου ασφαλείας ολοκληρωθεί **με επιτυχία** θα χρειαστεί να ξεκινήσετε το `sharelatex` κοντέινερ. Για να το κάνετε αυτό εκτελέστε `bin/docker-compose start sharelatex` αν εκτελείτε μια ανάπτυξη Toolkit ή `docker compose start sharelatex` αν εκτελείτε Docker Compose.

{% hint style="danger" %}

* Τα αντίγραφα ασφαλείας θα πρέπει να αποθηκεύονται σε ξεχωριστό διακομιστή από αυτόν στον οποίο εκτελείται η εγκατάσταση του Overleaf σας, ιδανικά σε εντελώς διαφορετική τοποθεσία.
* Η αναπαραγωγή των βάσεων δεδομένων σε πολλαπλές εγκαταστάσεις MongoDB μπορεί να προσφέρει κάποια πλεονάζουσα ασφάλεια, αλλά δεν προστατεύει από αλλοίωση.
* Η δοκιμή των αντιγράφων ασφαλείας σας είναι ο καλύτερος τρόπος για να διασφαλίσετε ότι είναι πλήρη και λειτουργικά.
  {% endhint %}

### MongoDB

Το MongoDB συνοδεύεται από ένα εργαλείο γραμμής εντολών που ονομάζεται [mongodump](https://docs.mongodb.com/manual/reference/program/mongodump/) το οποίο μπορεί να χρησιμοποιηθεί για τη δημιουργία αντιγράφου ασφαλείας των δεδομένων χρηστών και έργων που είναι αποθηκευμένα στη βάση δεδομένων.

### Δεδομένα του συστήματος αρχείων Overleaf

Για αναπτύξεις Toolkit, η διαδρομή όπου αποθηκεύονται τα μη επεξεργάσιμα αρχεία σας καθορίζεται στη `config/overleaf.rc` χρησιμοποιώντας τις `OVERLEAF_DATA_PATH` μεταβλητή περιβάλλοντος, αλλά, ανάλογα με το πότε δημιουργήθηκε η εγκατάστασή σας, αυτό μπορεί να είναι `data/sharelatex`.

Η χρήση ενός εργαλείου όπως το **rsync** για την αναδρομική αντιγραφή αυτού του καταλόγου απαιτείται για να διασφαλιστεί ότι θα δημιουργηθεί πλήρες αντίγραφο ασφαλείας.

### Redis

Το Redis αποθηκεύει τις συνεδρίες χρηστών και τις εκκρεμείς ενημερώσεις εγγράφων πριν εγγραφούν στη MongoDB.

Η επιμονή Append Only File (AOF) είναι η προτεινόμενη ρύθμιση για την επιμονή του Redis.

Οι χρήστες του Toolkit έχουν την επιμονή AOF ενεργοποιημένη από προεπιλογή για **νέες** εγκαταστάσεις, οι υπάρχοντες χρήστες μπορούν να βρουν περισσότερες πληροφορίες σχετικά με την ενεργοποίηση του AOF [εδώ](/on-premises/el/rythmisi/overleaf-toolkit/redis.md#enabling-append-only-file-persistence).

Αν αποφασίσετε να συνεχίσετε να χρησιμοποιείτε στιγμιότυπα RDB μαζί με την επιμονή AOF, μπορείτε να αντιγράψετε το αρχείο RDB σε μια ασφαλή τοποθεσία ως αντίγραφο ασφαλείας.

### Μετακίνηση δεδομένων μεταξύ διακομιστών

Στην καλύτερη περίπτωση δεν έχετε ακόμη κανένα πολύτιμο δεδομένο στη νέα εγκατάσταση. Δεν διαθέτουμε διαδικασία για τη συγχώνευση των δεδομένων των εγκαταστάσεων.

Υποθέτοντας ότι η νέα εγκατάσταση δεν έχει ακόμη δεδομένα, ακολουθούν μερικά βήματα που θα μπορούσατε να ακολουθήσετε. Σε γενικές γραμμές, δημιουργούμε ένα tar-ball των `mongo`, `redis` και `Overleaf` volumes, το αντιγράφουμε στον νέο διακομιστή και το αποσυμπιέζουμε ξανά εκεί.

#### Toolkit

```bash
# Τερματίστε ομαλά την παλιά εγκατάσταση
old-server$ bin/stop

# Δημιουργήστε το tar-ball
old-server$ tar --create --file backup-old-server.tar config/ data/

# Αντιγράψτε το αρχείο backup-old-server.tar από τον old-server στον
# new-server χρησιμοποιώντας οποιαδήποτε μέθοδο σας βολεύει

# Τερματίστε ομαλά τη νέα εγκατάσταση (αν έχει ήδη ξεκινήσει)
new-server$ bin/stop

# Μετακινήστε τα νέα δεδομένα, μπορείτε επίσης να τα διαγράψετε
new-server$ mkdir backup-new-server
new-server$ mv config/ data/ backup-new-server/

# Γεμίστε ξανά τον κατάλογο config/data
new-server$ tar --extract --file backup-old-server.tar

# Ξεκινήστε τα κοντέινερ
new-server$ bin/up
```

#### Docker Compose

```bash
# Τερματίστε ομαλά την παλιά εγκατάσταση
old-server$ docker stop sharelatex
old-server$ docker stop mongo redis

# Δημιουργήστε το tar-ball
old-server$ tar --create --file backup-old-server.tar ~/OVERLEAF_data ~/mongo_data ~/redis_data

# Αντιγράψτε το αρχείο backup-old-server.tar από τον old-server στον
# new-server χρησιμοποιώντας οποιαδήποτε μέθοδο σας βολεύει

# Τερματίστε ομαλά τη νέα εγκατάσταση (αν έχει ήδη ξεκινήσει)
new-server$ docker stop sharelatex
new-server$ docker stop mongo redis

# Μετακινήστε τα νέα δεδομένα, μπορείτε επίσης να τα διαγράψετε
new-server$ mkdir backup-new-server
new-server$ mv ~/OVERLEAF_data ~/mongo_data ~/redis_data backup-new-server/

# Γεμίστε ξανά τους καταλόγους δεδομένων
new-server$ tar --extract --file backup-old-server.tar

# Ξεκινήστε τα κοντέινερ
new-server$ docker start mongo redis
new-server$ docker start sharelatex
```

Ανάλογα με το **docker-compose.yml** αρχείο σας, ίσως χρειαστεί να προσαρμόσετε τις διαδρομές των `mongo`, `redis`, `Overleaf` volumes.

{% hint style="info" %}
Όταν εκτελείται ως ο χρήστης root (ή με sudo), το tar θα διατηρήσει τον ιδιοκτήτη/ομάδα του αρχείου και τα δικαιώματα, κάτι που είναι κρίσιμο κατά την επαναφορά του αντιγράφου ασφαλείας.
{% endhint %}

### Φάκελοι σε λεπτομέρεια

{% hint style="info" %}
Οι ακόλουθοι φάκελοι έχουν επιπλέον υποδείξεις:

* (b) να συμπεριλαμβάνεται στα αντίγραφα ασφαλείας, καλύτερα όταν η εγκατάσταση είναι σταματημένη για να διασφαλιστεί η συνέπεια
* (d) μπορεί να διαγραφεί
* (e) παροδικά αρχεία, μπορούν να διαγραφούν όταν η εγκατάσταση είναι σταματημένη
  {% endhint %}

1. `~/mongo_data` (b)
   * κατάλογος δεδομένων mongodb
2. `~/redis_data` (b)
   * κατάλογος δεδομένων redis db
3. `~/overleaf_data`
   1. bin
      1. synctex (d)
         * δεν χρησιμοποιείται στην πιο πρόσφατη έκδοση, παλαιότερα χρησιμοποιούνταν ένα προσαρμοσμένο δυαδικό synctex (το synctex χρησιμοποιείται για αντιστοίχιση πηγής μεταξύ αρχείων .tex και του pdf)
   2. data
      1. cache (e)
         * cache δυαδικών αρχείων για μεταγλωττίσεις
      2. compiles (e)
         * εδώ γίνεται η μεταγλώττιση LaTeX
      3. db.sqlite (d)
         * δεν χρησιμοποιείται στην πιο πρόσφατη έκδοση, παλαιότερα αποθήκευε λεπτομέρειες cache του clsi (είτε μεταφέρθηκαν σε απλούς χάρτες στη μνήμη είτε κάνουμε σάρωση του δίσκου)
      4. db.sqlite-wal (d)
         * δεν χρησιμοποιείται στην πιο πρόσφατη έκδοση, δείτε το db.sqlite
      5. output (e)
         * αποθήκευση εξόδου μεταγλώττισης LaTeX για σερβίρισμα στον πελάτη
      6. template\_files (b)
         * προεπισκοπήσεις εικόνων του συστήματος προτύπων (μόνο Server Pro)
      7. user\_files (b)
         * δυαδικά αρχεία των έργων
      8. history (b)
         * πλήρη αρχεία ιστορικού έργου
   3. tmp
      1. dumpFolder (e)
         * προσωρινά αρχεία από τη διαχείριση αρχείων zip
      2. uploads (e)
         * buffering των ανεβασμάτων αρχείων (ανέβασμα δυαδικού αρχείου/νέου έργου από zip)
      3. projectHistories (e)
         * προσωρινά αρχεία για πλήρεις μετεγκαταστάσεις ιστορικού έργου


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/el/syntirisi/data-and-backups.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
