第1关:MongoDB 架构

b7220d508dad4416a1fdb23cdff1c2b7.png
 

 第2关:MongoDB 复制集搭建

mkdir /data/test
mkdir /data/test/db1
mkdir /data/test/db2
mkdir /data/test/db3
mkdir /logs
mkdir /logs/test
cd /etc
mkdir /etc/test
cd /etc/test

vim mongod1.conf

进入文件内:按A,然后输入下文
port=20001
dbpath=/data/test/db1
logpath=/logs/test/mongod1.log
logappend=true
fork=true
replSet=YOURMONGO

按esc,然后输入 :wq  ,回车

vim mongod2.conf

进入文件内:按A,然后输入下文
port=20002
dbpath=/data/test/db2
logpath=/logs/test/mongod2.log
logappend=true
fork=true
replSet=YOURMONGO

按esc,然后输入 :wq  ,回车

vim mongod3.conf

进入文件内:按A,然后输入下文
port=20003
dbpath=/data/test/db3
logpath=/logs/test/mongod3.log
logappend=true
fork=true
replSet=YOURMONGO

按esc,然后输入 :wq  ,回车

mongod -f /etc/test/mongod1.conf
mongod -f /etc/test/mongod2.conf
mongod -f /etc/test/mongod3.conf

mongo --port 20001
use admin
config = {_id:"YOURMONGO", members:[{_id:0,host:'127.0.0.1:20001'},{_id:1,host:'127.0.0.1:20002',arbiterOnly:true},{_id:2,host:'127.0.0.1:20003'}]}
rs.initiate(config)
rs.status()
use test
db.person.insert({_id:1,name:'王小明',age:20})
 

第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
cd /etc/test2

vim mongod1.conf

进入文件内:按A,然后输入下文
dbpath=/data/test2/shard1/db
logpath=/logs/test2/shard1/log/mongodb.log
port=21001
shardsvr=true
fork=true

按esc,然后输入 :wq  ,回车

vim mongod2.conf

进入文件内:按A,然后输入下文
dbpath=/data/test2/shard2/db
logpath=/logs/test2/shard2/log/mongodb.log
port=21002
shardsvr=true
fork=true

按esc,然后输入 :wq  ,回车

vim mongod3.conf

进入文件内:按A,然后输入下文
dbpath=/data/test2/shard3/db
logpath=/logs/test2/shard3/log/mongodb.log
port=21003
shardsvr=true
fork=true

按esc,然后输入 :wq  ,回车

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)

exit

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()

exit

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()

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐