将 MongoDB 从 3.4 升级至 3.6

无论何时使用 pacman 进行升级,MongoDB 都无法升级。检查日志发现提示需要进行升级。

2018-01-07T10:53:02.579+0900 F CONTROL [initandlisten] ** 重要提示: 升级问题:在进行3.6版本升级之前,数据文件需要完全升级到3.4版本;请参考http://dochub.mongodb.org/core/3.6-upgrade-fcv了解更多详情。

似乎MongoDB有更新。我记得上次升级时也感到非常困难。

按照指示,查看如何将一个独立版升级到3.6。要求事先执行以下命令。

db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )

由于二进制已经升级完毕,因此需要从二进制的降级开始。在查看软件包降级时,首先要搜索 /var/cache/pacman/pkg。如果没有删除,就继续降级下一个软件包。

$ sudo pacman -U /var/cache/pacman/pkg/mongodb-tools-3.4.9-1-x86_64.pkg.tar.xz
$ sudo pacman -U /var/cache/pacman/pkg/wiredtiger-2.9.3-1-x86_64.pkg.tar.xz
$ sudo pacman -U /var/cache/pacman/pkg/boost-libs-1.65.1-2-x86_64.pkg.tar.xz

启动3.4版本后,使用mongo连接并执行上述命令。我参考了Arch Linux上的MongoDB文章。可能最好是使用systemctl正常启动,但是在命令行执行可以看到日志,感觉更好。但是,将所属权还原有点麻烦。

再次使用 pacman 进行升级。然后使用 systemctl 启动。

[sadayuki@betelgeuse pkg]$ systemctl status mongodb
● mongodb.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/usr/lib/systemd/system/mongodb.service; enabled; vendor pres
   Active: active (running) since Sun 2018-01-07 11:16:51 JST; 3s ago
 Main PID: 851 (mongod)
    Tasks: 23 (limit: 4915)
   CGroup: /system.slice/mongodb.service
           └─851 /usr/bin/mongod --quiet --config /etc/mongodb.conf

看起来炫目,但似乎还会再来一次。