MongoDB 运维相关的命令
1.在线释放内存
use admin
db.runCommand({closeAllDatabases:1})
注:3.2 版本 已经去掉了这个命令了
2.rs.status()
查询复制集状态
3.db.stats()
查询指定库的状态(包含内存和磁盘的使用情况统计)
4.db.collectionsname.stats()
查询指定集合的具体信息
5.db.version()
查看当前实例的版本
6.db.getCollectionNames();
获取当前数据库下所有集合的名称
7.集合数据的导出/导入
mongoexport / mongoimport
8.数据库的备份与还原
mongodump 和 mongorestore
9.db.serverStatus()
服务器统计信息
10.db.currentOp()
统计当前运行的操作
db.currentOp('ture')
包含空闲的操作
11.mongostat
诊断工具,用来统计全局系统信息
定时轮询并显示统计从每秒插入的数量到内存的使用量,再到B-树叶缺失的频率等信息。
登入当时,在bin文档下执行
./mongostat -h 主机IP:端口 -u用户名 --authenticationDatabase 登入验证的数据库
12.mongotop
mongotop是top命令的外部包装工具,其运行方式与mongostat 一样。
13.db.getMongo()
查看当前所连接的数据库的IP地址。
14.db.getName() 或 db
查看数据库的名字。
15. show dbs
查看数据库列表
16. show collections 或 db.getCollectionNames()
查看数据库中有那些个集合(表)。
17.db.repairDatabase()
修复当前数据库。
18. db.serverStatus().connections
查看当前数据库实例的连接数情况。
19.db.cappedLogCollection.isCapped()
判断集合是否为固定集合
20.统计collection占用空间大小,以M为单位统计.(转载)var collectionNames= db.getCollectionNames();
for (var i = 0; i < collectionNames.length; i++) {
var coll = db.getCollection(collectionNames[i]);
var stats = coll.stats(1024 * 1024);
print(stats.ns, stats.storageSize);
}
21.查看Oplog的配置Size
use local
db.oplog.rs.stats().maxSize
需要主要的是,查看的结果单位是 byte(字节)。如果是想看 MB单位,需要除以 /1024/2014.
22.在线修改Oplog Size
在MongoDB 3.6 版本之后,支持在线修改Oplog Size。其语法为:
{ replSetResizeOplog: <boolean>, size: <num MB> }
例如;
db.adminCommand({replSetResizeOplog:1, size: 16384})
23.创建定义的role。例如创建部分表的只读账号。
我们先通过 db.createRole()创建角色,然后再通过
db.createUser()创建账号。即不是通过内置role。
例如创建关于数据库qqltvlogdb下关于集合device_status和use_record的只读账号qqbiread。
代码如下:
db.createRole( { role:"qqbireadrole", privileges: [ { resource:{db:"qqltvlogdb",collection:"device_status"},actions: [ "find"] }, { resource:{db:"qqltvlogdb",collection:"use_record"},actions: [ "find"] } ], roles: [] } ) db.createUser( { user:"qqbiread", pwd:"????????", roles:["qqbireadrole"] } )
参考文献:
1.https://www.xttblog.com/?p=3429
2.https://docs.mongodb.com/manual/reference/method/db.createRole/