Mongodb Upgrade
Server was running mongo3.6
Upgrade was triggered because Ubuntu 22.04 was installed on the server and mongodb stopped working
Release 4.4 is supported up to ubuntu 20.04, but not 22.04
Release 4.4 is also the last release supposed to be supported by Raspberry Pi
Mongo is only supported under docker on or after Ubuntu 22.04
Unbuntu 22.04 only supports MongoDB 6.0, 7.0 and 8.0 presumably 24.04 is similar.
Documentation explicitly states that Arm64 Raspberry Pi isn't supported after 5.0
Also j4105 processor in server isn't supported after mongo4.4, which is currently in extended support
As a stopgap mongodb runs version 3.6 under docker on j4105, this has now been upgraded.
Upgrade 3.6 to 4.4
Steps are (assumes mongo36 already running):
- Copy data from /var/lib/mongodb to /var/lib/mongodb/4.0
sudo cp -r /var/lib/mongodb/. /var/lib/mongodb/4.0/
- Install mongo4.0
sudo docker pull mongo:4.0
sudo docker run -it --rm -v /var/lib/mongodb/4.0:/data/db mongo:4.0 mongod --dbpath /data/db --upgrade
sudo docker run -d --name mongo40 -v /var/lib/mongodb/4.0:/data/db -p 27017:27017 mongo:4.0
sudo docker exec -it mongo40 mongo --eval 'db.version()'
DONE
- Copy contents of /var/lib/mongodb to /var/lib/mongodb/3.6
cd /var/lib/mongodb
sudo mkdir 3.6
sudo mv *.* ./3.6/
sudo mv ./3.6/4.0 /.
sudo mv journal ./3.6/
sudo mv WiredTiger ./3.6/
DONE
- Set FeatureCompatibility to 4.0
sudo docker exec -it mongo40 mongo
use admin
db.adminCommand({ setFeatureCompatibilityVersion: "4.0" })
db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })
exit
DONE
- Copy contents of ./4.0 to ./4.2
cd /var/lib/mongodb
sudo docker stop mongo40
sudo cp -r ./4.0 ./4.2
DONE
- Install mongo4.2
sudo docker pull mongo:4.2
sudo docker run -it --rm -v /var/lib/mongodb/4.2:/data/db mongo:4.2 mongod --dbpath /data/db --upgrade
sudo docker run -d --name mongo42 -v /var/lib/mongodb/4.2:/data/db -p 27017:27017 mongo:4.2
sudo docker exec -it mongo42 mongo --eval 'db.version()'
DONE
- Set FeatureCompatibility to 4.2
sudo docker exec -it mongo42 mongo
use admin
db.adminCommand({ setFeatureCompatibilityVersion: "4.2" })
db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })
exit
DONE
- Copy contents of ./4.2 to ./4.4
cd /var/lib/mongodb
sudo docker stop mongo42
sudo cp -r ./4.2 ./4.4
DONE
- Install mongo4.4
sudo docker pull mongo:4.4
sudo docker run -it --rm -v /var/lib/mongodb/4.4:/data/db mongo:4.4 mongod --dbpath /data/db --upgrade
sudo docker run -d --name mongo44 -v /var/lib/mongodb/4.4:/data/db -p 27017:27017 mongo:4.4
sudo docker exec -it mongo44 mongo --eval 'db.vers ion()'
DONE
- Set FeatureCompatibility to 4.4
sudo docker exec -it mongo44 mongo
use admin
db.adminCommand({ setFeatureCompatibilityVersion: "4.4" })
db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })
exit
DONE
Running MongoDB on a Pi
This is possible, but probably limited.
This guide shows how
to set it up on ubuntu 20.04 on a Pi.
The future
Since mongo isn't practical on a pi, I have started looking for something that might be a suitable substitute.
So far have considered a simple front end db (say SqlLite), but it would be neater to have something to do
the whole job.
- SqlLite front end to mongodb on desktop
- InfluxDB, but their approach looks too commercial
- QuestDB looks promising