MongoDBの環境構築およびデータ管理の実践ガイド

実行ファイルの役割分担

MongoDBを運用する際、各バイナリファイルの役割を理解することは重要です。主な実行ファイルは以下の通りです。

  • mongod.exe: データベースサーバー本体(デーモン)です。データの保存やクエリの処理を担当します。
  • mongo.exe: 対話型JavaScriptシェルです。サーバーへの接続や操作を行うクライアントとして機能します。
  • mongodump.exe / mongorestore.exe: データの論理バックアップ作成と復元を行うためのユーティリティです。
  • mongoexport.exe / mongoimport.exe: JSONやCSV形式でのデータエクスポートおよびインポートを行うツールです。

バッチファイルによる自動化設定

毎回コマンドを入力する手間を省くため、サーバー起動とクライアント接続をバッチファイル(.bat)で自動化します。また、Windowsサービスとして登録することで、バックグラウンドでの常駐運用を可能にします。

1. サーバーの手動起動用バッチ

データベースをフォアグラウンドで実行するためのスクリプトを作成します。パスは環境に合わせて調整してください。

@echo off
set MONGO_HOME=C:\Program Files\MongoDB\Server\3.6\bin
set DATA_DIR=D:\MongoDb\data
echo Starting MongoDB Server...
"%MONGO_HOME%\mongod.exe" --dbpath "%DATA_DIR%"
pause

2. Windowsサービスへの登録と削除

システム起動とともにMongoDBを自動起動させるため、Windowsサービスとして登録します。これにはscコマンドを使用する方法が推奨されます。

サービス登録スクリプト (install_service.bat)

@echo off
set BIN_PATH=C:\Program Files\MongoDB\Server\3.6\bin
set DB_PATH=D:\MongoDb\data
set LOG_PATH=D:\MongoDb\log\MongoDB.log

echo Installing MongoDB Service...
sc create MongoDB binPath= "\"%BIN_PATH%\mongod.exe\" --service --dbpath=\"%DB_PATH%\" --logpath=\"%LOG_PATH%\"" DisplayName= "MongoDB" start= auto

if %ERRORLEVEL% EQU 0 (
    echo Service installed successfully.
    echo Starting service...
    net start MongoDB
) else (
    echo Installation failed.
)
pause

サービス削除スクリプト (uninstall_service.bat)

@echo off
echo Stopping MongoDB service...
net stop MongoDB

echo Removing MongoDB service...
sc delete MongoDB

echo Operation completed.
pause

3. クライアント接続用バッチ

シェルをすぐに起動するための簡易スクリプトです。

@echo off
"C:\Program Files\MongoDB\Server\3.6\bin\mongo.exe"

データのバックアップとリストア戦略

データ保護のため、MongoDBでは主に2つのバックアップ手法が存在します。

コールドバックアップ(ファイルコピー)

この方法は最も単純ですが、MongoDBサーバーを停止させる必要があります。サーバー停止状態でデータディレクトリ(例: --dbpathで指定したフォルダ)をそのままコピーします。復元する際は、サーバーの起動オプションでコピー先のディレクトリを指定します。コピー中にファイルが変更されないよう、必ずサービスを停止してから行ってください。

ホットバックアップ(mongodump / mongorestore)

サーバーを稼働させたまま実行可能な論理バックアップです。mongodumpはBSON形式でデータをダンプし、mongorestoreで復元します。

ダンプ作成の基本構文
mongodump -h  -d  -o 
  • -h: 接続先ホストとポート(例: 127.0.0.1:27017)
  • -d: バックアップ対象のデータベース名
  • -o: バックアップファイルの出力先ディレクトリ
復元の基本構文
mongorestore -h  -d  --directoryperdb  --drop
  • --directoryperdb: ダンプしたディレクトリのパスを指定します。
  • --drop: 復元前に既存のコレクションを削除します。このオプションを使用すると、現在のデータはすべて上書きされるため注意が必要です。

タグ: MongoDB Windows database BatchScript Backup

5月24日 16:45 投稿