> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-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, οποιεσδήποτε μετεγκαταστάσεις που έχουν **να μην** ακόμη εκτελεστεί θα εκτελεστούν αυτόματα· αυτό μπορεί να πάρει κάποιο χρόνο ανάλογα με το μέγεθος του συνόλου δεδομένων σας, και η παρακολούθηση των logs θα σας δείξει την πρόοδο. Για περισσότερες πληροφορίες, δείτε το [Καταγραφή](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/logging) τεκμηρίωση.
{% endhint %}

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

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

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

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

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

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

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

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

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

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

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

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

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

Μόλις η διαδικασία δημιουργίας αντιγράφου ασφαλείας ολοκληρωθεί **επιτυχώς** θα χρειαστεί να ξεκινήσετε το `sharelatex` container. Για να το κάνετε αυτό εκτελέστε `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 [here](/on-premises/el/diamorfosi/overleaf-toolkit/redis.md#enabling-append-only-file-persistence).

Αν αποφασίσετε να συνεχίσετε να χρησιμοποιείτε snapshots 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

# Εκκινήστε τα containers
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

# Εκκινήστε τα containers
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://ayakaleaf-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.
