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

# (v5.0.1 Geçişi) Belge sürümü kurtarma

{% hint style="info" %}
Eğer daha önce Server Pro 5.0.1 sürümünü veya Community Edition 5.0.1 sürümünü hiç çalıştırmadıysanız ya da 5.0.1 ile yepyeni bir örnek başlattıysanız, bu kurtarma işlemini çalıştırmanız gerekmez.
{% endhint %}

**Bu sayfadaki güncellemeler:**

* (2024-04-22 13:40 BST): "Yeni güncellemelerin sisteme girmesini durdur ve tüm değişiklikleri MongoDB'ye aktar" adımı eklendi.
* (2024-04-23 11:45 BST): 5.0.1’deki bozuk flush işlemleri hesaba katıldı ve 5.0.2 başlatıldığında flush işlemleri atlandı.

Kurtarma işleminin süresi, örneğinizdeki proje sayısına ve parça için geçmiş deposu tarafından kullanılan depolama arka ucuna bağlı olacaktır (şurada tanımlandığı gibi `OVERLEAF_HISTORY_CHUNKS_BUCKET`).

Kurtarma işlemi, Server Pro kapsayıcısı içinde uygulamanın başlatılmasını geciktirecektir. Bu süre boyunca site çevrimdışı görünecektir. Kurtarmayı yalnızca Server Pro kapsayıcısının tek bir örneğinden çalıştırmayı destekliyoruz; diğer tüm yatay ölçekleme çalışanları çevrimdışı olmalıdır.

Gerekirse kurtarma işlemini durdurup devam ettirebilirsiniz.

Performans testlerimize göre, kurtarma işlemi modern donanımda (3 GHz CPU saat hızı ve yerel NVMe depolama) dakikada yaklaşık 10 bin küçük projeyi işleyebilir. Örnek olarak, 100 bin projeli bir örnek için en az 10+2 dakikalık kesinti süresi sağlayan bir bakım penceresi planlayın. Örneğinizdeki proje sayısını tahmin etmek için aşağıdaki sorguyu kullanın:

{% code overflow="wrap" %}

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

{% endcode %}

Başlamadan önce lütfen aşağıdaki kurtarma adımlarının tamamını okuyun. Server Pro müşterileri <support@overleaf.com> adresinden herhangi bir soruyla bizimle iletişime geçmekten memnuniyet duyar.

### Kurtarma işlemi

{% stepper %}
{% step %}

#### Sürüm imajlarını çekin

Çekin `5.0.3` sürüm imajlarını.
{% endstep %}

{% step %}

#### Birkaç proje belirleyin

Geçmişi eksik olan birkaç projeyi kimliğine göre belirleyin; ideal olarak bunlardan birinde değişiklik yapma izniniz olmalı.
{% endstep %}

{% step %}

#### Bakım planlayın

Kesinti süresi için bir bakım penceresi planlayın.
{% endstep %}

{% step %}

#### Bir tane hariç tüm çalışanları durdurun

Yatay ölçekleme kurulumu kullanırken bir tane hariç tüm çalışanları durdurun.
{% endstep %}

{% step %}

#### Yeni güncellemeleri durdurun ve tüm değişiklikleri MongoDB'ye aktarın

Yeni güncellemelerin sisteme girmesini durdurun ve tüm değişiklikleri MongoDB'ye aktarın:

1. Düzenleyiciyi kapatın ve tüm kullanıcıların bağlantısını yönetim paneli üzerinden manuel olarak kesin: `https://my-server-pro.example.com/admin#open-close-editor` "Düzenleyiciyi Aç/Kapat" sekmesinde.
2. Websocket/gerçek zamanlı hizmetini durdurun.

   ```bash
   $ docker exec sharelatex sv stop real-time-overleaf
   ```
3. Aşağıdakinin gösterdiği gibi, gerçek zamanlı hizmetin çıkmasını bekleyin `kapalı:`.

   ```bash
   $ docker exec sharelatex sv status real-time-overleaf
   çalışıyor: real-time-sharelatex: (pid 394) 50s, kapalı olması bekleniyor, TERM aldı
   # biraz daha bekleyin...

   $ docker exec sharelatex sv status real-time-overleaf
   kapalı: real-time-sharelatex: 7s, normalde açık
   ```
4. Etkinse git-bridge kapsayıcısını durdurun.

   ```bash
   $ docker stop git-bridge
   ```
5. Eğer daha önce 5.0.2'yi hiç çalıştırmadıysanız: belge güncellemeleri için manuel bir flush işlemi başlatın ve bunun başarıyla tamamlanmasını bekleyin.

   Hata durumunda komutu tekrarlayabilirsiniz. Ardışık çalıştırmalarda sıfırdan farklı bir `failureCount` görürseniz, lütfen taşımayı durdurun (hizmetleri şu komutla geri yükleyin: `docker restart git-bridge sharelatex`) ve destek ekibiyle iletişime geçin.

   <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":"tüm projelerin flush işlemi tamamlandı","time":"...","v":0}
   Tüm projelerin flush işlemi tamamlandı
   </code></pre>
6. Eğer daha önce 5.0.2'yi hiç çalıştırmadıysanız: tüm değişikliklerin Redis'ten boşaltıldığından emin olun.

   Eğer aşağıdakinden herhangi bir çıktı alırsanız `redis-cli`, lütfen taşımayı durdurun (hizmetleri şu komutla geri yükleyin: `docker restart git-bridge sharelatex`) ve destek ekibiyle iletişime geçin.

   <pre class="language-bash" data-overflow="wrap"><code class="lang-bash">$ docker exec redis redis-cli --scan --pattern 'DocVersion:*'
   # redis-cli'den çıktı olmaması başarıyı gösterir; sonraki adımda redis-cli'nin çıkış kodunu kontrol edin, sıfır olmalıdır
   $ echo $?
   0
   </code></pre>
7. Bekleyen geçmiş değişikliklerini flush etmeyi deneyin.

   Bu, kötü veritabanı taşıması nedeniyle bazı projelerin geçmişleri bozulmuş olduğundan, mümkün olan en iyi çabayla yapılan bir flush işlemi olmak zorundadır. Herhangi bir hata, kurtarma işleminin sonunda geçmişin yeniden eşitlenmesiyle giderilecektir.

   <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 %}

#### Bir yedek alın

Bir [tutarlı yedekleme](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) örneğin yedeğini almayı düşünün.
{% endstep %}

{% step %}

#### Yükseltin

Şu sürüme yükseltin: `5.0.3`.
{% endstep %}

{% step %}

#### Otomatik kurtarma

Kurtarma işlemi, kapsayıcı başlatılırken otomatik olarak çalışır.
{% endstep %}

{% step %}

#### İlerlemesini izleyin

Log dosyasını tail ederek betiğin ilerlemesini izleyebilirsiniz `/var/lib/overleaf/data/history/doc-version-recovery.log`. Başlangıçta toplam proje sayısını ve işlenen her 1000 projeden sonra bir özet yazdıracaktır.

{% code overflow="wrap" %}

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

{% endcode %}
{% endstep %}

{% step %}

#### Kurtarma işleminin bitmesini bekleyin

Yukarıdaki log dosyasını bir `Tamam.` satırı yazdırılana kadar tail ederek veya `Belge sürümlerinin kurtarılması tamamlandı.` Server Pro kapsayıcısının standart çıktısına yazdırılana kadar kurtarma işleminin bitmesini bekleyin.
{% endstep %}

{% step %}

#### Kurtarma işlemini doğrulayın

Daha önce geçmişi eksik olan birkaç proje için geçmiş bölmesini açarak kurtarma işlemini doğrulayın.

1. Test edilecek projeler için yeniden eşitlemeyi hızlandırın (Nihayetinde işleneceklerdir, ancak sıra onlara gelene kadar beklemek istemiyoruz.)

   <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>

   (Test edilecek her proje kimliği için tekrarlayın, `000000000000000000000000` yerine her seferinde bir proje kimliği kullanın.)
2. Projeler için proje düzenleyicisini açın `https://my-server-pro.example.com/project/000000000000000000000000`
3. Proje için "Geçmiş" bölmesini açın ve en son içeriği görün.
4. İsteğe bağlı: "Geçmiş" bölmesini tekrar kapatın. Başlığa yorum eklemek gibi bir kod değişikliği yapın.
5. İsteğe bağlı: yerel değişikliğin flush edilmesini tetiklemek için bir yeniden derleme yapın. "Geçmiş" bölmesini tekrar açın ve değişikliği görün. İşiniz bitince değişikliği geri alın.
   {% endstep %}

{% step %}

#### Yatay ölçekleme için...

Diğer çalışanları yeniden başlatın.
{% endstep %}

{% step %}

#### Örneği çalışır durumda tutun

Lütfen kurtarma işlemini gerçekleştiren örneği çalışır durumda tutun. Bu, tüm projelerin geçmişini arka planda 1 eşzamanlılıkla yeniden eşitleyecektir. Bu, temel yükün biraz artmasına neden olacaktır. (Örneği yeniden başlatabilirsiniz, ancak yeniden eşitlemeleri baştan başlatması gerekecektir.)
{% endstep %}

{% step %}

#### İşiniz bitince bize haber verin

Server Pro müşterileri: Kurtarma işlemini tamamladığınızda lütfen destek ekibini bilgilendirin.
{% 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/tr/destek/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.
