カテゴリー
ソフトウェア

MongoDB サーバーを CentOS7 にインストールする

はじめに

MongoDB は NoSQL タイプ(ドキュメントベース)のデータベースシステムです。

SQL タイプ(テーブルベース)のデータベースとの大きな違いは、格納する項目を事前に定義する必要がないため柔軟な拡張ができる点と、複雑な階層をもったデータでもインデックスを作成できるためデータ構造に悩む事が少なくなる点でしょうか。もっとも、無計画に設計するとレスポンスが遅くなったり、消費するリソースが増えたりするでしょう。

今回、MongoDB3.0 を yum コマンドを使って CentOS7 にインストールする手順を紹介します。

インストール手順

MongoDB リポジトリインストール

MongoDB は CentOS7 標準リポジトリに含まれていません。このため、MongoDB の開発元が公開しているリポジトリをインストールしておきます。

$ sudo curl http://repo.mongodb.org/yum/redhat/mongodb-org.repo \
>           -o /etc/yum.repos.d/mongodb.repo

MongoDB リポジトリが有効になっているか、下記コマンドを実行して確認します。

$ yum list --enablerepo=mongodb-org | grep mongo

EPEL リポジトリがインストール済みであれば、別の古いバージョンが mongodb-server として一緒に並ぶかもしれません。

mongodb-org パッケージと mongodb-org-server パッケージを確認できたら、下記コマンドでインストールします。

$ sudo yum install --enablerepo=mongodb-org mongodb-org mongodb-org-server

MongDB サーバー起動

MongoDB サーバーのインストールが完了したら、MongoDB サーバーを起動しましょう。

$ sudo systemctl start mongod

(CentOS6, AmazonLinux などでは下記コマンド)
$ sudo service mongod start

運用Tips

サービス開始設定

OS 起動時に MongoDB も自動的に起動するようにします。

$ sudo systemctl enable mongod

CentOS7 では従来の chkconfig コマンドによるサービス登録ではなく、systemctl コマンドにより登録します。が、今回インストールした MongoDB はネイティブのサービスではないため、従来の chkconfig に自動的に切り替えてサービス登録されるようです。
 (「mongod.service is not a native service, redirecting to /sbin/chkconfig. Executing /sbin/chkconfig mongod on」のメッセージが表示されます。)

ダンプ

MongoDB からデータをバイナリファイルにエクスポートします。データベース(SQLサーバーでいうところのデータベースに該当)およびコレクション(SQLサーバーでいうところのテーブルに該当)を指定して一部のデータのみを出力することもできます。

ダンプ結果はディレクトリ階層として表現されます。下記の例では 20150925-102030.dump はディレクトリで、この中にディレクトリ mydb があり、さらにその中に ディレクトリ mycollection が作成されます。

(すべてのコレクションをダンプする場合)
$ mongodump --out 20150925-102030.dump

(一部のコレクションのみダンプする場合)
$ mongodump --db mydb --collection mycollection --out 20150925-102030.dump

$ tar fcz 20150925-102030.dump.tar.gz 20150925-102030.dump
$ rm -rf 20150925-102030.dump

リストア

ダンプで取得したバイナリファイルからデータを MongoDB にインポートしてデータを復元します。一部のデータベースまたはコレクションのみ復元することもできます。

なお、–drop オプションをつけることで、リストア対象のコレクションは既存データを削除してからリストアするようになります。逆に、既存のデータを残したままリストアデータを追加する場合は –drop オプションをつけないでください。

また、リストアデータに含まれないコレクションのデータは –drop オプションを付けても削除されません。

$ tar fxz 20150925-102030.dump.tar.gz

(すべてのコレクションをリストアする場合 既存データは削除)
$ mongorestore --drop 20150925-102030.dump

(一部のコレクションをリストアする場合 既存データに追加)
$ mongorestore --db mydb --collection mycollection 20150925-102030.dump

$ rm -rf 20150925-102030.dump

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください