FeatureCompatibilityVersion
MongoDBのserver version毎のデータフォーマットの互換性を保つ為に、DBのデータ側が持っている値 serverバージョン上げて起動→データ構造のバージョンも上がる→やっぱりserverバージョン戻したい→DBのデータ構造が新しくなっちゃってて戻せない
という事態を防いでくれる
でもコレのせいでmongodプロセスの起動が途中で止められてしまう
初見では何が起きているかわからず、わりと驚くshokai.icon
サーバーは起動しませんが、安全装置で停止しただけなので落ち着いてください
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
で得られる値が
"3.2"の場合
mongodb server 3.2と3.4のどちらでも動作するデータになっている
3.4で起動後、そのまま3.2でも問題なく起動できる
"3.4"の場合
server 3.4と3.6で動作する
"3.6"の場合
server 3.6と4.0で動作する
"4.0"の場合
4.0 serverにだけ対応
3.6 serverでは起動できない
"4.2"の場合
server 4.2と4.4で動作する
"4.4"の場合
server 4.4と5.0で動作する
"5.0"の場合
server 5.0と6.0で動作する
"6.0"の場合
server 6.0と7.0で動作する
"7.0"の場合
server 7.0で動作する
おそらく、将来リリースされる8.0でも動作するはずshokai.icon
{ "ok" : 0, "errmsg" : "no option found to get" }の場合
mongodb server 3.2にだけ対応
featureCompatibilityVersion自体がserver 3.4から導入された為、server 3.2で作ったデータには値そのものが入っていない
mongodbサーバーを更新して、だめだったら戻せるようにデータの互換性を保証している
feature compatibility version "3.4"のデータは
server 3.4と3.6の両方で、どちらでも運用できる事が保証されている
mongodb server 3.4で運用していて、3.6への更新を考えている時に
server 3.6にupgradeして、やっぱり3.4に戻そう!と思ったらすぐ戻せる