第1关:MongoDB 架构
1 ACD
2 ABD
第2关:MongoDB 复制集搭建
编程要求
根据提示,仿照实训中的例子,在右侧命令行进行操作,搭建复制集,要求如下:
数据存放路径为:/data/test/db1、/data/test/db2 和 /data/test/db3;
日志存放路径为:/logs/test/mongod1.log、/logs/test/mongod2.log和 /logs/test/mongod3.log;
配置文件所在路径为:/etc/test/mongod1.conf、/etc/test/mongod2.conf 和 /etc/test/mongod3.conf;
端口选用20001、20002和20003,其中要求20001成为主节点,20002为 arbiter 节点。
解答
mkdir -p /data/test/db1 /data/test/db2 /data/test/db3
mkdir -p /logs/test
mkdir -p /etc/test
cd /etc/test
vim mongod1.conf
##【按 "i" 键】
port=20001
dbpath=/data/test/db1
logpath=/logs/test/mongod1.log
logappend=true
fork=true
replSet=YOURMONGO
##【按 "ESC" 键】
##【输入 ":wq", 按 "Enter" 键】
vim mongod2.conf
##【按 "i" 键】
port=20002
dbpath=/data/test/db2
logpath=/logs/test/mongod2.log
logappend=true
fork=true
replSet=YOURMONGO
##【按 "ESC" 键】
##【输入 ":wq", 按 "Enter" 键】
vim mongod3.conf
##【按 "i" 键】
port=20003
dbpath=/data/test/db3
logpath=/logs/test/mongod3.log
logappend=true
fork=true
replSet=YOURMONGO
## 【按 "ESC" 键】
## 【输入 ":wq", 按 "Enter" 键】
mongod -f /etc/test/mongod1.conf
mongod -f /etc/test/mongod2.conf
mongod -f /etc/test/mongod3.conf
mongo --port 20002
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)
use test
db.person.insert({_id:1,name:'王小明',age:20})
exit
mongo --port 20001
use test
rs.slaveOk(true)
db.person.find()
exit
mongo --port 20003
use test
rs.slaveOk(true)
db.person.find()
exit
第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
端口选用21001、21002、21003、21004和21005,其中要求21004成为 config 节点,21005为 route 节点。
注意:再次点击测评前删除数据库中的所有索引 db.collection.dropIndexes(),防止影响测评结果。
解答
mkdir -p /data/test2/shard1/db /data/test2/shard2/db /data/test2/shard3/db
mkdir -p /logs/test2/shard1/log /logs/test2/shard2/log /logs/test2/shard3/log
mkdir -p /data/test2/config/db /logs/test2/config/log /logs/test2/mongs/log
mkdir -p /etc/test2
cd /etc/test2
vim mongod1.conf
##【按 "i" 键】
port=21001
dbpath=/data/test2/shard1/db
logpath=/logs/test2/shard1/log/mongodb.log
shardsvr=true
fork=true
##【按 "ESC" 键】
##【输入 ":wq", 按 "Enter" 键】
vim mongod2.conf
##【按 "i" 键】
port=21002
dbpath=/data/test2/shard2/db
logpath=/logs/test2/shard2/log/mongodb.log
shardsvr=true
fork=true
##【按 "ESC" 键】
##【输入 ":wq", 按 "Enter" 键】
vim mongod3.conf
##【按 "i" 键】
port=21003
dbpath=/data/test2/shard3/db
logpath=/logs/test2/shard3/log/mongodb.log
shardsvr=true
fork=true
##【按 "ESC" 键】
##【输入 ":wq", 按 "Enter" 键】
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