4

これに関する洞察に感謝します。2つの質問があります。

1)ローカル db oplog が巨大で成長している理由
を理解する 2) local.oplog を安全に削除 (またはリセット) して、18 GB の無駄なスペースを解放する

シナリオ: 次のような本番データのスナップショットで mongod をローカルで実行しています。

   mongod --dbpath /temp/MongoDumps/mongodata-2013-06-05_1205-snap/data

だから私は奇妙なことに、私のローカルデータベースが巨大であることに気付きました

> show dbs
local   18.0693359375GB
prod-snapshot   7.9501953125GB

これは、巨大なローカル db oplog によるものと思われます (上限のあるコレクションではありますが)。

db.oplog.rs.stats()
{
    "ns" : "local.oplog.rs",
    "count" : 25319382,
    "size" : 10440151664,
    "avgObjSize" : 412.33832895289464,
    "storageSize" : 18634489728,
    "numExtents" : 9,
    "nindexes" : 0,
    "lastExtentSize" : 1463074816,
    "paddingFactor" : 1,
    "systemFlags" : 0,
    "userFlags" : 0,
    "totalIndexSize" : 0,
    "indexSizes" : {

    },
    "capped" : true,
    "max" : NumberLong("9223372036854775807"),
    "ok" : 1
}

また、ローカルにレプリカ セットをセットアップしていないにもかかわらず、ローカル データベースは本番レプリカ セットの構成を継承しているようです (スナップショットを介して継承しているのかもしれません???)。

rs.config()
{
    "_id" : "mongocluster1",
    "version" : 38042,
    "members" : [
        {
            "_id" : 4,
            "host" : "mongolive-01D.mcluster-01:27017",
            "tags" : {
                "app" : "backend"
            }
        },
        {
            "_id" : 5,
            "host" : "mongolive-01C.mcluster-01:27017"
        },
        {
            "_id" : 11,
            "host" : "mongoarbiter-01C.mcluster-01:27017",
            "arbiterOnly" : true
        },
        {
            "_id" : 7,
            "host" : "mongoremote-01Z.mcluster-01:27017",
            "priority" : 0,
            "hidden" : true
        },
        {
            "_id" : 21,
            "host" : "mongodelayed-01D.mcluster-01:27017",
            "priority" : 0,
            "slaveDelay" : 3600,
            "hidden" : true
        }
    ]
}

関連するかどうかはわかりませんが、これも見ています:

> rs.status()
{ "ok" : 0, "errmsg" : "not running with --replSet" }

サーバーを起動すると、replicaSet の警告が表示されます。

    MongoDB shell version: 2.4.1
    connecting to: test
    Server has startup warnings:

** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000

** WARNING: mongod started without --replSet yet 1 documents are present in local.system.replset
**          Restart with --replSet unless you are doing maintenance and no other clients are connected.
**          The TTL collection monitor will not start because of this.
4

1 に答える 1

3

本番ノードのデータ ディレクトリのスナップショットをキャプチャしたため、正確なデータベース構成が得られました。

これには、その「ローカル」データベースが含まれます。ローカル データベースには、(とりわけ) レプリカ セットの構成と oplog が含まれます。

mongodスタンドアロン モードで実行する予定なので、localデータベースを削除するだけで悪影響はありません。dropDatabase() コマンドを使用します。これによりデータベースが削除され、スペースが OS によって再利用されます。

于 2013-06-22T03:49:15.463 に答える