「MongoDB」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(Pkg/AUR テンプレートの更新)
(mongodb-bin への言及と mongodb パッケージの注意点を追加)
6行目: 6行目:
 
== インストール ==
 
== インストール ==
   
{{AUR|mongodb}} パッケージをイールしてください。また、{{AUR|mongodb-tools}} インストールすることで {{ic|mongoimport}}, {{ic|mongoexport}}, {{ic|mongodump}}, {{ic|mongorestore}} などのツール使うことができます。
+
{{Warning|事前に {{AUR|mongodb}} パッケージのコメントを確認することを推奨します。}}
  +
{{AUR|mongodb}} あるいは {{AUR|mongodb-bin}} パッケージをインストールしてください。また、{{AUR|mongodb-tools}} か {{AUR|mongodb-tools-bin}} をインストールすることで {{ic|mongoimport}}, {{ic|mongoexport}}, {{ic|mongodump}}, {{ic|mongorestore}} などのツールを使うことができます。
  +
  +
{{Note|{{AUR|mongodb}} パッケージを [[AUR ヘルパー]] や [[makepkg]] を使いインストールするには 260GB 以上の空き容量が、{{Pkg|devtools}} を使ったインストールには 20GB 程度の空き容量が必要です。}}
   
 
{{ic|mongodb.service}} デーモンを[[systemd#ユニットを使う|起動・有効化]]します。
 
{{ic|mongodb.service}} デーモンを[[systemd#ユニットを使う|起動・有効化]]します。

2020年12月9日 (水) 13:24時点における版

MongoDB (由来は humongous から) はオープンソースのドキュメント指向データベースです。MongoDB Inc. (旧 10gen) によって開発・サポートされています。MongoDB はデータベースシステムの NoSQL ファミリーの一員です。"古典的"なリレーショナルデータベースでそうあるように、データをテーブルに保存する代わりに、MongoDB は動的なスキーマ (MongoDB では BSON と呼称されるフォーマット) によって JSON ライクなドキュメントとして構造的データを保存して、特定のタイプのアプリケーションでデータを簡単かつ高速に扱えるようにします。

インストール

警告: 事前に mongodbAUR パッケージのコメントを確認することを推奨します。

mongodbAUR あるいは mongodb-binAUR パッケージをインストールしてください。また、mongodb-toolsAURmongodb-tools-binAUR をインストールすることで mongoimport, mongoexport, mongodump, mongorestore などのツールを使うことができます。

ノート: mongodbAUR パッケージを AUR ヘルパーmakepkg を使いインストールするには 260GB 以上の空き容量が、devtools を使ったインストールには 20GB 程度の空き容量が必要です。

mongodb.service デーモンを起動・有効化します。

mongodb サービスの最初の起動時に、巨大なファイルが作成され、(ジャーナルなどのデータのための) 予約領域が割り当てられます [1]。ファイルの作成には時間がかかり、その間、データベースシェルを使うことはできません。

使用方法

データベースシェルにアクセスするには、ターミナルに以下を入力:

$ mongo

トラブルシューティング

MongoDB が起動しない

データベースのパスが正しく設定されているか確認してください:

$ cat /usr/lib/systemd/system/mongodb.service

"ExecStart" 行に "--dbpath /var/lib/mongodb" を追加してください:

ExecStart=/usr/bin/numactl --interleave=all mongod --quiet --config /etc/mongodb.conf --dbpath /var/lib/mongodb

最低でも (ジャーナルファイル用の) 3GB の空き容量があることを確認してください。容量が足りない場合 MongoDB が起動できないことがあります (その場合ユーザーにメッセージは表示されません):

$ df -h /var/lib/mongodb/

ロックファイルが存在しないかどうか確認:

# ls -lisa /var/lib/mongodb

ロックファイルが存在する場合、mongodb.service を停止してください。データベースのパスを指定してデータベースの修復を実行します (Arch Linux では /var/lib/mongodb/ がデフォルトの --dbpath です):

# mongod --dbpath /var/lib/mongodb/ --repair

修復が完了すると、dbpath に修復されたデータファイルと空の mongod.lock ファイルが作られます。

警告: ファイルを削除して、破損したファイルを使ってデータベースを起動して、データベースからデータの復旧を試みることもできます。ただし、データベースの状態を予想することはできません。詳しくは 上流のドキュメント を見てください。

root で修復を実行後、ファイルの所有者は root ユーザーになりますが、Arch Linux は別のユーザーで MongoDB を実行します。chown を使ってファイルの所有者を適切なユーザーに戻す必要があります (詳しくは こちら を参照):

# chown -R mongodb: /var/{log,lib}/mongodb/

mongodb の ドキュメント から設定ファイルをコピーした場合、以下の2行を削除して mongodb.service を再起動してください:

/etc/mongodb.conf
processManagement:
   fork: true

transparent_hugepage のカーネル設定について MongoDB がエラーを吐く

MongoDB の起動後、transparent_hugepage に関する警告が表示される場合、以下のファイルを編集することでシステム設定を永続的に無効化することができます (FreeDesktop tmpfiles.d マニュアル を参照):

/etc/tmpfiles.d/local.conf
w /sys/kernel/mm/transparent_hugepage/enabled - - - - never
w /sys/kernel/mm/transparent_hugepage/defrag - - - - never

sysctl を使ったり以下のように echo コマンドを使うことで一時的に無効化することもできます:

# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag