0

私は 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 サーバー ログ

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
}
>
4

1 に答える 1