MongoDB
Installation
Aus den MongoDB-Repos, hier am Beispiel von Mongo 7.0:
Im Kernel „Transparent Huge Pages“ deaktivieren:
mkdir /etc/tuned/kernel_settings
cat > /etc/tuned/kernel_settings/tuned.conf << 'EOF'
[main]
include=virtual-guest
[vm]
transparent_hugepages=madvise
EOF
tuned-adm profile virtual-guest kernel_settings
Mongo-Shell
Installation:
dnf -y install mongodb-org-shell
Verwendung:
# connect to localhost:
mongo
# connect to mongodb0.example.com:28015
mongo "mongodb://mongodb0.example.com:28015"
Backup und Restore
Tipp
LFOps bietet eine MongoDB-Ansible-Rolle, die ein MongoDB-Backup-Script gleich mitliefert.
dnf -y install mongodb-org-tools
Backup Single Instance:
mongodump --out /backup/mongodb-dump
Backup eines Replica-Sets - hier müssen alle Member angegeben werden:
mongodump --host="myReplicaSetName/mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com" [additional options]
Bash-Script für MongoDB-Dump (Binary BSON Dumps) mit diversen Optionen:
HOST='127.0.0.1'
PORT='27017'
BACKUP_DIR='/backup/mongodb-dump'
LOGFILE='/tmp/mongodb-dump-log'
# detect paths
MONGO=$(which mongo)
MONGODUMP=$(which mongodump)
# make sure we can connect to server
$MONGO --host $HOST --port $PORT --eval 'db.getUsers()' &>/dev/null
if [ $? -ne 0 ]
then
echo "Cannot connect to '$HOST'" >&2
exit 1
fi
# remove old backups
rm -rf $BACKUP_DIR/
mkdir -p $BACKUP_DIR
$MONGODUMP --host $HOST --port $PORT --oplog --out "$BACKUP_DIR/temp" > $LOGFILE 2>&1
if [ $? -ne 0 ]; then
cat $LOGFILE >&2
fi
rm $LOGFILE
cd "$BACKUP_DIR" 1> /dev/null
tar -cvzf "mongodb-dump.tar.gz" -C "$BACKUP_DIR/temp/" . 1> /dev/null
rm -rf "$BACKUP_DIR/temp/" 1> /dev/null
Restore:
mongorestore /backup/mongodb-dump
mongorestore --host $HOST --port $PORT /backup/mongodb-dump
# to drop each collection from the database before restoring from backups:
mongorestore --drop /backup/mongodb-dump
Upgrading MongoDB Community Edition, Single Instance
Ist ein funktionierendes Backup vorhanden? Nur dann sollte ein Upgrade durchgeführt werden.
Installierte Version ermitteln:
mongod --version
Vorbereitungen treffen:
dnf -y install yum-utils
Upgrade von MongoDB 4.0 auf MongoDB 4.2
cat > /etc/yum.repos.d/mongodb-org.repo << 'EOF'
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
EOF
systemctl stop mongod
yum-config-manager --disable mongodb-org-4.0
dnf -y update mongodb-org-*
# MongoDB starts automatically
mongod --version
Upgrade von MongoDB 4.2 auf MongoDB 4.4+
Funktioniert ohne Anpassung nicht, da es Probleme mit der Storage-Engine WiredTiger gibt (Failed to start up WiredTiger under any compatibility version. This may be due to an unsupported upgrade or downgrade.
und Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp
). Um das Problem zu lösen, VORHER dieses Setting setzen (siehe auch https://docs.mongodb.com/v4.4/reference/command/setFeatureCompatibilityVersion/) - und erst danach das Upgrade durchführen.
# start mongo shell
mongo
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
db.adminCommand( { setFeatureCompatibilityVersion: "4.2" } )
exit
Erst jetzt:
cat > /etc/yum.repos.d/mongodb-org.repo << 'EOF'
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
EOF
systemctl stop mongod
yum-config-manager --disable mongodb-org-4.2
dnf -y update mongodb-org-*
# MongoDB starts automatically
mongod --version
Upgrade von MongoDB 4.4 auf MongoDB 5.0+
cat > /etc/yum.repos.d/mongodb-org.repo << 'EOF'
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
EOF
systemctl stop mongod
yum-config-manager --disable mongodb-org-4.4
dnf -y update mongodb-org-*
# MongoDB starts automatically
mongod --version
Siehe auch https://docs.mongodb.com/manual/tutorial/upgrade-revision/
Built on 2024-11-18