mongodb——mongo笔记*

参考文档:MongoDB 教程      MongoDB 3.4 中文文档

  1. 客户端驱动版本和服务器驱动版本要一致,要不然会报错误:Connection reset by peer。参考: MongoDB错误和使用总结2013-02-16(持续更新)    java.net.SocketException四大异常解决方案
  2. mongodb添加用户
#管理员root账户
db.createUser({user: "root",pwd: "123456",roles: [ "root", "userAdminAnyDatabase", "userAdmin", "dbOwner" ]})
#ops manager的数据库用户
db.createUser({user: "mongodbms",pwd: "123456",roles: [ "readWriteAnyDatabase", "dbAdminAnyDatabase", "clusterMonitor" ]})
#为test库添加读写权限的用户
db.createUser({
    user: "user1",
    pwd: "123456",
    roles: [ { role: "readWrite", db: "test" } ]
})

注意使用db.auth()时,用户名密码都需要用引号引起来。
mongodb内置角色:Built-In Roles

  1. mongodb中replica set的主备切换
  • 首先排除不需要竞选primary的secondary实例,进入不需要竞选的实例(mongod实例)中,执行如下命令
#冰冻此mongod实例,60秒内不参加内部选举工作
myShard_0:SECONDARY> rs.freeze(60)
  • shutdown此rs的primary节点
myShard_0:PRIMARY> rs.stepDown(15)

执行完成之后,会报错重连,此时连接后的状态就是SECONDARY了,等待选出primary节点即可。
参考:mongodb 复制集主节点切换方法

  1. mongodb中查看每一条记录的执行时间
  • 在shard的primary节点中运行
#获得当前profile的设置
db.getProfilingLevel()
#不记录操作耗时
db.setProfilingLevel(0)
#记录慢查询(耗时大于100ms的操作)
db.setProfilingLevel(1)
#记录所有的操作
db.setProfilingLevel(2)
  • 运行完成之后,查看操作耗时
#查询耗时大于500的操作
db.system.profile.find({millis:{$gt:500}})

参考:mongodb可以通过profile来监控数据 (mongodb性能优化)

  1. 从mongo的安装可以知道,mongo命令主要有mongod:启动集群实例,mongos:启动管理客户端连接的实例,mongo:进入mongo的命令行。
  2. 在mongodb的shard集群中,基于2dsphere,没法在find命令中使用:db.sz_user({loc:{$near:{……}}),这是mongodb的一个bug,会报错:use geoNear command rather than $near query,但是在非shard集群中是可以在find中使用$near。shard集群中使用runCommand是可以的,但是runCommand在高并发时,会停顿几秒,使用db.sz_user.aggregate($geoNear)能解决此问题。所以一句话,在shard集群中,$near没法用,runCommand高并发性能有问题,$geoNear才能完美解决此问题。
    参考:MongoDB geospatial query with find()
  3. 如果mongodb集群开启了shard,大量插入数据的时候,有可能trunks分配不是很均衡,但是等集群空闲的时候,会自动均衡所有的trunks。

转载于:https://my.oschina.net/cjun/blog/829692

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值