Amazon LinuxでのMongoDBアップグレード(3.0to3.4)


環境

バージョン

$ cat /etc/system-release
Amazon Linux AMI release 2016.09

手順

準備

バージョン確認

MongoDBのバージョンを確認する。

$ mongo --version

今回の場合、3.0であった。
これを最新のバージョンである3.4に上げたい場合、3.0→3.4と一気にアップグレードできないため、3.0→3.2、3.2→3.4と2段階に分けてアップグレードする必要がある。

以下参考。
3.4-upgrade-standalone

バックアップの取得

念のため、バックアップを取得する。

$ mongodump --out mongodump_20170406

MongoDBにアクセスするサービスの停止

念のため、該当のMongoDBにアクセスするサービスを停止する。

アップグレード(3.0to3.2)

mongodを停止する。

$ sudo service mongod stop

repoファイルを作成する。

$ sudo vi /etc/yum.repos.d/mongodb-org-3.2.repo

以下のように記述・保存する。

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1

baseurlはOSによって異なるため、Amazon Linux以外のOSの場合、以下を確認して対応するURLに書き換える必要がある。

https://repo.mongodb.org/

旧Repoファイルのenabledを0に変更する。

$ sudo vi /etc/yum.repos.d/mongodb-org-3.0.repo

[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=0

MongoDB3.2がアップデート可能なパッケージに含まれているかを確認する。

$ yum check-update

アップデートを実行する。

$ sudo yum update

アップデート完了後、mongodを起動する。

$ sudo service mongod start

バージョンを確認する。

$ mongo --version
MongoDB shell version: 3.2.12

MongoDBのアップグレード(3.2to3.4)

mongodを停止する。

$ sudo service mongod stop

repoファイルを作成する。

$ sudo vi /etc/yum.repos.d/mongodb-org-3.4.repo

以下のように記述・保存する。

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.4/x86_64/
gpgcheck=0
enabled=1   

旧Repoファイルのenabledを0に変更する。

$ sudo vi /etc/yum.repos.d/mongodb-org-3.2.repo

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=0

MongoDB3.4がアップデート可能なパッケージに含まれているかを確認する。

$ yum check-update

アップデートを実行する。

$ sudo yum update

アップデート完了後、mongodを起動する。

$ sudo service mongod start

バージョンを確認する。

$ mongo --version

MongoDB shell version v3.4.3
git version: f07437fb5a6cca07c10bafa78365456eb1d6d5e1
OpenSSL version: OpenSSL 1.0.0-fips 29 Mar 2010
allocator: tcmalloc
modules: none
build environment:
    distmod: amazon
    distarch: x86_64
    target_arch: x86_64