首页 > 解决方案 > 将 Mongo 从 4.4 升级到 5.0 现在 DB 不会启动

问题描述

我的数据库在 AWS 中运行,我升级到 Mongo 5.0。现在我什至无法启动数据库,因为我收到以下错误:

mongod.service - MongoDB Database Server
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2021-10-25 00:16:42 UTC; 26min ago
     Docs: https://docs.mongodb.org/manual
  Process: 3888 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=62)
  Process: 3886 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 3883 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 3881 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)

根据文档 status=62 表示存在不兼容问题。

我想降级回 4.4,但没有明确的方法可以这样做。Mongo Docs 假设数据库正在运行并说运行db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )

我无法运行此命令,因为数据库甚至无法启动。

我删除了 5.0 二进制文件,但没有做任何事情。DB版本仍然显示“5.0.3”

您可以提供的任何帮助将不胜感激

这是一些额外的输出:

Unit mongod.service has begun starting up.
mongod[3591]: about to fork child process, waiting until server is ready for connections.
mongod[3591]: forked process: 3594
mongod[3591]: ERROR: child process failed, exited with 62
mongod[3591]: To see additional information in this output, start without the "--fork" option.
sudo[3579]: pam_unix(sudo:session): session closed for user root
systemd[1]: mongod.service: control process exited, code=exited status=62
systemd[1]: Failed to start MongoDB Database Server.
Subject: Unit mongod.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mongod.service has failed.
--
-- The result is failed.
systemd[1]: Unit mongod.service entered failed state.
systemd[1]: mongod.service failed.

运行以下命令:cat mongod.log | tail -10

{"t":{"$date":"2021-10-25T22:49:33.833+00:00"},"s":"I",  "c":"STORAGE",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1635202173:833865][3594:0x7f52128ce280], WT_SESSION.checkpoint: [WT_VERB_CHECKPOINT_PROGRESS] saving checkpoint snapshot min: 2, snapshot max: 2 snapshot count: 0, oldest timestamp: (0, 0) , meta checkpoint timestamp: (0, 0) base write gen: 441594"}}
{"t":{"$date":"2021-10-25T22:49:33.839+00:00"},"s":"I",  "c":"STORAGE",  "id":4795903, "ctx":"initandlisten","msg":"Reconfigure complete","attr":{"durationMillis":127}}
{"t":{"$date":"2021-10-25T22:49:33.839+00:00"},"s":"I",  "c":"STORAGE",  "id":4795902, "ctx":"initandlisten","msg":"Closing WiredTiger","attr":{"closeConfig":"leak_memory=true,"}}
{"t":{"$date":"2021-10-25T22:49:33.839+00:00"},"s":"I",  "c":"STORAGE",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":"[1635202173:839582][3594:0x7f52128ce280], close_ckpt: [WT_VERB_CHECKPOINT_PROGRESS] saving checkpoint snapshot min: 4, snapshot max: 4 snapshot count: 0, oldest timestamp: (0, 0) , meta checkpoint timestamp: (0, 0) base write gen: 441594"}}
{"t":{"$date":"2021-10-25T22:49:33.867+00:00"},"s":"I",  "c":"STORAGE",  "id":4795901, "ctx":"initandlisten","msg":"WiredTiger closed","attr":{"durationMillis":28}}
{"t":{"$date":"2021-10-25T22:49:33.867+00:00"},"s":"I",  "c":"STORAGE",  "id":22279,   "ctx":"initandlisten","msg":"shutdown: removing fs lock..."}
{"t":{"$date":"2021-10-25T22:49:33.867+00:00"},"s":"I",  "c":"-",        "id":4784931, "ctx":"initandlisten","msg":"Dropping the scope cache for shutdown"}
{"t":{"$date":"2021-10-25T22:49:33.867+00:00"},"s":"I",  "c":"FTDC",     "id":4784926, "ctx":"initandlisten","msg":"Shutting down full-time data capture"}
{"t":{"$date":"2021-10-25T22:49:33.867+00:00"},"s":"I",  "c":"CONTROL",  "id":20565,   "ctx":"initandlisten","msg":"Now exiting"}
{"t":{"$date":"2021-10-25T22:49:33.867+00:00"},"s":"I",  "c":"CONTROL",  "id":23138,   "ctx":"initandlisten","msg":"Shutting down","attr":{"exitCode":62}}

标签: mongodbamazon-ec2

解决方案


这为我解决了同样的问题。

删除版本 5.0

停止 mongod 服务

sudo systemctl stop mongod
sudo rm /tmp/mongodb-27017.sock

备份您的数据目录

cp -r /var/lib/mongodb /var/lib/mongodb_backup

删除 5.0 版及其数据

sudo apt purge mongodb-org
sudo apt autoremove
sudo rm /etc/mongod.conf

# Remove all mongo-org apt sources
sudo rm /etc/apt/sources.list.d/mongodb-org-*

安装 4.4 版

按照这里的说明进行操作mongodb v4.4 文档

运行版本 4.4 服务器

sudo systemctl start mongod
sudo systemctl status mongod

使用 mongodump 备份数据

mkdir $HOME/Desktop/mongo-data
cd $HOME/Desktop/mongo-data

mongodump

删除版本 4.4

停止 mongod 服务

sudo systemctl stop mongod
sudo rm /tmp/mongodb-27017.sock

删除数据目录

rm -r /var/lib/mongodb

删除版本 4.4 及其数据

sudo apt purge mongodb-org
sudo apt autoremove
sudo rm /etc/mongod.conf

# Remove all mongo-org apt sources
sudo rm /etc/apt/sources.list.d/mongodb-org-*

安装 5.0 版

按照这里的说明进行操作mongodb v5.0 文档

运行 5.0 版服务器

sudo systemctl start mongod
sudo systemctl status mongod

使用 mongorestore 恢复数据

cd $HOME/Desktop/mongo-data

mongodump

恭喜!现在您的旧数据在 v5.0 上运行


推荐阅读