💭

mongoDBバージョンアップ 調査内容のメモ

2023/10/21に公開

mongoDBバージョンアップ 調査内容のメモ

はじめに

monogDBのバージョンアップ(2系から最新(5.0.6))をしようとして出たエラーやその対応をまとめています。
各バージョンごとにやったことをまとめてます。
やったことのメモ書きなのでこれだけ見ても解決しません。

これからやること

  • db.adminCommand({authSchemaUpgrade: 1 });が使えるバージョンまで落とす。
  • そうしないとユーザー認証が読めない。
  • 2.x系はサポート終了してるので、以下を参考に頑張って2.6入れる。
  • 2.6が入れれば、3.0→3.2→3.4→3.6→4.0と上げてく。(結局ここに戻る、、、)
    • 2.6だけやり方が特殊なので、手間取る可能性がある。
    • 3.0以上はダウンロード手順は同じなので、公式サイト見ながらささっとできる想定。
    • 3.4→3.6のときもdb.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )が必要らしい。

これまでやったこと

v5.0.6へのアップデート

手順

Install MongoDB Community Edition on Ubuntu — MongoDB Manual

状況

  • sudo systemctl start mongodでは起動しない。
  • sudo mongod --dbpath=/var/lib/mongodbでは起動できた。

問題点

  • 既存の設定やデータを読み込めてない。

試したこと

  1. mongos --configdb <configDB string> --upgradeを実行
    1.結果: Error parsing command line: unrecognised option '--upgrade'
  2. db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )を実行
    1. 結果:{ "featureCompatibilityVersion" : { "version" : "5.0" }, "ok" : 1 }

v3.4.18へのアップデート

手順

package management - Install (and use) mongodb 3.4.17 on ubuntu 18.04 - Ask Ubuntu

状況

  • sudo systemctl start mongodでは起動しない。
  • sudo mongod --dbpath=/var/lib/mongodbでも起動しない。

問題点

  • 起動時に以下のエラーが発生している。
Old 2.4 style user index identified. The authentication schema needs to be updated by running authSchemaUpgrade on a 2.6 server.

試したこと

  1. mongos --configdb <configDB string> --upgradeを実行
    1.結果: Error parsing command line: unrecognised option '--upgrade'
  2. db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )を実行
    1. そもそもmongoが起動できてないので、実施できてない。

v3.0.15へのアップデート

手順

Install MongoDB on Ubuntu — MongoDB Manual

状況

  • sudo systemctl start mongodでは起動しない。
  • sudo mongod --dbpath=/var/lib/mongodbでも起動しない。

問題点

  • 起動時に以下のエラーが発生している。
AuthSchemaIncompatible: Old 2.4 style user index identified. The authentication schema needs to be updated by running authSchemaUpgrade on a 2.6 server

試したこと

  1. mongos --configdb <configDB string> --upgradeを実行
    1.結果: Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: errno:111 Connection refused
  2. db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )を実行
    1. そもそもmongoが起動できてないので、実施できてない。

参考

Discussion