> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# MongoDB'yi güncelleme

<Info>
  Server CE/Server Pro'nun her yeni sürümü, desteklenen MongoDB sürümündeki değişiklikleri [sürüm notlarında](https://docs.overleaf.com/on-premises/release-notes) belirtir.
</Info>

### MongoDB'yi güncellemeli miyim?

MongoDB sürümünüzü güncellemeyi **yalnızca** Server CE/Server Pro örneğinizi yükseltmeyi planlıyorsanız düşünmelisiniz.

Mevcut (veya hedef) sürümünüz için önerilenden daha yeni bir MongoDB sürümü çalıştırıyorsanız herhangi bir değişiklik yapmanıza gerek yoktur.

<Warning>
  MongoDB sürümünüzü asla düşürmemelisiniz.
</Warning>

Mevcut MongoDB sürümünüzle ilgili olabileceğini düşündüğünüz belirli bir sorun yaşarsanız, Server CE kullanıcısıysanız çekinmeden [bir sorun kaydı açın](https://github.com/overleaf/overleaf/issues), Server Pro kullanıcısıysanız Overleaf Destek ile iletişime geçin.

### MongoDB sürümünüzü kontrol etme

`mongo` kabuğunu açmak, geçerli sürümü hemen yazdırmalıdır.

Overleaf Toolkit kullanıcıları:

```bash theme={null}
bin/docker-compose exec mongo mongod --version
db version v5.0.24
Build Info: {
    "version": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
```

Docker Compose kullanıcıları:

```bash theme={null}
docker compose exec mongo mongod --version
db version v5.0.24
Build Info: {
    "version": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

```

### Güncelleme süreci

Server CE/Server Pro örneğinizin yükseltilmesi sırasında MongoDB sürümünü güncelleme adımları şunlardır:

1. Yükseltmeyi planladığınız Server CE/Server Pro sürümüne karar verin.
2. Söz konusu Overleaf Server CE/Server Pro sürümü tarafından önerilen MongoDB sürümünü bulun.
3. MongoDB'yi hedef sürüme yükseltmek için talimatları izleyin.
4. Server CE/Server Pro imaj sürümünü yükseltin ve örneği yeniden başlatın.

Önerimiz, desteklenmesi her zaman garanti edildiği için **Server CE/Server Pro**'yu her zaman mevcut en son sürüme yükseltmenizdir (yalnızca Server Pro kullanıcıları).

<Danger>
  Server CE/Pro yükseltmesi yaparken, **bir sonraki** ana sürümün en son sürümüne yükseltmeden **önce** kurulu ana sürümün en son sürümüne yükseltmenizi öneririz. Kurulumunuz en son sürümün birden fazla ana sürüm gerisindeyse, çok adımlı bir yükseltme yapmanız gerekecektir.

  Örneğin 3.5.10 çalıştırıyorsanız, 3.5.13'e yükseltmeniz -> Tam Proje Geçmişi geçişini gerçekleştirmeniz -> 4.2.9 -> 5.5.4 yolunu izlemeniz gerekir.

  Ana sürümleri **asla** atlamamalısınız (3.5.10 -> 5.5.4). Toolkit kullanıyorsanız ve en son sürümün birden fazla ana sürüm gerisindeyseniz, manuel çok adımlı bir yükseltme yapmanız gerekeceğinden `bin/upgrade` betiğini **kullanmamalısınız**.
</Danger>

<Warning>
  Gerektiğinde geri dönebilmeniz için her ana sürüm yükseltmesinden **önce** [tutarlı bir yedek](/tr/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) aldığınızdan emin olmanız önemlidir.
</Warning>

#### Sürüm desteği bilgileri

Daha eski bir sürüme geçmeye karar vermeniz durumunda, bu tablo Server CE/Server Pro'nun önceki sürümleri için önerilen MongoDB sürümünü gösterir; ancak MongoDB sürümünüzü **asla** düşürmemelisiniz.

<div style={{ overflowX: "auto" }}><table style={{ display: "table", width: "100%" }}><thead><tr><th width="175">Server CE/Server Pro</th><th width="139" style={{ textAlign: "center" }}>MongoDB Sürümü</th><th style={{ textAlign: "center" }}>Minimum Özellik Uyumluluk Sürümü</th><th style={{ textAlign: "center" }}>Node.js Sürücüsünün Desteklediği Maksimum Sürüm</th></tr></thead><tbody><tr><td>2.0.x</td><td style={{ textAlign: "center" }}>3.4</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>2.1.x ile 2.4.x arası</td><td style={{ textAlign: "center" }}>3.6</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>>=2.5.0</td><td style={{ textAlign: "center" }}>4.0</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>>=3.1.0</td><td style={{ textAlign: "center" }}>4.2</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>>=3.2.0</td><td style={{ textAlign: "center" }}>4.4</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>>=4.2.0</td><td style={{ textAlign: "center" }}>5.0</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>>=5.1.0</td><td style={{ textAlign: "center" }}>6.0</td><td style={{ textAlign: "center" }}>-</td><td style={{ textAlign: "center" }}>-</td></tr><tr><td>>=5.3.1</td><td style={{ textAlign: "center" }}>6.0</td><td style={{ textAlign: "center" }}>5.0</td><td style={{ textAlign: "center" }}>8.0</td></tr><tr><td>>=5.5.0</td><td style={{ textAlign: "center" }}>6.0</td><td style={{ textAlign: "center" }}>6.0</td><td style={{ textAlign: "center" }}>8.0</td></tr><tr><td>6.0.0</td><td style={{ textAlign: "center" }}>8.0</td><td style={{ textAlign: "center" }}>8.0</td><td style={{ textAlign: "center" }}>8.0</td></tr></tbody></table></div>

<Danger>
  Yukarıdaki minimum özellik uyumluluk sürümü, gösterilen Overleaf sürümüyle kullanılmak üzere önerilen ilgili MongoDB sürümüne dayanmaktadır. Daha yüksek bir sürüm kullanmayı planlıyorsanız MongoDB'nin kendi minimum gereksinimi olacaktır.
</Danger>

MongoDB ile kullanım için desteklenen MongoDB Node.js sürücüsü sürümlerini belirten uyumluluk tablosunu [buradan](https://www.mongodb.com/docs/drivers/node/current/reference/compatibility/) görüntüleyebilirsiniz.

MongoDB'nin her sürümünün kullanım ömrü sonu durumunu [buradan](https://endoflife.date/mongodb) görüntüleyebilirsiniz.

#### MongoDB'yi yükseltme

MongoDB **adım adım yükseltme** gerektirir. Bu, örneğin `4.0`'dan doğrudan `5.0`'a geçemeyeceğiniz anlamına gelir. Önce `4.2`'den `4.4`'e, ardından `5.0`'a güncellemeniz gerekir.

<Info>
  MongoDB, kararlı sürümleri için çift sayılar kullanır.
</Info>

#### **MongoDB'yi Docker dışında çalıştırırken güncelleme talimatları**

MongoDB'yi yükseltirken mongodb.com'daki güncelleme talimatlarına ait bağlantılar aşağıdadır.

* [MongoDB sürüm notları - MongoDB'yi `4.2`'den `4.4`'e yükseltme](https://www.mongodb.com/docs/v4.4/release-notes/4.4-upgrade-standalone/)
* [MongoDB sürüm notları - MongoDB'yi `4.4`'ten `5.0`'a yükseltme](https://www.mongodb.com/docs/v5.0/release-notes/5.0-upgrade-replica-set/)
* [MongoDB sürüm notları - MongoDB'yi `5.0`'dan `6.0`'a yükseltme](https://www.mongodb.com/docs/v6.0/release-notes/6.0-upgrade-replica-set/)
* [MongoDB sürüm notları - MongoDB'yi `6.0`'dan `7.0`'a yükseltme](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set)
* [MongoDB sürüm notları - MongoDB'yi `7.0`'dan `8.0`'a yükseltme](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set)

<Info>
  `5.0` ve üzeri sürümlere ilişkin talimatlar, bağımsız (standalone) kurulum yerine replika kümesi (replica set) kurulumuna işaret eder. Server Pro/CE 4.0.1+ işlemleri (transaction) kullandığından MongoDB'nin bir replika kümesi olarak çalıştırılması gerekir.
</Info>

<Warning>
  MongoDB 3.2 ile 4.2 arası sürümlerin belgelerine artık [https://www.mongodb.com/docs/legacy/](https://www.mongodb.com/docs/legacy/) üzerinden erişilebilir
</Warning>

**Temel Talimatlar**

Çoğu durumda güncelleme, mongo sürümünü gerçekten güncellemeden önce bir uyumluluk bayrağının ayarlanmasını gerektirir. Adımlar şunlardır:

1. Uyumluluk bayrağını MongoDB sürüm notlarında açıklandığı şekilde ayarlayın (aşağıdaki örneklere bakın).
2. Ardından mongo imajını güncelleyin:
   1. **Toolkit kullanıcıları** `MONGO_VERSION` değerini güncelleyin, ör. `MONGO_VERSION=6.0`
   2. **Docker Compose kullanıcıları** `mongo` imaj etiketinin sürümünü güncelleyin,\
      ör. `services -> mongo -> image: mongo:6.0`;

**Örnek: MongoDB'yi `5.0`'dan `6.0`'a yükseltme**

MongoDB `6.0` çalıştırdığımızdan emin olarak başlayalım:

Overleaf Toolkit kullanıcıları:

```bash theme={null}
bin/docker-compose exec mongo mongod --version
# db version v5.0.24
```

Docker Compose kullanıcıları:

```bash theme={null}
docker compose exec mongo mongod --version
# db version v5.0.24
```

[Yükseltme talimatlarına](https://docs.mongodb.com/manual/release-notes/3.6-upgrade-standalone/#upgrade-version-path) göre tek gereksinim `featureCompatibilityVersion` değerinin `5.0` olarak ayarlanmasıdır. Bunu bir MongoDB kabuğu açıp belirtilen komutu çalıştırarak yaparız:

Overleaf Toolkit kullanıcıları:

```bash theme={null}
bin/mongo
# MongoDB shell version v5.0.24
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# bye
```

<Info>
  Docker Compose kullanıcıları bir kabuk açmak için `docker compose exec mongo mongosh` komutunu çalıştırabilir ve Toolkit kullanıcılarıyla aynı komutları çalıştırabilir.
</Info>

Overleaf Toolkit kullanıcıları:

Ardından `bin/stop` komutunu kullanarak Server CE/Server Pro ve MongoDB örneklerini durduracak, `config/overleaf.rc` içinde `MONGO_VERSION=6.0` ayarlayacak ve güncellemenin sorunsuz gerçekleştiğini doğrulamak için `bin/up mongo` kullanarak `mongo` hizmetini yeniden başlatacağız.

Son olarak Server CE/Server Pro imaj sürümünü hedef sürümümüze güncelleyecek ve `bin/up -d` komutunu kullanarak tüm hizmetleri yeniden oluşturacağız.

Docker Compose kullanıcıları:

Ardından `docker compose stop` komutunu kullanarak Server CE/Server Pro ve MongoDB örneklerini durduracak, [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) dosyasını `image: mongo:6.0` kullanacak şekilde güncelleyecek ve güncellemenin sorunsuz gerçekleştiğini doğrulamak için `docker compose up mongo` komutunu kullanarak `mongo` hizmetini yeniden başlatacağız.

Son olarak Server CE/Server Pro imaj sürümünü hedef sürümümüze güncelleyecek ve `docker compose up` komutunu kullanarak tüm hizmetleri yeniden oluşturacağız.

<strong>Örnek: MongoDB'yi `6.0`'dan `7.0`'a yükseltme (toolkit kullanıcıları)</strong>

Yukarıdaki `mongod --version` komutlarını kullanarak MongoDB `6.0` çalıştırdığınızdan emin olarak başlayın.

[Yükseltme talimatlarına](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set) göre tek gereksinim `featureCompatibilityVersion` değerinin `6.0` olarak ayarlanmasıdır. Bunu bir MongoDB kabuğu açıp `db.adminCommand({ setFeatureCompatibilityVersion: "6.0" })` komutunu çalıştırarak yaparız.

Overleaf Toolkit kullanıcıları:

```bash theme={null}
bin/mongo
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# bye
```

Ardından `bin/stop` komutunu kullanarak Server CE/Server Pro ve MongoDB örneklerini durduracak, `config/overleaf.rc` içinde `MONGO_VERSION=7.0` ayarlayacak ve güncellemenin sorunsuz gerçekleştiğini doğrulamak için `bin/up mongo` kullanarak `mongo` hizmetini yeniden başlatacağız.

Son olarak Server CE/Server Pro imaj sürümünü hedef sürümümüze güncelleyecek ve `bin/up -d` komutunu kullanarak tüm hizmetleri yeniden oluşturacağız.

<strong>Örnek: MongoDB'yi `7.0`'dan `8.0`'a yükseltme (toolkit kullanıcıları)</strong>

Yukarıdaki `mongod --version` komutlarını kullanarak MongoDB `7.0` çalıştırdığınızdan emin olarak başlayın.

[Yükseltme talimatlarına](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set) göre tek gereksinim `featureCompatibilityVersion` değerinin `7.0` olarak ayarlanmasıdır. Bunu bir MongoDB kabuğu açıp `db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })` komutunu çalıştırarak yaparız. Bunun artık ek bir `confirm: true` parametresi gerektirdiğini unutmayın.

```bash theme={null}
bin/mongo
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "7.0", confirm: true } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# bye
```

Ardından `bin/stop` komutunu kullanarak Server CE/Server Pro ve MongoDB örneklerini durduracak, `config/overleaf.rc` içinde `MONGO_VERSION=8.0` ayarlayacak ve güncellemenin sorunsuz gerçekleştiğini doğrulamak için `bin/up mongo` kullanarak `mongo` hizmetini yeniden başlatacağız.

Son olarak Server CE/Server Pro imaj sürümünü hedef sürümümüze güncelleyecek ve `bin/up -d` komutunu kullanarak tüm hizmetleri yeniden oluşturacağız.

#### Docker compose kullanıcıları için eşdeğer komutlar

Docker compose kullanıcıları için eşdeğer komutlar şunlardır:

* mongo sürümünü görüntülemek için `docker compose exec mongo mongod --version`
* yönetici komutları için bir mongo kabuğu başlatmak üzere `docker compose exec mongo mongosh`
* sunucuyu durdurmak için `docker compose stop` komutu
* mongo sürümünü yükseltmek için [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) dosyasını `image: mongo:6.0` kullanacak şekilde düzenleyin
* mongo hizmetini yeniden başlatmak ve güncellemenin sorunsuz gerçekleştiğini doğrulamak için `docker compose up mongo`
* imaj sürümünü yükseltmek için [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) dosyasını `image: sharelatex:VERSION` kullanacak şekilde düzenleyin
* tüm hizmetleri yeniden oluşturmak için `docker compose up`.

### Özel bir rol oluşturma

`5.5.1` sürümünde, MongoDB'nin özellik uyumluluk sürümünü doğrulamak için bir başlangıç kontrolü ekledik. MongoDB veritabanınız kimlik doğrulama (ör. temel kimlik doğrulama) kullanıyorsa, `sharelatex` konteyneri "*not authorized on admin to execute command*" izin hatası göstererek başlamayabilir.

Bunu çözmek için ya aşağıdaki talimatları kullanarak MongoDB'de yeni bir rol oluşturup bunu veritabanına erişmek için kullanılan kullanıcı hesabına atayabilir ya da kontrolün kurulumun başlamasını engellemeden başarısız olmasına izin vermek için `ALLOW_MONGO_ADMIN_CHECK_FAILURES=true` ayarlayabilirsiniz.

<Check>
  Bu yeni rol **yalnızca** küme genelindeki MongoDB sunucu parametrelerini okuma izni verir ve izleme amacıyla yeniden kullanılabilir,
</Check>

```bash wrap theme={null}
# Toolkit users
$ bin/docker-compose exec -it mongo mongosh -u {{YOUR-ADMIN-USERNAME}} -p

# Switch to the "admin" database using
overleaf [direct: primary] sharelatex> use admin
switched to db admin
overleaf [direct: primary] admin> 

# Create a new role with permission to use "getParamter". Copy and paste the function below into the shell and press the return key

db.createRole(
  {
    role: "clusterParameterReader",
    privileges: [
      {
        resource: { cluster: true },
        actions: ["getParameter"]    
      }
    ],
    roles: [] 
  }
);

# Switch back to the "sharelatex" database 
use sharelatex
switched to db sharelatex
overleaf [direct: primary] sharelatex> 

# Assign the new "clusterParameterReader" role to your database user by copy and pasting the function below into the shell and press the return key 
db.grantRolesToUser(
  "{{YOUR-DATABASE-USER}}",
  [
    { role: "clusterParameterReader", db: "admin" }
  ]
);

# Type exit then return to exit the MongoDB shell
# Run bin/up -d to start the deployment stack
$ bin/up -d
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.