「MongoDB」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎使用方法: 英語版より転載)
20行目: 20行目:
   
 
{{Note|During the first startup of the mongodb service, it will [https://docs.mongodb.com/manual/faq/storage/#preallocated-data-files pre-allocate space], by creating large files (for its journal and other data). This step may take a while, during which the MongoDB shell is unavailable.}}
 
{{Note|During the first startup of the mongodb service, it will [https://docs.mongodb.com/manual/faq/storage/#preallocated-data-files pre-allocate space], by creating large files (for its journal and other data). This step may take a while, during which the MongoDB shell is unavailable.}}
 
   
 
データベースシェルにアクセスするには、ターミナルに以下を入力:
 
データベースシェルにアクセスするには、ターミナルに以下を入力:
   
 
$ mongo
 
$ mongo
 
   
 
Or, if authentication is configured:
 
Or, if authentication is configured:

2021年3月19日 (金) 22:18時点における版

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]。ファイルの作成には時間がかかり、その間、データベースシェルを使うことはできません。

使用方法

Start/Enable the mongodb.service daemon.

ノート: During the first startup of the mongodb service, it will pre-allocate space, by creating large files (for its journal and other data). This step may take a while, during which the MongoDB shell is unavailable.

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

$ mongo

Or, if authentication is configured:

$ mongo -u userName

トラブルシューティング

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