Ç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.
MongoDB servisini durdurun
sudo apt-mark unhold mongo*
sudo systemctl stop mongod
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
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
MongoDB servisini başlatın
sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
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.
Primary Node'a bağlanın
mongo mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p
Primary Node'u Secondary Node'a düşürün
# Primary Node'u Secondary Node'a düşürülür
rs.stepDown()
Yeni Primary Node'u kontrol edin
Biraz bekleyerek Secondary Node’lardan birisinin Primary Node olduğu kontrol edilir:
3) Primary Rolünü Bırakan Node’u MongoDB 4.4’ten 5.0’a Güncelleme
MongoDB servisini durdurun
sudo apt-mark unhold mongo*
sudo systemctl stop mongod
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
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
MongoDB servisini başlatın
sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
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).
Primary Node'a bağlanın
mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p
use admin
Ö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 })
Ö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.
MongoDB servisini durdurun
sudo apt-mark unhold mongo*
sudo systemctl stop mongod
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
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
MongoDB servisini başlatın
sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
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
Primary Node'a bağlanın
mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p
Primary Node'u Secondary Node'a düşürün
# Primary Node'u Secondary Node'a düşürülür
rs.stepDown()
Yeni Primary Node'u kontrol edin
Biraz bekleyerek yükseltme yapılan Secondary Node’lardan birisinin Primary olduğu kontrol edilir:
7) Primary Rolünü Bırakan Node’u MongoDB 5.0’dan 6.0’a Güncelleme
MongoDB servisini durdurun
sudo apt-mark unhold mongo*
sudo systemctl stop mongod
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
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
MongoDB servisini başlatın
sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
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).
Primary Node'a bağlanın
mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p
use admin
Ö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 })
Ö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.
MongoDB servisini durdurun
sudo apt-mark unhold mongo*
sudo systemctl stop mongod
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
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
MongoDB servisini başlatın
sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
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
Primary Node'a bağlanın
mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p
Primary Node'u Secondary Node'a düşürün
# Primary Node'u Secondary Node'a düşürülür
rs.stepDown()
Yeni Primary Node'u kontrol edin
Biraz bekleyerek yükseltme yapılan Secondary Node’lardan birisinin Primary olduğu kontrol edilir:
11) Primary Rolünü Bırakan Node’u MongoDB 6.0’dan 7.0’a Güncelleme
MongoDB servisini durdurun
sudo apt-mark unhold mongo*
sudo systemctl stop mongod
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
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
MongoDB servisini başlatın
sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
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).
Primary Node'a bağlanın
mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p
use admin
Ö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 })
Ö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.
MongoDB servisini durdurun
sudo apt-mark unhold mongo*
sudo systemctl stop mongod
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
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
MongoDB servisini başlatın
sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
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
Primary Node'a bağlanın
mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p
Primary Node'u Secondary Node'a düşürün
# Primary Node'u Secondary Node'a düşürülür
rs.stepDown()
Yeni Primary Node'u kontrol edin
Biraz bekleyerek yükseltme yapılan Secondary Node’lardan birisinin Primary olduğu kontrol edilir:
15) Primary Rolünü Bırakan Node’u MongoDB 7.0’dan 8.0’a Güncelleme
MongoDB servisini durdurun
sudo apt-mark unhold mongo*
sudo systemctl stop mongod
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
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
MongoDB servisini başlatın
sudo apt-mark hold mongo*
sudo systemctl start mongod
sudo systemctl status mongod
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).
Primary Node'a bağlanın
mongosh mongodb://<PRIMARY_NODE_IP>:25080 --authenticationDatabase "admin" -u "apinizer" -p
use admin
Ö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 })
Ö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 } )