mongodb4.2.8 认证集群分片模式开启慢查询

 mongdb官方文档有点语焉不详 网上的流程没有关于开启了认证或者分片模式的 特记录如下 

mongodb默认情况下是不开启慢查询的  需要开启慢查询的话可以在启动命令后面添加参数

--profile 1 --slowms 3000

完整的命令就像这样

mongod -f /data/mongodb-4.2.8/conf/shard3.conf --profile 1 --slowms 3000 

--profile 1 1的意思是开启慢查询分析器  同样的还有0 和2  两个参数 0是关闭 2是收集任何信息

--slowms 是阈值  单位是ms  30000就是半分钟

也可以通过命令行去开启 

db.setProfilingLevel(1, { slowms: 30000 })

这样重启之后就开启了慢查询了  每个实例都需要这个步骤  mongos上无法统一开启

config集群应该是不需要开启这个参数 的。。应该没必要分析config的慢查询 。估计也没有  数据量很少

注意mongos上通过命令行是无法开启慢查询的 只能调整慢查询的阈值 ,虽然数据是经由mongos去查询的 慢查询则无法通过mongos去查看 

如果在mongos上操作 应该会报这个错误

"Profiling is not permitted on mongoS: the 'profile' field should be 0 to change 'slowms' and 'sampleRate' settings for logging, or -1 to view current values"

认证集群通常都是直接在mongos上完成的认证 查询慢查询日志的时候会发现在单独的实例上无法认证通过  正确的账密永远报错

其实是因为实例本身也有单独的认证。。这个时候在实例上创建root帐号就行了

use admin

 db.createUser({user: "root",pwd: "xxxxxxx", roles: [ { role: "root", db: "admin" } ]})

然后就可以

db.getProfilingStatus()

查看慢查询的设置情况

分析器数据查询示例

要返回system.profile 集合中最近的 10 个日志条目,请运行类似于以下内容的查询:

db.system.profile.find().limit(10).sort( { ts : -1 } ).pretty()

要返回特定集合的操作,请运行类似于以下内容的查询。此示例返回mydb数据库 test集合中的操作:

db.system.profile.find( { ns : 'mydb.test' } ).pretty()

要返回特定时间范围内的信息,请运行类似于以下内容的查询:

db.system.profile.find({
  ts : {
    $gt: new ISODate("2012-12-09T03:00:00Z"),
    $lt: new ISODate("2012-12-09T03:40:00Z")
  }
}).pretty()

更多的内容可以参阅 

Database Profiler — MongoDB Manual

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值