本文共 3534 字,大约阅读时间需要 11 分钟。
1.serverStatus获取运行中的MongoDB服务器统计信息
db.runCommand({ "serverStatus":1})
2.mongostat 每秒更新一次
mongostat -u "username" -p "password" --authenticationDatabase dbname
输出
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 258M 10.0M 0|0 0|0 178b 51.7k 2 May 6 11:26:10.924 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 258M 10.0M 0|0 0|0 149b 43.5k 2 May 6 11:26:11.979 *0 *0 *0 *0 0 1|0 0.0% 0.0% 0 258M 10.0M 0|0 0|0 155b 45.3k 2 May 6 11:26:12.992 *0 *0 *0 *0 0 2|0 0.0% 0.0% 0 258M 10.0M 0|0 0|0 169b 49.1k 2 May 6 11:26:13.925
创建用户
db.createUser({ user: "", pwd: " ", customData: { }, roles: [ { role: " ", db: " " } | " ", ... ]},writeConcern)
user字段,为新用户的名字
pwd字段,用户的密码 cusomData字段,为任意内容,例如可以为用户全名介绍 roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色 在roles字段,可以指定内置角色和用户定义的角色Built-In Roles(内置角色):
1. 数据库用户角色:read、readWrite; 2. 数据库管理角色:dbAdmin、dbOwner、userAdmin; 3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 4. 备份恢复角色:backup、restore; 5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 6. 超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) 7. 内部角色:__system
角色权限介绍
Read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 root:只在admin数据库中可用。超级账号,超级权限
writeConcern文档(官方说明)
w选项:允许的值分别是 1、0、大于1的值、"majority"、; j选项:确保mongod实例写数据到磁盘上的journal(日志),这可以确保mongd以外关闭不会丢失数据。设置true启用。 wtimeout:指定一个时间限制,以毫秒为单位。wtimeout只适用于w值大于1。
exp:
db.createUser({ user:"root", pwd:"root", roles:[{role:"root",db:"admin"}]})db.createUser({ user:"hqq", pwd:"hqq", roles:[{role:"readWrite",db:"hqq"}]})
创建好后开启auth重启启动服务即可
mongodump 可以在运行时备份
mongodump -h dbhost -d dbname -o dbdirectory
-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
-d:需要备份的数据库实例,例如:test -o:备份的数据存放位置,例如:c:\data\dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。mongodump -u "hqq" -p "hqq" -d hqq -o F:\Mongodb\backup
mongorestore 从备份中恢复数据
mongorestore -h dbhost -d dbname --directoryperdb dbdirectory
-h:MongoDB所在服务器地址
-d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2 –directoryperdb:备份数据所在位置,例如:c:\data\dump\test,这里为什么要多加一个test,而不是备份时候的dump,读者自己查看提示吧! –drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!mongorestore -u "root" -p "root" -d admin --drop F:\Mongodb\backup\hqq\
fsync 可以在运行时备份数据且不损坏数据
//加锁> db.runCommand({ "fsync":1,"lock":1}){ "info" : "now locked against writes, use db.fsyncUnlock() to unlock", "lockCount" : NumberLong(1), "seeAlso" : "http://dochub.mongodb.org/core/fsynccommand", "ok" : 1}//备份..//解锁> db.$cmd.sys.unlock.findOne(){ "info" : "fsyncUnlock completed", "lockCount" : NumberLong(0), "ok" : 1 }
修复数据库
db.repairDatabase()
转载地址:http://qaqli.baihongyu.com/