mongo データを別のドライブに移動中です。移動したいデータはすべて /data/db に保存されており、NAS (ネットワーク接続ストレージ) に移動しています。
最初の一歩:
mongodump -d mydb -c mycollection -o nas/mongo-temp
これにより、次のように mongo-temp/ にファイル ツリーが作成されました。
dump
`-- mydb
`-- mycollection.bson
1 directory, 1 file
次に、mongod サービスを停止し、新しい /data/db ディレクトリを作成しました。
/etc/init.d/mongod stop
mkdir mongo-temp/data/db
...そして /etc/mongodb.conf の dbpath 行を変更しました
dbpath=.../mongo-temp/data/db
を使用してmongoサーバーを正常に再起動しました/etc/init.d/mongod start
。
接続しようとすると:
mongo
MongoDB shell version: 1.6.4
Thu May 3 09:53:23 *** warning: spider monkey build without utf8 support. consider rebuilding with utf8 support
connecting to: test
Thu May 3 09:53:24 Error: couldn't connect to server 127.0.0.1 (anon):1154
exception: connect failed
コマンドでmongodを起動しようとしましたmongod --dbpath .../mongo-temp/data/db
が、次のようなエラーが表示されます:
Thu May 3 09:57:26 exception in initAndListen std::exception: Unable to acquire lock for lockfilepath: /home/dlpstats/nas-mnt/mongo-temp/data/db/mongod.lock
ロックファイルを削除しても役に立ちません。--dbpath を指定せずに mongod コマンドを実行すると、サーバーは正常に起動し、古いデータベースに対してクエリを実行できます。