MongoDB 常用运维命令清单
每条命令应明确在哪个数据库(use xxx)下执行,避免值班或救火时因为库选错导致误判。
说明:
- 🌐 表示 任意库均可执行
- 🔐 表示 必须 use admin
- 🧬 表示 必须 use local
一、基础连接与实例状态(🌐)
1. 连接 MongoDB
bash
mongo --host 127.0.0.1 --port 27017
mongo "mongodb://user:pwd@ip:port/admin"
2. 查看 MongoDB 版本(🌐)
javascript
db.version()
db.serverBuildInfo()
3. 实例是否存活
bash
ps -ef | grep mongod
ss -lntp | grep mongod
二、副本集运维(高频)
4. 查看副本集整体状态(🌐)
javascript
rs.status()
5. 查看副本集配置(🌐)
javascript
rs.conf()
6. 查看当前节点角色(🌐)
javascript
db.isMaster() // MongoDB 4.x
// MongoDB 5.x+:
db.hello()
7. 查看各节点同步延迟(🌐)
javascript
rs.printSlaveReplicationInfo()
8. 重新配置副本集(⚠️ 高风险,🌐)
javascript
rs.reconfig(cfg, { force: true })
三、性能与慢查询分析
9. 查看当前正在执行的操作(🔐 use admin)
javascript
use admin
db.currentOp()
10. 终止慢操作(🔐 use admin)
javascript
use admin
db.killOp(opid)
11. 查看慢查询(业务库)
javascript
use 业务数据库名
db.system.profile.find().sort({ ts: -1 }).limit(5)
12. explain 查询执行计划(业务库)
javascript
use 业务数据库名
db.业务表名.find(query).explain("executionStats")
四、缓存、内存与连接
13. WiredTiger Cache 使用情况(🌐)
javascript
db.serverStatus().wiredTiger.cache
14. 实例内存情况(🌐)
javascript
db.serverStatus().mem
15. 当前连接数(🌐)
javascript
db.serverStatus().connections
五、磁盘与数据规模
16. 查看数据库整体大小(目标库)
javascript
use 目标库名
db.stats(1024 * 1024) // 单位:MB
17. 查看集合大小(目标库)
javascript
db.collection.stats(1024 * 1024)
18. 查看索引占用空间(目标库)
javascript
db.collection.totalIndexSize()
六、Oplog 与复制窗口
19. 查看 oplog 起止时间(🧬)
javascript
use local
db.oplog.rs.find().sort({ $natural: -1 }).limit(1)
db.oplog.rs.find().sort({ $natural: 1 }).limit(1)
20. 查看 oplog 时间窗口(🌐)
javascript
rs.printReplicationInfo()
七、分片集群相关
21. 查看分片集群状态(🔐)
javascript
use admin### 22. 查看 Balancer 状态(🔐) 查看 balancer 状态(🔐)
```javascript
use admin
sh.getBa### 23. 手动控制 Balancer(🔐)3. 手动控制 balancer(🔐)
```javascript
use admin
sh.startBalancer()
sh.stopBalancer()
八、用户与权限管理
24. 创建用户
javascript
use 库名
db.createUser({
user: "用户名",
pwd: "***",
roles: []
})
25. 更改用户
javascript
use 库名
1、更改密码
db.changeUserPassword("用户名", "新密码")
2、全量更改
db.updateUser(
"用户名",
{
pwd: "新密码!",(不写这条就不更改密码)
roles: [
{ role: "readWrite", db: "orderdb" }
]
}
)
26. 删除用户
javascript
use 库名
db.dropUser("用户名")
``官网地址:
https://docs.mongodb.com/manual/reference/program/mongodump/
https://docs.mongodb.com/manual/reference/program/mongorestore/rogram/mongorestore/
### 27. 备份 mongodump
```bash
# 全库备份到指定目录
mongodump \
--host 127.0.0.1 --port 27017 \
-u your_user -p 'your_password' \
--authenticationDatabase admin \
--out /data/backup/$(date +%F) \
--gzip \
--oplog
# 单库备份
mongodump \
--host 127.0.0.1 --port 27017 \
-u your_user -p 'your_password' \
--authenticationDatabase admin \
--db orderdb \
--out /data/backup/orderdb_$(date +%F) \
--gzip
28. 恢复 mongorestore
bash
# 全库恢复(覆盖已有数据)
mongorestore \
--host 127.0.0.1 --port 27017 \
-u your_user -p 'your_password' \
--authenticationDatabase admin \
--drop \
--gzip \
/data/backup/2026-01-13/
# 单库恢复
mongorestore \
--host 127.0.0.1 --port 27017 \
-u your_user -p 'your_password' \
--authenticationDatabase admin \
--db orderdb \
--drop \
--gzip \
/data/backup/orderdb_2026-01-13/
十、日志与配置
29. 查看日志组件信息
javascript
use admin
db.serverStatus().log
30. 查看运行时参数
javascript
use admin
db.adminCommand({ getParameter: '*' })