> 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/ypostiriksi/support-guides/doc-version-recovery.md).

# (Μεταφορά v5.0.1) Ανάκτηση έκδοσης εγγράφου

{% hint style="info" %}
Αν δεν εκτελέσατε ποτέ το Server Pro έκδοση 5.0.1 ή το Community Edition έκδοση 5.0.1, ή αν ξεκινήσατε μια ολοκαίνουργια εγκατάσταση με το 5.0.1, δεν χρειάζεται να εκτελέσετε αυτήν τη διαδικασία αποκατάστασης.
{% endhint %}

**Ενημερώσεις σε αυτήν τη σελίδα:**

* (2024-04-22 13:40 BST): Προστέθηκε το βήμα "Αποτρέψτε την είσοδο νέων ενημερώσεων στο σύστημα και αδειάστε όλες τις αλλαγές στο MongoDB".
* (2024-04-23 11:45 BST): Λάβετε υπόψη τις αποτυχημένες εκκαθαρίσεις στο 5.0.1 και παραλείψτε τις εκκαθαρίσεις όταν έχει ξεκινήσει το 5.0.2.

Η διάρκεια της αποκατάστασης θα εξαρτηθεί από τον αριθμό και το μέγεθος των έργων στην εγκατάστασή σας και από το backend αποθήκευσης που χρησιμοποιείται από το history store για τα chunks (όπως ορίζεται στο `OVERLEAF_HISTORY_CHUNKS_BUCKET`).

Η διαδικασία αποκατάστασης θα καθυστερήσει την εκκίνηση της εφαρμογής μέσα στο container Server Pro. Ο ιστότοπος θα εμφανίζεται εκτός λειτουργίας κατά τη διάρκεια αυτού του χρόνου. Υποστηρίζουμε την εκτέλεση της αποκατάστασης μόνο από μία εγκατάσταση του container Server Pro· όλοι οι άλλοι workers οριζόντιας κλιμάκωσης πρέπει να είναι εκτός λειτουργίας.

Μπορείτε να διακόψετε και να συνεχίσετε τη διαδικασία αποκατάστασης αν χρειαστεί.

Με βάση τις δοκιμές απόδοσης μας, η διαδικασία αποκατάστασης μπορεί να επεξεργάζεται περίπου 10 χιλ. μικρά έργα ανά λεπτό σε σύγχρονο υλικό (ταχύτητα ρολογιού CPU 3GHz και τοπικός αποθηκευτικός χώρος NVMe). Ως παράδειγμα, για μια εγκατάσταση με 100 χιλ. έργα, προγραμματίστε ένα παράθυρο συντήρησης που να επιτρέπει τουλάχιστον 10+2 λεπτά διακοπής λειτουργίας. Χρησιμοποιήστε το παρακάτω ερώτημα για να εκτιμήσετε τον αριθμό των έργων στην εγκατάστασή σας:

{% code overflow="wrap" %}

```bash
$ docker exec mongo mongosh sharelatex --quiet --eval 'db.projects.estimatedDocumentCount() + db.deletedProjects.estimatedDocumentCount()'
```

{% endcode %}

Διαβάστε πλήρως τα παρακάτω βήματα αποκατάστασης πριν ξεκινήσετε. Οι πελάτες του Server Pro μπορούν κάλλιστα να επικοινωνήσουν με το <support@overleaf.com> για οποιαδήποτε ερώτηση.

### Διαδικασία αποκατάστασης

{% stepper %}
{% step %}

#### Λήψη των εικόνων έκδοσης

Κατεβάστε τα `5.0.3` εικόνες έκδοσης.
{% endstep %}

{% step %}

#### Εντοπίστε μερικά έργα

Εντοπίστε μερικά έργα με βάση το id που δεν έχουν ιστορικό· ιδανικά, έχετε άδεια να κάνετε αλλαγή σε ένα από αυτά.
{% endstep %}

{% step %}

#### Προγραμματίστε συντήρηση

Προγραμματίστε ένα παράθυρο συντήρησης για τη διακοπή λειτουργίας.
{% endstep %}

{% step %}

#### Σταματήστε όλους τους workers εκτός από έναν

Σταματήστε όλους τους workers εκτός από έναν όταν χρησιμοποιείτε ρύθμιση οριζόντιας κλιμάκωσης.
{% endstep %}

{% step %}

#### Σταματήστε τις νέες ενημερώσεις και αδειάστε όλες τις αλλαγές στο MongoDB

Αποτρέψτε την είσοδο νέων ενημερώσεων στο σύστημα και αδειάστε όλες τις αλλαγές στο MongoDB:

1. Κλείστε τον επεξεργαστή και αποσυνδέστε χειροκίνητα όλους τους χρήστες μέσω του πίνακα διαχείρισης στο `https://my-server-pro.example.com/admin#open-close-editor` στην καρτέλα "Άνοιγμα/Κλείσιμο Επεξεργαστή".
2. Σταματήστε την υπηρεσία Websocket/real-time.

   ```bash
   $ docker exec sharelatex sv stop real-time-overleaf
   ```
3. Περιμένετε να τερματιστεί η υπηρεσία real-time, όπως υποδεικνύεται από το `εκτός λειτουργίας:`.

   ```bash
   $ docker exec sharelatex sv status real-time-overleaf
   εκτέλεση: real-time-sharelatex: (pid 394) 50s, επιθυμητό εκτός λειτουργίας, ελήφθη TERM
   # περιμένετε λίγο ακόμη...

   $ docker exec sharelatex sv status real-time-overleaf
   εκτός λειτουργίας: real-time-sharelatex: 7s, κανονικά σε λειτουργία
   ```
4. Σταματήστε το container git-bridge αν είναι ενεργό.

   ```bash
   $ docker stop git-bridge
   ```
5. Αν δεν εκτελέσατε ποτέ το 5.0.2: Εκτελέστε χειροκίνητα μια εκκαθάριση για τις ενημερώσεις εγγράφων και περιμένετε να ολοκληρωθεί με επιτυχία.

   Μπορείτε να επαναλάβετε την εντολή σε περίπτωση σφάλματος. Σε περίπτωση που δείτε μη μηδενικό `failureCount` σε διαδοχικές εκτελέσεις, παρακαλούμε σταματήστε τη μετανάστευση (επαναφέρετε τις υπηρεσίες μέσω του `docker restart git-bridge sharelatex`) και επικοινωνήστε με την υποστήριξη.

   <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">$ docker exec sharelatex bash -c 'source /etc/container_environment.sh &#x26;&#x26; source /etc/overleaf/env.sh &#x26;&#x26; cd services/document-updater &#x26;&#x26; LOG_LEVEL=info node scripts/flush_all.js'
   ...
   {"name":"default","hostname":"...","pid":324,"level":30,"successCount":...,"failureCount":0,"msg":"ολοκληρώθηκε η εκκαθάριση όλων των έργων","time":"...","v":0}
   Ολοκληρώθηκε η εκκαθάριση όλων των έργων
   </code></pre>
6. Αν δεν εκτελέσατε ποτέ το 5.0.2: Βεβαιωθείτε ότι όλες οι αλλαγές έχουν αδειάσει από το redis.

   Αν λάβετε οποιαδήποτε έξοδο από το `redis-cli`, παρακαλούμε σταματήστε τη μετανάστευση (επαναφέρετε τις υπηρεσίες μέσω του `docker restart git-bridge sharelatex`) και επικοινωνήστε με την υποστήριξη.

   <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">$ docker exec redis redis-cli --scan --pattern 'DocVersion:*'
   # καμία έξοδος από το redis-cli υποδηλώνει επιτυχία, ελέγξτε στη συνέχεια τον κωδικό εξόδου του redis-cli, θα πρέπει να είναι μηδέν
   $ echo $?
   0
   </code></pre>
7. Προσπαθήστε να αδειάσετε τυχόν εκκρεμείς αλλαγές ιστορικού.

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

   <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">$ docker exec sharelatex bash -c 'source /etc/container_environment.sh &#x26;&#x26; source /
   </code></pre>

{% endstep %}

{% step %}

#### Πάρτε αντίγραφο ασφαλείας

Σκεφτείτε να δημιουργήσετε ένα [συνεπές αντίγραφο ασφαλείας](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) του instance.
{% endstep %}

{% step %}

#### Αναβάθμιση

Αναβάθμιση στην έκδοση `5.0.3`.
{% endstep %}

{% step %}

#### Αυτόματη αποκατάσταση

Η διαδικασία αποκατάστασης εκτελείται αυτόματα κατά την εκκίνηση του container.
{% endstep %}

{% step %}

#### Παρακολούθηση προόδου

Μπορείτε να παρακολουθήσετε την πρόοδο του script ακολουθώντας το αρχείο καταγραφής `/var/lib/overleaf/data/history/doc-version-recovery.log`. Θα εμφανίσει τον συνολικό αριθμό των έργων στην αρχή και μια σύνοψη μετά από κάθε 1000 επεξεργασμένα έργα.

{% code overflow="wrap" %}

```bash
$ docker exec sharelatex tail --retry --follow /var/lib/overleaf/data/history/doc-vers
```

{% endcode %}
{% endstep %}

{% step %}

#### Περιμένετε να ολοκληρωθεί η διαδικασία αποκατάστασης

Περιμένετε να ολοκληρωθεί η διαδικασία αποκατάστασης είτε ακολουθώντας το παραπάνω αρχείο καταγραφής μέχρι να `Ολοκληρώθηκε.` έχει εκτυπωθεί μια γραμμή ή περιμένοντας να `Ολοκληρώθηκε η αποκατάσταση των εκδόσεων εγγράφων.` εκτυπωθεί στην τυπική έξοδο του container Server Pro.
{% endstep %}

{% step %}

#### Επαληθεύστε τη διαδικασία αποκατάστασης

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

1. Επιταχύνετε τον επανασυγχρονισμό για τα έργα που θα δοκιμάσετε (Θα επεξεργαστούν κάποια στιγμή, αλλά δεν θέλουμε να περιμένουμε να έρθει η σειρά τους.)

   <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">$ docker exec sharelatex curl -X POST --silent "http://127.0.0.1:3054/project/000000000000000000000000/resync?force=true"
   </code></pre>

   (Επαναλάβετε με κάθε ένα από τα project-id για δοκιμή, αντικαθιστώντας το `000000000000000000000000` με ένα project-id τη φορά.)
2. Ανοίξτε τον επεξεργαστή έργου για τα έργα `https://my-server-pro.example.com/project/000000000000000000000000`
3. Ανοίξτε το πλαίσιο "Ιστορικό" για το έργο και δείτε το πιο πρόσφατο περιεχόμενο.
4. Προαιρετικά: Κλείστε ξανά το πλαίσιο "Ιστορικό". Κάντε μια αλλαγή κώδικα, όπως την προσθήκη ενός σχολίου στην κεφαλίδα.
5. Προαιρετικά: Εκτελέστε εκ νέου μεταγλώττιση για να ενεργοποιήσετε την εκκαθάριση της τοπικής αλλαγής. Ανοίξτε ξανά το πλαίσιο "Ιστορικό" και δείτε την αλλαγή. Όταν τελειώσετε, αναιρέστε την αλλαγή.
   {% endstep %}

{% step %}

#### Για οριζόντια κλιμάκωση...

Ξεκινήστε ξανά τους άλλους workers.
{% endstep %}

{% step %}

#### Διατηρήστε το instance σε λειτουργία

Παρακαλούμε διατηρήστε σε λειτουργία το instance που εκτέλεσε τη διαδικασία αποκατάστασης. Θα επανασυγχρονίσει το ιστορικό για όλα τα έργα στο παρασκήνιο με ταυτόχρονη εκτέλεση 1. Αυτό θα οδηγήσει σε ελαφρώς αυξημένο βασικό φορτίο. (Μπορείτε να επανεκκινήσετε το instance, αλλά θα χρειαστεί να ξεκινήσει από την αρχή τους επανασυγχρονισμούς.)
{% endstep %}

{% step %}

#### Ενημερώστε μας όταν ολοκληρώσετε

Πελάτες Server Pro: Παρακαλούμε ενημερώστε την ομάδα υποστήριξης όταν ολοκληρώσετε τη διαδικασία αποκατάστασης.
{% endstep %}
{% endstepper %}


---

# 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/ypostiriksi/support-guides/doc-version-recovery.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.
