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で動作する
{ "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に戻そう!と思ったらすぐ戻せる