mongodb 常用命令
初始化副本
> use admin
> cfg={_id:"rs01",version:1,members:[{_id:0,host:"IP:端口"}]}
>rs.initiate(cfg)
创建超级用户
>db.createUser({user:'xx',pwd:'xx',roles:['__system']})
副本集命令
添加普通副本集
rs.add({host:'ip:port',priority:1})
添加仲裁副本集
rs.addArb('ip:port')
添加隐藏副本集
rs.add({host:'ip:port',priority:0,hidden:true})
添加延迟副本集
rs.add({host:'ip:port',priority:0,hidden:true,slaveDelay:3600})
删除副本集
rs.remove('ip:port')
检查副本集
rs.printSlaveReplicationInfo() #检查副本集成员的延迟情况
rs.printReplicationInfo() #显示oplog大小及可写入时间范围
rs.status()
rs.conf()
重新配置副本集
cfg=rs.conf()
rs.reconfig(cfg)
rs.slaveOk() rs.stepDown()
use test db.getSiblingDB("test") db
show dbs show databases
use admin db.stats()
show tables show collections
db.xxx.stats()
db.updateUser("xxx",{pwd:"xxxx"})
db.getRoles()
db.person.find{
{age:16}, #过滤条件
{name:1} #返回的字段
}.skip(1).limit(1) #游标方法
db.serverStatus() #查看实例状态
db.currentOp() #查看当前内部操作
db.killOp(opid) #kill 当前操作
db.serverCmdLineOpts() #查看配置文件信息
db.version() #查看版本
非系统活跃线程: db.currentOp({desc:/^conn/,active:true}) //db.currentOp({"active":true,"host":{$ne:"localhost.localdomain:27020"}})
修改日志级别为2: db.setLogLevel(2) //db.setProfilingLevel(2)
prompt=function(){ rs=db.isMaster().setName;
version=db.version();
me=db.isMaster().me
port=me.split(";")[1]
return rs + ":"+version+":"+port+">"; }
> db.getCollection("%b").insert({x:10,y:20})
WriteResult({ "nInserted" : 1 })
> db.getCollection("%b").find()
{ "_id" : ObjectId("5cdbb77864d633368c58a6c1"), "x" : 10, "y" : 20 }
> db["%b"].find()
{ "_id" : ObjectId("5cdbb77864d633368c58a6c1"), "x" : 10, "y" : 20 }
MongoDB shell 增强工具
mongo-hacker
cd /root/tools/ && git clone https://github.com/TyleBrock/mongo-hacker
cd mongo-hacker
make install [ ln -sf "/root/tools/momgo-hacker/mongo_hacker.js" ~/.mongorc.js ]
动态调整参数
db.runCommand({getParameter:'*'})
db.adminCommand({setParameter:1,cursorTimeoutMillis:5000})
db.runCommand({getParameter:'*'}).cursorTimeoutMillis