# 连接MongoDB:
mongo 127.0.0.1:20001 -uroot -p"mima123456" --authenticationDatabase=admin
mongo --host 127.0.0.1 --port 20001 -uroot -p"mima123456" --authenticationDatabase=admin
# 查看MongoDB版本:
db.version()
# 查看当前所在哪个数据库:
db
# 查看当前正在执行的操作,包括查询和聚合操作:
db.currentOp()
查询正在等待lock的所有写操作信息:
db.currentOp(
{
"waitingForLock" : true,
$or: [
{ "op" : { "$in" : [ "insert", "update", "remove" ] } },
{ "command.findandmodify": { $exists: true } }
]
}
)
查询所有活动但没有工作(active but no yield)的操作:
db.currentOp(
{
"active" : true,
"numYields" : 0,
"waitingForLock" : false
}
)
查询db1 数据库上所有执行超过3秒的活动会话:
db.currentOp(
{
"active" : true,
"secs_running" : { "$gt" : 3 },
"ns" : /^db1/./
}
)
查询正在创建索引的操作:
db.adminCommand(
{
currentOp: true,
$or: [
{ op: "command", "command.createIndexes": { $exists: true } },
{ op: "none", "msg" : /^Index Build/ }
]
}
)
# 终止执行的操作:
db.killOp(opid)
Shard cluster 环境下,读写操作可能会在多个shard 上有会话信息,所以killOp()需要同时kill 掉这些会话。
MongoDB 4.0 后在一个shard节点上执行时,会同步kill 掉其他节点上的操作,之前的版则需要手工分别kill 这些操作。
use admin
db.aggregate( [
{ $currentOp : { allUsers: true } },
{ $match : <filter condition> } // Optional. Specify the condition to find the op.
// e.g. { op: "getmore", "command.collection": "someCollection" }
] )
{
"shard" : "shardB",
..
"opid" : "shardB:79014",
...
},
{
"shard" : "shardA",
..
"opid" : "shardA:100813",
...
},
db.killOp("shardB:79014");
db.killOp("shardA:100813");
# 查看当前数据库进程状态
db.serverStatus()
# 查看当前有多少个连接
db.serverStatus().connections
{ "current" : 7, "available" : 398, "totalCreated" : 818364 }
current:当前已经建立的连接数。
available:当前可用的连接数。
# 查询当前连接来源
use admin
db.runCommand({currentOp: 1, $all: true})
# 慢请求日志:
db.system.profile.find().pretty()
# 查看库的大小:
use testdb;
db.stats()
{
"db" : "testdb",
"collections" : 1,
"views" : 0,
"objects" : 33755,
"avgObjSize" : 34,
"dataSize" : 1147670,
"storageSize" : 536576,
"indexes" : 2,
"indexSize" : 1572864,
"totalSize" : 2109440,
"scaleFactor" : 1,
"fsUsedSize" : 5834960896,
"fsTotalSize" : 52601794560,
"ok" : 1,
"$gleStats" : {
"lastOpTime" : Timestamp(0, 0),
"electionId" : ObjectId("7fffffff0000000000000009")
},
"lastCommittedOpTime" : Timestamp(1652078534, 1),
"$configServerState" : {
"opTime" : {
"ts" : Timestamp(1652078538, 5),
"t" : NumberLong(9)
}
},
"$clusterTime" : {
"clusterTime" : Timestamp(1652078538, 5),
"signature" : {
"hash" : BinData(0,"iqDiWpKk8TUIG23PzdjdqsXB2Uw="),
"keyId" : NumberLong("7093529851058978835")
}
},
"operationTime" : Timestamp(1652078534, 1)
}
db:当前数据库名称
collections:当前数据库中collection数量
views: 当前数据库中view数量
objects:当前数据库所有集合中文档的总数。
avgObjSize:每个文档的平均大小(bytes), 等于dataSize/objects, 我们这里就是1147670/33755=34 bytes。
dataSize:所有未压缩的数据总大小,当删除文档时,该值也会缩小。
storageSize:数据库为存储文档所分配的所有空间大小,包括空闲空间。
indexes:数据库中所有集合上的索引总数
indexSize:数据库为索引分配的所有空间,包括空闲索引空间。
totalSize:数据库为文档和索引分片的所有空间。 = indexSize + storageSize。
scale:默认为1,以字节返回大小的数据。要以KB 单位,指定scale值1024。
fsUsedSize:MongoDB 存储数据在文件系统中所占用的总磁盘空间。
fsTotalSize:MongoDB 在文件系统可使用的磁盘磁盘空间。即—dbpath 路径对应目录下的可用空间大小。
也可以直接查询某个具体的值:
db.stats().indexSize;
db.stats(1024).indexSize;
# 查看集合的大小:
db.user.stats();
查看集合的统计信息(以kb为单位显示):
db.user.stats(1024)
{
"ns" : "cndba.user",
"size" : 1120,
"count" : 33755,
"avgObjSize" : 34,
"storageSize" : 524,
"freeStorageSize" : 0,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
……
"nindexes" : 2,
"indexBuilds" : [ ],
"totalIndexSize" : 1536,
"totalSize" : 2060,
"indexSizes" : {
"_id_" : 932,
"_id_hashed" : 604
},
"scaleFactor" : 1024,
"ok" : 1,
Ns: 当前集合名称。
Size:集合在内存中所有未压缩的文档的大小(The total uncompressed size in memory of all records in a collection),该值不包含索引的空间。
Count:集合中文档的总数。
avgObjSize: 集合中文档的平均大小。
storageSize:集合存储文档分配的总空间,该值不包含索引占用的空间。
freeStorageSize:MongoDB 4.4 版本的中属性,可重用的存储空间大小。 不适用In-Memory 引擎。
Nindexes:集合上所有索引的总数,至少有1个索引:_id.
indexBuilds: 正在重建的索引名称,一旦重建完成,这里显示为空。
totalIndexSize:所有索引的总大小,从4.2 开始,该值包含正在创建的索引的大小。
totalSize:MongoDB 4.4 中引入,= storageSize + totalIndexSize。
indexSizes:每个索引的大小。
# 启动数据库时,MongoDB 会向 local.startup_log 集合中写入一个文档,来描述MongoDB 的版本、底层系统以及所使用的标志位。
> use local
switched to db local
> db.startup_log.find().sort({startTime: -1}).limit(1).pretty()
{
"_id" : "hwprod-ops-dba-1702350797715",
"hostname" : "hwprod-ops-dba",
"startTime" : ISODate("2023-12-12T03:13:17Z"),
"startTimeLocal" : "Tue Dec 12 11:13:17.715",
"cmdLine" : {
"config" : "/data/mongo_repl/node/mongo_01.cnf",
"net" : {
"bindIp" : "0.0.0.0",
"port" : 20001
},
"processManagement" : {
"fork" : true,
"pidFilePath" : "/data/mongo_repl/node/mongod_01.pid",
"timeZoneInfo" : "/usr/share/zoneinfo"
},
"replication" : {
"replSet" : "rs"
},
"security" : {
"authorization" : "enabled",
"keyFile" : "/data/mongo_repl/node/mongo_01.key"
},
"storage" : {
"dbPath" : "/data/mongo_repl/repl_data_01",
"journal" : {
"enabled" : true
}
},
"systemLog" : {
"destination" : "file",
"logAppend" : true,
"path" : "/data/mongo_repl/node/mongod_01.log"
}
},
"pid" : NumberLong(11448),
"buildinfo" : {
"version" : "4.2.24",
"gitVersion" : "5e4ec1d24431fcdd28b579a024c5c801b8cde4e2",
"modules" : [ ],
"allocator" : "tcmalloc",
"javascriptEngine" : "mozjs",
"sysInfo" : "deprecated",
"versionArray" : [
4,
2,
24,
0
],
"openssl" : {
"running" : "OpenSSL 1.0.1e-fips 11 Feb 2013",
"compiled" : "OpenSSL 1.0.1e-fips 11 Feb 2013"
},
"buildEnvironment" : {
"distmod" : "rhel70",
"distarch" : "x86_64",
"cc" : "/opt/mongodbtoolchain/v3/bin/gcc: gcc (GCC) 8.5.0",
"ccflags" : "-ffp-contract=off -fno-omit-frame-pointer -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -Werror -O2 -Wno-unused-local-typedefs -Wno-unused-function -Wno-deprecated-declarations -Wno-unused-const-variable -Wno-unused-but-set-variable -Wno-missing-braces -fstack-protector-strong -fno-builtin-memcmp",
"cxx" : "/opt/mongodbtoolchain/v3/bin/g++: g++ (GCC) 8.5.0",
"cxxflags" : "-Woverloaded-virtual -Wno-maybe-uninitialized -fsized-deallocation -std=c++17",
"linkflags" : "-pthread -Wl,-z,now -rdynamic -Wl,--fatal-warnings -fstack-protector-strong -fuse-ld=gold -Wl,--build-id -Wl,--hash-style=gnu -Wl,-z,noexecstack -Wl,--warn-execstack -Wl,-z,relro",
"target_arch" : "x86_64",
"target_os" : "linux"
},
"bits" : 64,
"debug" : false,
"maxBsonObjectSize" : 16777216,
"storageEngines" : [
"biggie",
"devnull",
"ephemeralForTest",
"wiredTiger"
]
}
}