私は 32 ビット システムで Mongo db を使用しており、最大サイズが 1GB の大きなキャップ コレクションを作成する必要があります。64 ビット システムではすべて正常に動作しますが、32 ビット システムでは次のエラーが発生します。
com.mongodb.CommandResult$CommandFailure: command failed [command failed [create] {
"serverUsed" : "localhost:27017" ,
"errmsg" : "exception: assertion db\\pdfile.cpp:437" ,
"code" : 0 ,
"ok" : 0.0}
サーバーの合計ストレージ サイズは 32 ビット システムで 2GB ですが、このサイズでも 500MB を超えるコレクションを作成できません。このマジックナンバーの意味は?
Mongo db サーバーのバージョンは 2.0.6 です
追加情報:
いくつかのデータベース ファイルがあり、その合計サイズは34MB
. mongo db を実行する前に、これらのファイルを「データ」ディレクトリにコピーし、Mongo db を起動すると、シェルで合計サイズに同じ数値が表示されます35651584 (34MB)
(使用されるコマンドは、以下のコメントから取得されます)。サイズが 500MB のコレクションを作成しようとすると、新しいファイル (512MB) が追加されます。しかし、たとえばサイズ 600MB のコレクションを作成しようとすると、上記のエラーが発生します (ただし、512MB のファイルはまだ追加されています)。
Mongo db は、コマンド ライン オプションで開始されます。
> db.adminCommand("getCmdLineOpts")
{
"argv" : [
"mongod.exe",
"--dbpath",
"..\\data",
"-vvvvvv",
"--logpath",
"..\\log\\server.log"
],
"parsed" : {
"dbpath" : "..\\data",
"logpath" : "..\\log\\server.log",
"vvvvvv" : true
},
"ok" : 1
}
>