第3关:MongoDB 分片集搭建

/****请在右侧命令行中直接对数据库操作,操作完毕之后点击评测******/
mkdir -p /data/test2/shard1/db  
mkdir -p /logs/test2/shard1/log  
mkdir -p /data/test2/shard2/db  
mkdir -p /logs/test2/shard2/log  
mkdir -p /data/test2/shard3/db  
mkdir -p /logs/test2/shard3/log  
mkdir -p /data/test2/config/db  
mkdir -p /logs/test2/config/log  
mkdir -p /logs/test2/mongs/log  
mkdir -p /etc/test2  
vi /etc/test2/mongod1.conf

dbpath=/data/test2/shard1/db  
logpath=/logs/test2/shard1/log/mongodb.log  
port=21001  
shardsvr=true  
fork=true  

vi /etc/test2/mongod2.conf

dbpath=/data/test2/shard2/db  
logpath=/logs/test2/shard2/log/mongodb.log  
port=21002  
shardsvr=true  
fork=true 

vi /etc/test2/mongod3.conf

dbpath=/data/test2/shard3/db  
logpath=/logs/test2/shard3/log/mongodb.log  
port=21003  
shardsvr=true  
fork=true

mongod -f /etc/test2/mongod1.conf 
mongod -f /etc/test2/mongod2.conf
mongod -f /etc/test2/mongod3.conf 
mongod --dbpath /data/test2/config/db --logpath /logs/test2/config/log/mongodb.log --port 21004 --configsvr --replSet cs --fork

mongo localhost:21004

use admin  
cfg = {  
  _id:'cs',  
  configsvr:true,  
  members:[  
      {_id:0,host:'localhost:21004'}  
   ]  
}
rs.initiate(cfg) 

mongos --configdb cs/localhost:21004 --logpath /logs/test2/mongs/log/mongodb.log --port 21005 --fork  

mongo localhost:21005  

sh.addShard('localhost:21001')  
sh.addShard('localhost:21002')  
sh.addShard('localhost:21003')  

sh.status()  

mongo localhost:21005

use config  
db.settings.save( { _id:"chunksize", value: 1 } )

sh.enableSharding("test")  

db.user.ensureIndex({ "uid" : 1})  

sh.shardCollection("test.user",{"uid" : 1})  

use test  
for(i=0;i<100000;i++){db.user.insert({uid:i,username:'test-'+i})}  

sh.status() 

db.collection.dropIndexes()
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mongodb 的 profiling 工具是用于监视和分析数据库性能的工具。通过启用 profiling,我们可以收集和记录数据库操作的详细日志信息,包括查询语句、响应时间、扫描文档数等。 要启用 profiling,我们需要连接到 MongoDB Shell,并执行 `db.setProfilingLevel(level)` 命令,其中 `level` 可以是以下三个值之一: - `0`:闭 profiling,不收集任何信息。 - `1`:收集慢查询,只记录超过设定阈值的查询信息。 - `2`:收集所有查询,包括快速查询。 可以使用 `db.getProfilingLevel()` 命令来查看当前的 profiling 级别。一般在开发和调试过程中,我们会将级别设置为 `2`,以便收集尽可能多的信息。 当启用 profiling 后,MongoDB 会将收集到的查询日志存储在一个名为 `system.profile` 的集合中。我们可以使用 `db.system.profile.find().pretty()` 命令来查看这些日志条目。 除了显示查询日志外,我们还可以使用 `db.runCommand({ profileStatus: 1 })` 命令获取当前 profiling 的状态信息,包括收集到的查询数量、查询时间等。 通过分析 profiling 日志,我们可以找到慢查询并进行优化,提高数据库的性能。例如,我们可以通过增加索引、优化查询语句等方式来减少查询时间。 需要注意的是,开启 profiling 会产生额外的性能开销,因此在生产环境中不建议一直保持开启状态。在完成性能分析后,要及时闭 profiling 或将级别调整为合适的值,以减少对系统性能的影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值