Ana içeriğe atla
Çok ÖnemliÇalışma gerçekleştirilmeden önce MongoDB yedeği alınmalıdır:
mongodump --host <IP_ADDRESS> --port=25080 --username=<USERNAME> --password=<PASSWORD> --authenticationDatabase=admin --gzip --archive=/<DIRECTORY>/apinizer-backup-v<CURRENT_VERSION>--<DATE>--1.archive
Bu örnek Ubuntu 22.04 üzerinde gerçekleştirilmiştir.

MongoDB 4.4’ten 5.0’a Yükseltme

1) Secondary Node’ları MongoDB 4.4’ten 5.0’a Güncelleme

İlk olarak, tüm MongoDB secondary node’larının her biri teker teker 5.0 sürümüne güncellenir.
1

MongoDB servisini durdurun

sudo apt-mark unhold mongo*
sudo systemctl stop mongod
2

MongoDB 5.0 repository'sini ekleyin

# MongoDB 5.0 anahtarı eklenir
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

# MongoDB 5.0 Repository'si eklenir
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

sudo apt update
3

MongoDB 5.0'ı yükleyin

Güncellemeyi yüklerken soracağı config dosyasını güncelleme sorusuna N ile cevap vererek mevcut konfigürasyon dosyanızı korumanız gereklidir.
sudo apt install -y mongodb-org=5.0.6 mongodb-org-server=5.0.6 mongodb-org-shell=5.0.6 mongodb-org-mongos=5.0.6 mongodb-org-tools=5.0.6
Çok ÖnemliYükleme esnasında sistem config dosyasının yeniden yazıp yazmayacağını sorar, burada eğer yanlışlıkla konfigürasyon dosyası ezilirse eski ayara döndürülmesi gerekir.
# sudo vi /etc/mongod.conf
# Eski dosya varsayılan olarak aşağıdaki gibidir
storage:
  dbPath: /var/lib/mongodb
  wiredTiger:
    engineConfig:
      cacheSizeGB: 2

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

net:
  port: 25080
  bindIp: 0.0.0.0

replication:
  replSetName: apinizer-replicaset

security:
  authorization: enabled
  keyFile: /etc/mongodb/keys/mongo-key

setParameter:
  transactionLifetimeLimitSeconds: 300

processManagement:
  timeZoneInfo: /usr/share/zoneinfo
1

MongoDB servisini başlatın

sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
2

Replica set durumunu kontrol edin

Herhangi bir node’a bağlanarak replica set’in durumu kontrol edilir:
mongo mongodb://<NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p

# Replica-Set'in Durumu Kontrol Edilir
rs.status()

2) Primary Rolündeki Bir Node’u Secondary Rolüne Çekme

Primary node’a bağlanılıp primary node’un görevini secondary’e düşürerek yeni bir primary node seçilmesi sağlanır.
1

Primary Node'a bağlanın

mongo mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p
2

Primary Node'u Secondary Node'a düşürün

# Primary Node'u Secondary Node'a düşürülür
rs.stepDown()
3

Yeni Primary Node'u kontrol edin

Biraz bekleyerek Secondary Node’lardan birisinin Primary Node olduğu kontrol edilir:
rs.status()

3) Primary Rolünü Bırakan Node’u MongoDB 4.4’ten 5.0’a Güncelleme

1

MongoDB servisini durdurun

sudo apt-mark unhold mongo*
sudo systemctl stop mongod
2

MongoDB 5.0 repository'sini ekleyin

# MongoDB 5.0 anahtarını ekleyin ve repository'i güncellenir
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

sudo apt update
3

MongoDB 5.0'ı yükleyin

Güncellemeyi yüklerken soracağı config dosyasını güncelleme sorusuna N ile cevap vererek mevcut konfigürasyon dosyanızı korumanız gereklidir.
sudo apt install -y mongodb-org=5.0.6 mongodb-org-server=5.0.6 mongodb-org-shell=5.0.6 mongodb-org-mongos=5.0.6 mongodb-org-tools=5.0.6
4

MongoDB servisini başlatın

sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
5

Replica set durumunu kontrol edin

Herhangi bir node’a bağlanarak replica set’in durumu kontrol edilir:
mongosh mongodb://<NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p

# Replica-Set'in durumu kontrol edilir
rs.status()

4) MongoDB 5.0 Özellik Uyumu Kontrolü

Bütün Node’lar MongoDB 5.0’a geçtikten sonra, MongoDB 6.0’a geçiş yapmadan önce özellik uyumluluğu ayarı 5.0’a ayarlanır (Primary Node’da).
1

Primary Node'a bağlanın

mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p

use admin
2

Özellik uyumluluğunu kontrol edin

Aşağıdaki komutun çıktısı olarak özellik uyumu eğer 4 gözüküyorsa 5’e güncellenmesi gerekir:
db.runCommand({ getParameter: 1, featureCompatibilityVersion: 1 })
3

Özellik uyumluluğunu güncelleyin

Eğer değer 5.0 değilse, bunu aşağıdaki komutla değiştirebilirsiniz:
db.adminCommand({ setFeatureCompatibilityVersion: "5.0" })

MongoDB 5.0’dan 6.0’a Yükseltme

5) Secondary Node’ları MongoDB 5.0’dan 6.0’a Güncelleme

Tüm MongoDB replicalarının 5.0 sürümüne geçtiğinden emin olduktan sonra, 6.0 sürümüne geçiş yapabilirsiniz. İlk olarak, tüm secondary node’ları sırayla güncelleyerek başlayın.
1

MongoDB servisini durdurun

sudo apt-mark unhold mongo*
sudo systemctl stop mongod
2

MongoDB 6.0 repository'sini ekleyin

# MongoDB 6.0 anahtarını eklenir ve repository güncellenir
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

sudo apt update
3

MongoDB 6.0'ı yükleyin

# Güncelleme yüklenilir
sudo apt install -y mongodb-org=6.0.0 mongodb-org-server=6.0.0 mongodb-org-shell=6.0.0 mongodb-org-mongos=6.0.0 mongodb-org-tools=6.0.0
4

MongoDB servisini başlatın

sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
5

Replica set durumunu kontrol edin

Herhangi bir node’a bağlanarak replica set’in durumunu kontrol edin:
mongosh mongodb://<NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p

# Replica-Set'in durumu kontrol edilir
rs.status()

6) Primary Rolündeki Bir Node’u Secondary Rolüne Çekme

1

Primary Node'a bağlanın

mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p
2

Primary Node'u Secondary Node'a düşürün

# Primary Node'u Secondary Node'a düşürülür
rs.stepDown()
3

Yeni Primary Node'u kontrol edin

Biraz bekleyerek yükseltme yapılan Secondary Node’lardan birisinin Primary olduğu kontrol edilir:
rs.status()

7) Primary Rolünü Bırakan Node’u MongoDB 5.0’dan 6.0’a Güncelleme

1

MongoDB servisini durdurun

sudo apt-mark unhold mongo*
sudo systemctl stop mongod
2

MongoDB 6.0 repository'sini ekleyin

# MongoDB 6.0 anahtarını eklenilir ve repository güncellenir
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

sudo apt update
3

MongoDB 6.0'ı yükleyin

# Güncelleme yüklenilir
sudo apt install -y mongodb-org=6.0.0 mongodb-org-server=6.0.0 mongodb-org-shell=6.0.0 mongodb-org-mongos=6.0.0 mongodb-org-tools=6.0.0
4

MongoDB servisini başlatın

sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
5

Replica set durumunu kontrol edin

Herhangi bir node’a bağlanarak replica set’in durumunu kontrol edin:
mongosh mongodb://<NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p

# Replica-Set'in durumu kontrol edilir
rs.status()

8) MongoDB 6.0 Özellik Uyumu Kontrolü

Bütün Node’lar MongoDB 6.0’a geçtikten sonra, özellik uyumluluğu ayarı 6.0’a ayarlanır (Primary Node’da).
1

Primary Node'a bağlanın

mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p

use admin
2

Özellik uyumluluğunu kontrol edin

Aşağıdaki komutun çıktısı olarak özellik uyumu eğer 5 gözüküyorsa 6’ya güncellenmesi gerekir:
db.runCommand({ getParameter: 1, featureCompatibilityVersion: 1 })
3

Özellik uyumluluğunu güncelleyin

Eğer değer 6.0 değilse, bunu aşağıdaki komutla değiştirebilirsiniz:
db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )

MongoDB 6.0’dan 7.0’a Yükseltme

9) Secondary Node’ları MongoDB 6.0’dan 7.0’a Güncelleme

Tüm MongoDB replicalarının 6.0 sürümüne geçtiğinden emin olduktan sonra, 7.0 sürümüne geçiş yapabilirsiniz. İlk olarak, tüm secondary node’ları sırayla güncelleyerek başlayın.
1

MongoDB servisini durdurun

sudo apt-mark unhold mongo*
sudo systemctl stop mongod
2

MongoDB 7.0 repository'sini ekleyin

# MongoDB 7.0 anahtarını eklenir ve repository güncellenir
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

sudo apt update
3

MongoDB 7.0'ı yükleyin

# Güncelleme yüklenilir
sudo apt install -y mongodb-org=7.0.0 mongodb-org-server=7.0.0 mongodb-org-shell=7.0.0 mongodb-org-mongos=7.0.0 mongodb-org-tools=7.0.0
4

MongoDB servisini başlatın

sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
5

Replica set durumunu kontrol edin

Herhangi bir node’a bağlanarak replica set’in durumunu kontrol edin:
mongosh mongodb://<NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p

# Replica-Set'in durumu kontrol edilir
rs.status()

10) Primary Rolündeki Bir Node’u Secondary Rolüne Çekme

1

Primary Node'a bağlanın

mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p
2

Primary Node'u Secondary Node'a düşürün

# Primary Node'u Secondary Node'a düşürülür
rs.stepDown()
3

Yeni Primary Node'u kontrol edin

Biraz bekleyerek yükseltme yapılan Secondary Node’lardan birisinin Primary olduğu kontrol edilir:
rs.status()

11) Primary Rolünü Bırakan Node’u MongoDB 6.0’dan 7.0’a Güncelleme

1

MongoDB servisini durdurun

sudo apt-mark unhold mongo*
sudo systemctl stop mongod
2

MongoDB 7.0 repository'sini ekleyin

# MongoDB 7.0 anahtarını eklenir ve repository güncellenir
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

sudo apt update
3

MongoDB 7.0'ı yükleyin

# Güncelleme yüklenilir
sudo apt install -y mongodb-org=7.0.0 mongodb-org-server=7.0.0 mongodb-org-shell=7.0.0 mongodb-org-mongos=7.0.0 mongodb-org-tools=7.0.0
4

MongoDB servisini başlatın

sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
5

Replica set durumunu kontrol edin

Herhangi bir node’a bağlanarak replica set’in durumunu kontrol edin:
mongosh mongodb://<NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p

# Replica-Set'in durumu kontrol edilir
rs.status()

12) MongoDB 7.0 Özellik Uyumu Kontrolü

Bütün Node’lar MongoDB 7.0’a geçtikten sonra, özellik uyumluluğu ayarı 7.0’a ayarlanır (Primary Node’da).
1

Primary Node'a bağlanın

mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p

use admin
2

Özellik uyumluluğunu kontrol edin

Aşağıdaki komutun çıktısı olarak özellik uyumu eğer 6 gözüküyorsa 7’ye güncellenmesi gerekir:
db.runCommand({ getParameter: 1, featureCompatibilityVersion: 1 })
3

Özellik uyumluluğunu güncelleyin

Eğer değer 7.0 değilse, bunu aşağıdaki komutla değiştirebilirsiniz:
db.adminCommand( { setFeatureCompatibilityVersion: "7.0", confirm: true } )

MongoDB 7.0’dan 8.0’a Yükseltme

13) Secondary Node’ları MongoDB 7.0’dan 8.0’a Güncelleme

Tüm MongoDB replicalarının 7.0 sürümüne geçtiğinden emin olduktan sonra, 8.0 sürümüne geçiş yapabilirsiniz. İlk olarak, tüm secondary node’ları sırayla güncelleyerek başlayın.
1

MongoDB servisini durdurun

sudo apt-mark unhold mongo*
sudo systemctl stop mongod
2

MongoDB 8.0 repository'sini ekleyin

# MongoDB 8.0 anahtarını eklenir ve repository güncellenir
wget -qO - https://www.mongodb.org/static/pgp/server-8.0.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

sudo apt update
3

MongoDB 8.0'ı yükleyin

# Güncelleme yüklenilir
sudo apt install -y mongodb-org=8.0.0 mongodb-org-server=8.0.0 mongodb-org-shell=8.0.0 mongodb-org-mongos=8.0.0 mongodb-org-tools=8.0.0
4

MongoDB servisini başlatın

sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
5

Replica set durumunu kontrol edin

Herhangi bir node’a bağlanarak replica set’in durumunu kontrol edin:
mongosh mongodb://<NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p

# Replica-Set'in durumu kontrol edilir
rs.status()

14) Primary Rolündeki Bir Node’u Secondary Rolüne Çekme

1

Primary Node'a bağlanın

mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p
2

Primary Node'u Secondary Node'a düşürün

# Primary Node'u Secondary Node'a düşürülür
rs.stepDown()
3

Yeni Primary Node'u kontrol edin

Biraz bekleyerek yükseltme yapılan Secondary Node’lardan birisinin Primary olduğu kontrol edilir:
rs.status()

15) Primary Rolünü Bırakan Node’u MongoDB 7.0’dan 8.0’a Güncelleme

1

MongoDB servisini durdurun

sudo apt-mark unhold mongo*
sudo systemctl stop mongod
2

MongoDB 8.0 repository'sini ekleyin

# MongoDB 8.0 anahtarını eklenir ve repository güncellenir
wget -qO - https://www.mongodb.org/static/pgp/server-8.0.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

sudo apt update
3

MongoDB 8.0'ı yükleyin

# Güncelleme yüklenilir
sudo apt install -y mongodb-org=8.0.0 mongodb-org-server=8.0.0 mongodb-org-shell=8.0.0 mongodb-org-mongos=8.0.0 mongodb-org-tools=8.0.0
4

MongoDB servisini başlatın

sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
5

Replica set durumunu kontrol edin

Herhangi bir node’a bağlanarak replica set’in durumunu kontrol edin:
mongosh mongodb://<NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p

# Replica-Set'in durumu kontrol edilir
rs.status()

16) MongoDB 8.0 Özellik Uyumu Kontrolü

Bütün Node’lar MongoDB 8.0’a geçtikten sonra, özellik uyumluluğu ayarı 8.0’a ayarlanır (Primary Node’da).
1

Primary Node'a bağlanın

mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p

use admin
2

Özellik uyumluluğunu kontrol edin

Aşağıdaki komutun çıktısı olarak özellik uyumu eğer 7 gözüküyorsa 8’e güncellenmesi gerekir:
db.runCommand({ getParameter: 1, featureCompatibilityVersion: 1 })
3

Özellik uyumluluğunu güncelleyin

Eğer değer 8.0 değilse, bunu aşağıdaki komutla değiştirebilirsiniz:
db.adminCommand( { setFeatureCompatibilityVersion: "8.0", confirm: true } )