本文共 3877 字,大约阅读时间需要 12 分钟。
本文将详细介绍MongoDB分片集群的搭建过程,包括shard节点、configserver节点以及mongos节点的配置及使用方法。
创建以下目录结构:
mkdir -p /mongodb/38021/conf /mongodb/38021/log /mongodb/38021/datamkdir -p /mongodb/38022/conf /mongodb/38022/log /mongodb/38022/datamkdir -p /mongodb/38023/conf /mongodb/38023/log /mongodb/38023/datamkdir -p /mongodb/38024/conf /mongodb/38024/log /mongodb/38024/datamkdir -p /mongodb/38025/conf /mongodb/38025/log /mongodb/38025/datamkdir -p /mongodb/38026/conf /mongodb/38026/log /mongodb/38026/data
cp /mongodb/38021/conf/mongodb.conf /mongodb/38022/conf/cp /mongodb/38021/conf/mongodb.conf /mongodb/38023/conf/sed -n '#38021#38022#' /mongodb/38022/conf/mongodb.conf -ised -n '#38021#38023#' /mongodb/38023/conf/mongodb.conf -i
cp /mongodb/38024/conf/mongodb.conf /mongodb/38025/conf/cp /mongodb/38024/conf/mongodb.conf /mongodb/38026/conf/sed -n '#38024#38025#' /mongodb/38025/conf/mongodb.conf -ised -n '#38024#38026#' /mongodb/38026/conf/mongodb.conf -i
启动各节点并使用rs.initiate命令初始化复制集:
mongod -f /mongodb/38021/conf/mongodb.confmongod -f /mongodb/38022/conf/mongodb.confmongod -f /mongodb/38023/conf/mongodb.confmongod -f /mongodb/38024/conf/mongodb.confmongod -f /mongodb/38025/conf/mongodb.confmongod -f /mongodb/38026/conf/mongodb.confps -ef | grep mongod
mongo --port 38018 use adminconfig = { _id: 'configReplSet', members: [ {_id:0, host: '10.0.0.51:38018'}, {_id:1, host: '10.0.0.51:38019'}, {_id:2, host: '10.0.0.51:38020'}] }rs.initiate(config) mkdir -p /mongodb/38018/conf /mongodb/38018/log /mongodb/38018/datamkdir -p /mongodb/38019/conf /mongodb/38019/log /mongodb/38019/datamkdir -p /mongodb/38020/conf /mongodb/38020/log /mongodb/38020/data
cp /mongodb/38018/conf/mongodb.conf /mongodb/38019/conf/cp /mongodb/38018/conf/mongodb.conf /mongodb/38020/conf/sed -n '#38018#38019#' /mongodb/38019/conf/mongodb.conf -ised -n '#38018#38020#' /mongodb/38020/conf/mongodb.conf -i
mongod -f /mongodb/38018/conf/mongodb.confmongod -f /mongodb/38019/conf/mongodb.confmongod -f /mongodb/38020/conf/mongodb.confmongo --port 38018 use adminconfig = { _id: 'configReplSet', members: [ {_id:0, host: '10.0.0.51:38018'}, {_id:1, host: '10.0.0.51:38019'}, {_id:2, host: '10.0.0.51:38020'}] }rs.initiate(config) mkdir -p /mongodb/38017/conf /mongodb/38017/log
cat > /mongodb/38017/conf/mongos.conf < &
mongos -f /mongodb/38017/conf/mongos.conf
mongo --port 38017 admin
执行以下命令添加分片:
db.runCommand({ addshard: "sh1/10.0.0.51:38021,10.0.0.51:38022,10.0.0.51:38023", name: "shard1" })db.runCommand({ addshard: "sh2/10.0.0.51:38024,10.0.0.51:38025,10.0.0.51:38026", name: "shard2" }) mongos> db.runCommand({ listshards: 1 }) mongos> sh.status()
mongo --port 38017 adminadmin> db.runCommand({ enablesharding: "test" }) use testdb.vast.ensureIndex({ id: 1 })admin> db.runCommand({ shardcollection: "test.vast", key: { id: 1 } }) use testfor (i=1; i<1000000; i++) { db.vast.insert({ id: i, name: "shenzheng", age: 70, date: newDate() });}db.vast.stats() mongo --port 38017 adminadmin> db.runCommand({ enablesharding: "oldboy" }) use oldboyoldboy> db.vast.ensureIndex({ id: "hashed" }) use adminadmin> sh.shardCollection("oldboy.vast", { id: "hashed" }) use oldboyfor (i=1; i<100000; i++) { db.vast.insert({ id: i, name: "shenzheng", age: 70, date: newDate() });} mongo --port 38021 use oldboydb.vast.count()
mongo --port 38024 use oldboydb.vast.count()
转载地址:http://zjffk.baihongyu.com/