检查 MongoDB 数据库大小的命令

Aru*_*mar 0 mongodb amazon-web-services

我正在尝试检查 AWS 上当前 MongoDB 副本集的空间,以将其迁移到 AWS DocumentDB。当我从主组之一运行 db.stats() 命令时,我得到以下输出。但实际的数据库大小是多少?

"db" : "Test",
        "collections" : 12,
        "objects" : 10889814,
        "avgObjSize" : 21885,
        "dataSize" : 238334118124,
        "storageSize" : 239889897792,
        "numExtents" : 179,
        "indexes" : 18,
        "indexSize" : 2404561600,
        "fileSize" : 244627537920,
        "nsSizeMB" : 16,
        "dataFileVersion" : {
                "major" : 4,
                "minor" : 5
        },
        "extentFreeList" : {
                "num" : 0,
                "totalSize" : 0
        },
        "ok" : 1
Run Code Online (Sandbox Code Playgroud)

MHJ*_*MHJ 6

通过运行以下命令,您将获得数据库的存储统计信息。

db.runCommand( {
   dbStats: 1      
} )
Run Code Online (Sandbox Code Playgroud)

结果 - -

/* 1 */
{
    "db" : "play",
    "collections" : 34,
    "views" : 0,
    "objects" : 96,
    "avgObjSize" : 1015.25,
    "dataSize" : 97464.0,
    "storageSize" : 1056768.0,
    "numExtents" : 0,
    "indexes" : 49,
    "indexSize" : 1306624.0,
    "scaleFactor" : 1.0,
    "fsUsedSize" : 84943761408.0,
    "fsTotalSize" : 117088358400.0,
    "ok" : 1.0,
    "$clusterTime" : {
        "clusterTime" : Timestamp(1593430884, 35),
        "signature" : {
            "hash" : { "$binary" : "HLikK1PgZasDWNGQxS94TSuniog=", "$type" : "00" },
            "keyId" : NumberLong(6824032301186285572)
        }
    },
    "operationTime" : Timestamp(1593430884, 35)
}
Run Code Online (Sandbox Code Playgroud)

文档:链接

这里:

dbStats.dataSize

此数据库中保存的未压缩数据的总大小。当您删除文档时,数据大小会减小。

对于使用WiredTiger存储引擎的数据库,如果启用压缩,dataSize可能会大于storageSize。当文档缩小时,数据大小会减小。

dbStats.storageSize

分配给该数据库中的集合用于文档存储的空间总量。当您删除或缩小文档时,存储大小不会减少。对于使用启用了压缩的 WiredTiger 存储引擎的数据库,此值可能小于 dataSize。

dbStats.numExtents

包含数据库中所有集合的区数计数。