メインコンテンツへ移動

MongoDB 3.4 から 4.4 へのアップグレード手順

注意

アップグレード所要時間は MongoDB データベース内のコレクション数に依存します。
find /data/mingdao/script/volume/data/mongodb/ -name '*collection*' | wc -l
でコレクション数を確認できます。
例)コレクション数が 10,000 未満の場合は約 1 分、100,000 件の場合は約 10 分、300,000 件の場合は約 30 分かかります。

サービス停止​

マネージャのルートディレクトリで以下のコマンドを実行し、サービスを停止します。

bash ./service.sh stopall

データバックアップ​

既にバックアップされている場合、この手順はスキップできます。
バックアップ前にサーバーディスクの空き容量を確認してください。

du -sh /data/mingdao/script/volume/data/mongodb

バックアップ作成例(バックアップディレクトリは適宜調整してください):

mkdir -p /backup && tar -zcvf /backup/mongodb3.4_$(date +%Y%m%d%H%M%S).tar.gz /data/mingdao/script/volume/data/mongodb

アップグレード手順​

MongoDB のアップグレードは各バージョン毎に段階的に実施します。
3.4 から 4.4 へアップグレードする場合は、3.6 ・ 4.0 ・ 4.2 ・ 4.4 の順に計 4 回コマンドを実行してください。
アップグレード中にバージョン不一致のメッセージが表示された場合は、直前に成功したアップグレードコマンドを再度実行してください(例:3.4 → 3.6 のアップグレードが成功し、3.6 → 4.0 でエラーが出た場合は、3.4 → 3.6 を繰り返し実行してください。exit upgradeの出力が得られるまで再試行します)。複数回試してもエラーが解消しない場合は、/data/mingdao/script/volume/data/mongodb/upgrade xxxx.log から詳細原因を確認できます。

アップグレード用イメージを取得するには、次のコマンドを実行します(オフラインパッケージ参照):

docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-sc-upgrade:1.0.0

アップグレードコマンド実行:

  • 3.4 → 3.6

    docker run -i --rm -v /data/mingdao/script/volume/data/mongodb:/data/mongodb registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-sc-upgrade:1.0.0 <<< 'upgradeMongodb.sh 3.4 3.6'
  • 3.6 → 4.0

    docker run -i --rm -v /data/mingdao/script/volume/data/mongodb:/data/mongodb registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-sc-upgrade:1.0.0 <<< 'upgradeMongodb.sh 3.6 4.0'
  • 4.0 → 4.2

    docker run -i --rm -v /data/mingdao/script/volume/data/mongodb:/data/mongodb registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-sc-upgrade:1.0.0 <<< 'upgradeMongodb.sh 4.0 4.2'
  • 4.2 → 4.4

    docker run -i --rm -v /data/mingdao/script/volume/data/mongodb:/data/mongodb registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-sc-upgrade:1.0.0 <<< 'upgradeMongodb.sh 4.2 4.4'

newRunVersion: 4.4 の出力が表示されれば、アップグレード完了です。 👏 👏

主な出力内容の説明​

目標バージョンへのアップグレード成功​

oldRunVersion: 4.0
Upgrade 4.0 to 4.2...
{ "ok" : 1 }
newRunVersion: 4.2

目標バージョンのアップグレードスクリプトが正常に実行された場合​

oldRunVersion: 4.2
exit upgrade 4.0 to 4.2

バージョン不一致が発生し、前回成功したコマンドの再実行が必要な場合​

ERROR: child process failed, exited with error number 100
To see additional information in this output, start without the "--fork" option.
Failed